欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ELK-FileBeat日志采集器

程序员文章站 2024-02-10 16:18:10
...

ELK-FileBeat简介

Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),
并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。
带有内部模块(auditd,Apache,Nginx,System和MySQL),
可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
  1. 下载
https://www.newbe.pro/Mirrors/Mirrors-Filebeat/
感谢这个大佬,这里下载非常块

或者

链接:https://pan.baidu.com/s/1g6wdMH7d_wtkHEgjDhHqTg 
提取码:a489

2.解压

tar -zxvf filebeat-6.7.0-linux-x86_64.tar.gz

3.修改配置文件 仅贴出简单使用部分,具体参数大家可以参考官方文档

filebeat.prospectors:
- type: log                              # 指定文件的输入类型log(默认)或者stdin
  paths: ["/data/log/*.out"]     # 日志文件所在路径
  enable: true	             		#开启监视,不开不采集
  multiline.pattern: '^\-'         #多行合并,正则表达式匹配规则
  multiline.negate: true        #定义是否为否定模式,也就是和上面定义的模式相反。 默认为false。
  multiline.match: after        #指定Filebeat如何将匹配的行组合到事件中。 设置在之后 (after) 或之前 (before)。 这些设置的行为取决于你为否定指定的内容:
output.logstash.hosts: ["xxx.xxx.xxx.xx:5044"]      #logstash的路径

4.启动

./filebeat -e -c filebeat.yml

filebeat启动成功后,会读取指定文件夹的日志,然后发往logstash;

logstash如果也是运行正常的话,会在Logstash的控制台看到打印日志;

ELK-FileBeat日志采集器
ELK-FileBeat日志采集器
5.在kibana查看是否已经生成索引
ELK-FileBeat日志采集器
ELK-FileBeat日志采集器
6.具体解释多行合并

multiline.pattern:  '^\-' 
multiline.negate: true
multiline.match: after

当不配置以上代码,fileBeat会一行一行的将日志记录输送到logstash中,那么在kibana体现出来的效果,原本应该在一行的日志,会被拆分成多行;

ELK-FileBeat日志采集器

所以需要增加多行合并配置;

参考配置含义:
multiline.pattern

指定要匹配的正则表达式模式。 请注意,Filebeat支持的正则表达式模式与Logstash支持的模式有些不同。

multiline.negate

定义是否为否定模式,默认为false,意思就是与正则表达式匹配;

multiline.match

指定Filebeat如何将匹配的行组合到事件中。 设置在之后 (after) 或之前 (before)。 这些设置的行为取决于你为否定指定的内容:

ELK-FileBeat日志采集器

5.具体示例:
ELK-FileBeat日志采集器

参考我的日志输出格式,代码中做了统一日志处理,形成日志统一按照下面这种格式分割
--------------------------------------------------------------------------------
xxxxxxx
--------------------------------------------------------------------------------
xxxxxxx
--------------------------------------------------------------------------------

multiline.pattern:  '^\-' 
multiline.negate: true
multiline.match: after

解释:将所有不以 - 开头的行,追加到以 - 开头的行后面,形成一行数据,传送给Logstash;

ELK-FileBeat日志采集器

是不是格式就跟我输出的日志一模一样了,看上去效果非常好;
但是其实我的message很长的,它没有完全展示出来;
需要修改 truncate:maxHeight = 0

ELK-FileBeat日志采集器
ELK-FileBeat日志采集器

修改此配置后,日志完美展示出来

ELK-FileBeat日志采集器

参考文章:https://www.cnblogs.com/sanduzxcvbnm/p/12941286.html

相关标签: java 运维