日志文件——>fileBeat收集——>logStash清洗——>进入ES——>kibana可视化查询
一。filebeat和logstash的区别
相同点:
都可以做日志收集
不同点:
语言:logstash是JVM,filebeat是golang
轻量级:logstash资源消耗比较大,filebeat更轻量级
过滤:logstash能进行日志过滤
filebeat可以把数据传输给logstash进行数据过滤处理,称为背压机制
二。filebeat
1.简介
FileBeat是用于收集日志数据和转发的轻量级采集工具。
FileBeat监视指定路径的日志文件,收集日志数据,并将收集到的日志转发到ElasticSearch或者LogStash
2.下载安装
下载地址:https://www.elastic.co/cn/downloads(与ELK版本保持一致),解压zip文件
3.示例:fileBeat收集日志文件,然后直接传输到es或者logStash或者kafka护着其他
a.在fileBeat的安装目录创建配置文件filebeat_test.yml
b.编辑创建的配置文件filebeat_test.yml,指定输入和输出
filebeat.inputs:
- type: log
enabled: true
paths:
- D:\elk\testLogs\server.*
output.elasticsearch: (fileBeat默认会将日志数据放到es中名称为 filebeat-%filebeat版本号%-yyyy.MM.dd-000001的索引中)
hosts: ["localhost:9200"]
c.运行es
d.以刚刚创建的配置文件filebeat.test.yml运行fileBeat
linux: ./filebeat -c filebeat_test.yml -e
windows:安装目录下打开CMD,敲命令: filebeat -c filebeat_test.yml -e
-c 指定配置文件 -e显示日志信息
e.测试:浏览器访问 http://localhost:9200/_cat/indices?v,出现索引库 filebeat-7.12.0-2021.10.03-000001
4.背压机制
fileBeat收集日志文件传给logStash
如果logStash感觉fileBeat收的太快了,fileBeat就会感知到然后减慢收集的速度
如果logStash感觉fileBeat收的太慢了,fileBeat也会感知到然后加快收集的速度
输出到es
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/kafka/log/server.log.*
output.elasticsearch:
hosts: ["192.168.21.130:9200", "192.168.21.131:9200", "192.168.21.132:9200"]
输出到logstash
filebeat.inputs:
- type: log
enabled: true
paths:
- D:\idea\project\yongfu\substationserver\target\.logs\*
multiline.pattern: '^\\d+\\.\\d+\\.\\d+\\.\\d+ ' //正则表达式 ,这个正则表示ip地址
multiline.negate: false //true或者false,默认false,ture表示匹配正则,反正不匹配
multiline.match: after //after 或 before,合并到上一行的末尾或开头
output.logstash:
enabled: true
hosts: ["localhost:5044"]
三。logstash
1.下载安装
下载地址:https://www.elastic.co/cn/downloads
解压即完成安装
2.运行测试:
linux:bin logstash -e 'input ( stdin ( ) ) output ( stdout () )'
bin/logstash ‐f config/filebeat‐elasticSearch.conf ‐‐config.reload.automatic
windows: 双击logstash.bat
logStash配置文件格式
//input表示要接收的数据
input {
}
//对接收的数据进行过滤处理
filter {
}
//表示将数据输出到其他位置
output {
}
四。EFLK——fileBeat整合ELK(logStash,ES,Kibana)实战
流程:日志文件——>fileBeat收集——>logStash清洗——>进入ES——>kibana可视化查询
1、下载安装并启动ES和kibana 见:https://blog.csdn.net/weixin_44635157/article/details/114983268
2、下载fileBeat并解压,在安装目录下编写fileBeat配置文件 filebeat_fromTxt_toEs.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- D:\idea\project\yongfu\substationserver\target\.logs\*
multiline.pattern: '^\\d+\\.\\d+\\.\\d+\\.\\d+ ' //正则表达式 ,这个正则表示ip地址
multiline.negate: false //true或者false,默认false,ture表示匹配正则,反正不匹配
multiline.match: after //after 或 before,合并到上一行的末尾或开头
output.logstash:
enabled: true
hosts: ["localhost:5044"]
/**
上面的表示以ip地址开头的行追加到上一行末尾,下面的表示不以时间格式开头的行追加到上一行末尾
multiline.pattern:^[0‐2][0‐9]:[0‐5][0‐9]:[0‐5][0‐9]
multiline.negate:true
multiline.match:after
*/
2.启动fileBeat: filebeat -c filebeat_fromTxt_toLogstash.yml -e
3.配置logStash配置文件 logStash_fromFileBeat_toEs
input {
beats{
port => 5044
}
}
output { //日志信息输出到es
elasticsearch{
hosts => [ "localhost:9200"]
index => "索引库名字:mva_web_log_%{+YYYY-MM}"
}
}
stdout { //日志信息也打印在控制台
codec => rubydebug
}
4.启动logStash