ELFK集群部署(Filebeat+ELK)
ELFK= ES + logstash+filebeat+kibana
实验环境
node1节点 192.168.177.10 JDK、elasticsearch-6.7.2、kibana-6.7.2 2核4G
node2节点 192.168.177.20 JDK、JDK、elasticsearch-6.7.2 2核4G
apache节点 192.168.177.30 JDK、apache、logstash-6.7.2、filebeat-6.7.2
实验步骤:
1.1 部署ELK集群
ELK集群的部署在前一篇文章中有详细介绍,可参考前一篇文章。
1.2 安装 Filebeat(在apache节点操作)
tar zxvf filebeat-6.2.4-linux-x86_.tar.gz
mv filebeat-6.2.4-linux-x86_/ /usr/local/filebeat
设置 filebeat 的主配置文件
cd /usr/local/filebeat
vim filebeat.yml
filebeat.prospectors:
- type: log #指定 log 类型,从日志文件中读取消息
enabled: true
paths:
- /var/log/messages #指定监控的日志文件
- /var/log/*.log
tags: ["sys"] #设置索引标签
fields: #可以使用 fields 配置选项设置一些参数字段添加到 output 中
service_name: filebeat
log_type: syslog
from: 192.168.177.13
utput.logstash:
hosts: ["192.168.177.12:5044"] #指定 logstash 的 IP 和端口
#启动 filebeat
nohup ./filebeat -e -c filebeat.yml > filebeat.out &
#-e:输出到标准输出,禁用syslog/文件输出
#-c:指定配置文件
#nohup:在系统后台不挂断地运行命令,退出终端不会影响程序的运行
4.在 Logstash 组件所在节点上新建一个 Logstash 配置文件
cd /etc/logstash/conf.d
vim filebeat.conf
input {
beats {
port => "5044"
}
}
output {
elasticsearch {
hosts => ["192.168.177.10:9200","192.168.177.11:9200"]
index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
}
stdout {
codec => rubydebug
}
}
#启动 logstash
logstash -f filebeat.conf
5.浏览器访问 http://192.168.177.10:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。
Logstash的过滤模块
2.1 Logstash配置文件中的模块
1、input {}
指定输入流,通过file、beats、kafka、redis中获取数据
2、filter {}
常用插件:
grok:对若干个大文本字段进行再分割,分割成一些小字段 (?<字段名>正则表达式) 字段名:正则表示匹配到的内容
date:对数据中的时间进行统一格式化
mutate:对一些无用的字段进行剔除,或增加字段
mutiline:对多行数据进行统一编排,多行合并和拆分
3、ourput {}
elasticsearch stdout
grok插件(通过grok插件实现对字段的分割,使用通配符)
这里就要用到 logstash 的 filter 中的 grok 插件。filebeat 发送给 logstash 的日志内容会放到message 字段里面,logstash 匹配这个 message 字段就可以了。
格式
匹配格式:(?<字段名>正则表达式)
作者:聂鲁达的邮差
链接:https://juejin.cn/post/7116213434152124446
来源:稀土掘金