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.logtags: ["filebeat"] #設置索引標簽fields: #46行可以使用 fields 配置選項設置一些參數字段添加到 output 中service_name: nginxlog_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