最近发现ELK页面等有了较大的改动,重新配置了遍最新版
注:软件版本必须一致,这里配置现发布的最新版本 7.15.1-1
注:conf文件中格式使用空格,空2格,不要用tab 不要用tab 不要用tab
1.配置JDK环境 (略)
#################以下为 直接使用logstash获取日志#################
2.安装配置elasticsearch.x86_64
[root@localhost yum.repos.d]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
[root@localhost yum.repos.d]# cat elasticsearch.repo
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache fast
[root@localhost yum.repos.d]# yum -y install elasticsearch.x86_64
[root@localhost /]# systemctl enable elasticsearch
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/system/elasticsearch.service.
[root@localhost /]# systemctl start elasticsearch
[root@localhost /]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
Active: active (running) since 三 2021-11-03 17:04:35 CST; 7s ago
Docs: https://www.elastic.co
Main PID: 15439 (java)
CGroup: /system.slice/elasticsearch.service
├─15439 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava....
└─15638 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
11月 03 17:04:20 localhost.localdomain systemd[1]: Starting Elasticsearch...
11月 03 17:04:35 localhost.localdomain systemd[1]: Started Elasticsearch.
[root@localhost /]# netstat -ntlp |grep java
tcp6 0 0 127.0.0.1:9200 :::* LISTEN 15439/java
tcp6 0 0 ::1:9200 :::* LISTEN 15439/java
tcp6 0 0 127.0.0.1:9300 :::* LISTEN 15439/java
tcp6 0 0 ::1:9300 :::* LISTEN 15439/java
#9200作为Http协议,主要用于外部通讯
#9300作为Tcp协议,ES集群之间是通过9300进行通讯
[root@localhost /]# vim /etc/elasticsearch/elasticsearch.yml
[root@localhost /]# cat /etc/elasticsearch/elasticsearch.yml | grep -v '^#'
cluster.name: elk001
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.2.33.102
http.port: 9200
discovery.seed_hosts: ["10.2.33.102", "[::1]"]
cluster.initial_master_nodes: ["node-1"]
[root@localhost /]# systemctl restart elasticsearch
[root@localhost ~]# curl http://10.2.33.102:9200
{
"name" : "node-1",
"cluster_name" : "elk001",
"cluster_uuid" : "hTUer8_jQRSYE-cwg55mSw",
"version" : {
"number" : "7.15.1",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "83c34f456ae29d60e94d886e455e6a3409bba9ed",
"build_date" : "2021-10-07T21:56:19.031608185Z",
"build_snapshot" : false,
"lucene_version" : "8.9.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
| 属性名 | 说明 |
|---|---|
| cluster.name | 配置elasticsearch的集群名称。 |
| node.name | 节点名,es会默认随机指定一个名字,用户可自行配置。 |
| path.data | 设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号分隔。 |
| path.logs | 设置日志文件的存储路径,默认是es根目录下的logs文件夹。 |
| path.conf | 设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在 |
| path.plugins | 设置插件的存放路径,默认是es根目录下的plugins文件夹。 |
| bootstrap.memory_lock | 设置为true可以锁住ES使用的内存,避免内存进行swap。 |
| network.host | 设置bind_host和publish_host,设置为0.0.0.0允许所有外网访问。 |
| http.port | 设置对外服务的http端口,默认为9200。 |
| transport.tcp.port | 集群结点之间通信端口,默认为9300。 |
| discovery.zen.ping.timeout | 设置ES自动发现节点连接超时的时间,默认为3S。 |
| discovery.zen.minimum_master_nodes | 主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2。 |
| discovery.seed_hosts | 集群发现,配置该节点会与哪些候选地址进行通信,hostname,ip,ip+port,比如:[“127.0.0.1:9300”]。 |
| cluster.initial_master_nodes | 当你第一次启动全新的Elasticsearch集群时,会有一个集群引导(cluster bootstrapping)步骤,这个步骤会确定一个在第一次选举中投票被计数的、并且可以成为master节点的集合。在开发模式,如果没有配置 discovery settings,该步骤由节点自身自动执行。因为这种自动引导本质上是不安全的,当您在生产模式下启动一个全新的集群时,你必须显式指定那些可以成为master节点的名称或者IP地址,这些节点应该在第一次选举中计算选票数。 |
3.安装配置logstash.x86_64
logstash目录结构
| 类型 | 描述 | 默认值 | 如何定义配置 |
|---|---|---|---|
| home | logstash安装的默认主目录 | /usr/share/logstash | |
| bin | logstash的二进制脚本程序和logstash-plugin插件安装脚本 | /usr/share/logstash/bin | |
| settings | 配置文件,包括logstash.yml、jvm选项配置、启动选项配置 | /etc/logstash | path.settings |
| conf | logstash数据收集配置 | /etc/logstash/conf.d*
encoding:#指定被监控的文件的编码类型,使用plain和utf-8都是可以处理中文日志的
exclude_lines: ['^DBG'] #不包含匹配正则的行
include_lines: ['^ERR', '^WARN'] #包含匹配正则的行
harvester_buffer_size: 16384 #每个harvester在获取文件时使用的缓冲区的字节大小
max_bytes: 10485760 #单个日志消息可以拥有的最大字节数。max_bytes之后的所有字节都被丢弃而不发送。默认值为10MB (10485760)
exclude_files: ['.gz$'] #用于匹配希望Filebeat忽略的文件的正则表达式列表
ingore_older: 0 #默认为0,表示禁用,可以配置2h,2m等,注意ignore_older必须大于close_inactive的值.表示忽略超过设置值未更新的
文件或者文件从来没有被harvester收集
close_* #close_ *配置选项用于在特定标准或时间之后关闭harvester。 关闭harvester意味着关闭文件处理程序。 如果在harvester关闭
后文件被更新,则在scan_frequency过后,文件将被重新拾取。 但是,如果在harvester关闭时移动或删除文件,Filebeat将无法再次接收文件
,并且harvester未读取的任何数据都将丢失。
close_inactive #启动选项时,如果在制定时间没有被读取,将关闭文件句柄
读取的最后一条日志定义为下一次读取的起始点,而不是基于文件的修改时间
如果关闭的文件发生变化,一个新的harverster将在scan_frequency运行后被启动
建议至少设置一个大于读取日志频率的值,配置多个prospector来实现针对不同更新速度的日志文件
使用内部时间戳机制,来反映记录日志的读取,每次读取到最后一行日志时开始倒计时使用2h 5m 来表示
close_rename #当选项启动,如果文件被重命名和移动,filebeat关闭文件的处理读取
close_removed #当选项启动,文件被删除时,filebeat关闭文件的处理读取这个选项启动后,必须启动clean_removed
close_eof #适合只写一次日志的文件,然后filebeat关闭文件的处理读取
close_timeout #当选项启动时,filebeat会给每个harvester设置预定义时间,不管这个文件是否被读取,达到设定时间后,将被关闭
close_timeout 不能等于ignore_older,会导致文件更新时,不会被读取如果output一直没有输出日志事件,这个timeout是不会被启动的,
至少要要有一个事件发送,然后haverter将被关闭
设置0 表示不启动
clean_inactived #从注册表文件中删除先前收获的文件的状态
设置必须大于ignore_older+scan_frequency,以确保在文件仍在收集时没有删除任何状态
配置选项有助于减小注册表文件的大小,特别是如果每天都生成大量的新文件
此配置选项也可用于防止在Linux上重用inode的Filebeat问题
clean_removed #启动选项后,如果文件在磁盘上找不到,将从注册表中清除filebeat
如果关闭close removed 必须关闭clean removed
scan_frequency #prospector检查指定用于收获的路径中的新文件的频率,默认10s
tail_files:#如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,
而不是从文件开始处重新发送所有内容。
symlinks:#符号链接选项允许Filebeat除常规文件外,可以收集符号链接。收集符号链接时,即使报告了符号链接的路径,
Filebeat也会打开并读取原始文件。
backoff: #backoff选项指定Filebeat如何积极地抓取新文件进行更新。默认1s,backoff选项定义Filebeat在达到EOF之后
再次检查文件之间等待的时间。
max_backoff: #在达到EOF之后再次检查文件之前Filebeat等待的最长时间
backoff_factor: #指定backoff尝试等待时间几次,默认是2
harvester_limit:#harvester_limit选项限制一个prospector并行启动的harvester数量,直接影响文件打开数
tags #列表中添加标签,用过过滤,例如:tags: ["json"]
fields #可选字段,选择额外的字段进行输出可以是标量值,元组,字典等嵌套类型
默认在sub-dictionary位置
filebeat.inputs:
fields:
app_id: query_engine_12
fields_under_root #如果值为ture,那么fields存储在输出文档的顶级位置
multiline.pattern #必须匹配的regexp模式
multiline.negate #定义上面的模式匹配条件的动作是 否定的,默认是false
假如模式匹配条件'^b',默认是false模式,表示讲按照模式匹配进行匹配 将不是以b开头的日志行进行合并
如果是true,表示将不以b开头的日志行进行合并
multiline.match # 指定Filebeat如何将匹配行组合成事件,在之前或者之后,取决于上面所指定的negate
multiline.max_lines #可以组合成一个事件的最大行数,超过将丢弃,默认500
multiline.timeout #定义超时时间,如果开始一个新的事件在超时时间内没有发现匹配,也将发送日志,默认是5s
max_procs #设置可以同时执行的最大CPU数。默认值为系统中可用的逻辑CPU的数量。
name #为该filebeat指定名字,默认为主机的hostname
注:/etc/logstash/conf.d 下可配置多个文件 [root@elk001 conf.d]# pwd
/etc/logstash/conf.d
[root@elk001 conf.d]# ll
总用量 8
-rw-r--r-- 1 root root 174 11月 8 16:54 nginx.conf
-rw-r--r-- 1 root root 538 11月 8 16:29 system.conf
[root@elk001 conf.d]# cat nginx.conf
input{
beats{
host => "10.2.33.102"
port => "5044"
}
}
output {
elasticsearch{
hosts => ["10.2.33.102:9200"]
index => "nginx-web-%{+YYYY.MM.dd}"
}
}
[root@elk001 conf.d]# systemctl restart logstash
3、登陆http://10.2.33.102:5601查看新增的文件 #################filebeat-redis-logstash-elasticsearch-kibana ################# 架构图: 说明:(测试就把除了filebeat都装一台上了,生产环境请自分配) redis在其中的作用: redis配置安装(略) bind 0.0.0.0 protected-mode no requirepass redis123456 一些配置上面已有,忽略,直接修改配置文件,如下: [root@localhost filebeat]# cat /etc/filebeat/filebeat.yml
# ============================== Filebeat inputs ===============================
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/nginx/*.log
tags: ["nginx-web"]
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
# ======================= Elasticsearch template setting =======================
setup.template.settings:
index.number_of_shards: 1
setup.kibana:
output.redis:
hosts: ["10.2.33.102:6379"]
password: "redis123456"
key: "nginx-web"
data_type: "list"
db: 4
processors:
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
# ================================== Logging ===================================
#logging.level: debug
# ============================= X-Pack Monitoring ==============================
#monitoring.enabled: false
# ============================== Instrumentation ===============================
#instrumentation:
#enabled: false
#hosts:
# - http://localhost:8200
#api_key:
# ================================= Migration ==================================
#migration.6_to_7.enabled: true
修改logstash配置文件,根据filebeat中设置的redis存储进行读取: [root@elk001 conf.d]# cat redis.conf
input{
redis {
host => "10.2.33.102"
port => 6379
password => "redis123456"
key => "nginx-web"
data_type => "list"
db => 4
}
}
output {
elasticsearch {
hosts => ["10.2.33.102:9200"]
index => "redis-%{+YYYY.MM.dd}"
}
}
注:修改配置文件注意要重启服务 redis查看数据 [root@elk001 conf.d]# redis-cli 127.0.0.1:6379> auth redis123456 OK 127.0.0.1:6379> select 4 OK 127.0.0.1:6379[4]> keys * 1) "nginx-web"
#################filebeat-kafka-logstash-elasticsearch-kibana ################# 未完待续。。。 大数据系统相关栏目本月热门文章
热门相关搜索
路由器设置
木托盘
宝塔面板
儿童python教程
心情低落
朋友圈
vim
双一流学科
专升本
我的学校
日记学校
西点培训学校
汽修学校
情书
化妆学校
塔沟武校
异形模板
西南大学排名
最精辟人生短句
6步教你追回被骗的钱
南昌大学排名
清朝十二帝
北京印刷学院排名
北方工业大学排名
北京航空航天大学排名
首都经济贸易大学排名
中国传媒大学排名
首都师范大学排名
中国地质大学(北京)排名
北京信息科技大学排名
中央民族大学排名
北京舞蹈学院排名
北京电影学院排名
中国戏曲学院排名
河北政法职业学院排名
河北经贸大学排名
天津中德应用技术大学排名
天津医学高等专科学校排名
天津美术学院排名
天津音乐学院排名
天津工业大学排名
北京工业大学耿丹学院排名
北京警察学院排名
天津科技大学排名
北京邮电大学(宏福校区)排名
北京网络职业学院排名
北京大学医学部排名
河北科技大学排名
河北地质大学排名
河北体育学院排名
|



