ELK之filter模块常用插件
logstash filter模块常用的插件:
filter:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式
- grok 对若干个大文本字段进行再分割成一些小字段 (?<字段名>正则表达式) 字段名: 正则表达式匹配到的内容
- date 对数据中的时间格式进行统一和格式化
- mutate 可以重命名,删除,替换和修改事件中的字段。比如对一些无用的字段进行剔除,或增加自定义的字段
- multiline 对多行数据进行统一编排,将多行数据汇总为一个单一的行
GROK:正则捕获插件
使用文本片段切分的方式来切分日志事件,分为内置正则,自定义正则。
内置正则表达式调用:%(内置正则:字段名)
自定义正则表达式调用:(?<字段名>自定义正则)
multiline:对多行数据进行统一编排,将多行数据汇总为一个单一的行
pattern(通过正则表达式匹配行)
negate(false|true,是否取反。false表示不取反,将正则表达式匹配的行按照what的设置进行合并
true表示取反,不将正则表达式匹配的行按照what的设置进行合并)
what(previous|next,previous表示向上合并,next表示向下合并
date:将logstash收集日志事件的时间戳@timestamp与日志实际的打印时间进行格式统一
1.先配置grok插件分割出日志时间打印时间的字段
2.在date插件配置中用match匹配日志时间字段的时间格式
3.再用target输出给@timestamp字段,进行时间格式统一
ELK优化之Filebeat部署
主机地址 | 名称 | 服务 |
192.168.73.80 | es01 | elasticsearch |
192.168.73.100 | es02 | elasticsearch |
192.168.73.110 | es03 | elasticsearch |
192.168.73.120 | ngixn01 | nginx kibana |
192.168.73.130 | FILE | ngixn filebeat |
安装 NGINX
cd /etc/yum.repos.d/
上传nginx.repo文件
yum install -y nginx
systemctl enable --now nginx
cd /usr/share/nginx/html
#准备测试页面
echo '<h1>this is web page</h1>' > test.html
echo '<h1>this is web2 page</h1>' > test1.html
安装 Filebeat
上传软件包 filebeat-6.7.2-linux-x86_64.tar.gz 到/opt目录
tar xf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat
设置 filebeat 的主配置文件
cd /usr/local/filebeat
cp filebeat.yml filebeat.yml.bak
vim filebeat.yml
filebeat.inputs:
- type: log #指定 log 类型,从日志文件中读取消息
enabled: true #24行
paths:
- /var/log/nginx/access.log #28行指定监控的日志文件
- /var/log/nginx/error.log
tags: ["filebeat"] #设置索引标签
fields: #46行可以使用 fields 配置选项设置一些参数字段添加到 output 中
service_name: nginx
log_from: 192.168.73.130
--------------output-------------------
(全部注释掉)
----------------Logstash output---------------------
output.logstash: #162行
hosts: ["192.168.73.120:5044"] #164行指定 logstash 的 IP 和端口
修改Logstash配置
cd /etc/logstash/conf.d
vim filebeat.conf
input {
beats {
port => "5044"
}
}
#filter {}
output {
elasticsearch {
hosts => ["192.168.73.80:9200", "192.168.73.100:9200", "192.168.73.110:9200"] #集群els地址
index => "nginx-%{+yyyy.MM.dd}"
}
}
logstash -t -f filebeat.conf #检查文件
启动配置filebeat
192.168.73.130
启动 ./filebeat -e -c filebeat.yml
启动logstash
192.168.73.120
启动logstash logstash -f filebeat.conf