1 资源
资源信息 | 版本号 | 备注 |
服务器 | Centos7 | IP: 192.168.51.4 |
Filebeat | 7.4.2 |
CSDN filebeat下载:
2 介绍
Filebeat是一个日志文件托运工具。可作为一个客户端安装在你的服务器上,Filebeat可以监控日志的目录或者指定的日志文件,实时读取文件,并将其上传到Elasticsearch或Logstash进行索引等处理。
Filebeat工作流程是这样的:开启Filebeat时,它会启动一个或多个探测器(prospectors)去检测你设置的日志路径或日志文件,在定位到每一个日志文件以后,Filebeat启动一个收割进程(harvester)。每一个收割进程读取一个日志文件的新内容并把数据发送到libbeat ,libbeat会集合这些事件并将汇总的数据发送到你设置的外部接收程序中。
3 安装与配置
3.1 上传服务器
将文件上传到服务器的 /opt/module/software/filebeat
目录
[root@localhost software]# cd /opt/module/software/filebeat/
[root@localhost filebeat]# ll
总用量 53912
-rw-r--r--. 1 root root 55201797 3月 25 15:46 filebeat-7.4.2-linux-x86_64.tar.gz.zip
3.2 解压到指定目录
[root@localhost filebeat]# unzip filebeat-7.4.2-linux-x86_64.tar.gz.zip
[root@localhost filebeat]# tar -zxvf filebeat-7.4.2-linux-x86_64.tar.gz -C /usr/local
[root@localhost filebeat]# cd /usr/local
[root@localhost local]# mv filebeat-7.4.2-linux-x86_64/ filebeat-7.4.2
3.3 修改配置
[root@localhost local]# cd filebeat-7.4.2
[root@localhost filebeat-7.4.2]# vim /usr/local/filebeat-7.4.2/filebeat.yml
###################### Filebeat Configuration Example #########################
filebeat.inputs:
- input_type: log
paths:
## app-服务名称.log, 为什么写死,防止发生轮转抓取历史数据
- /usr/local/logs/app-elk-demo.log
#定义写入 ES 时的 _type 值
document_type: "app-log"
multiline:
#pattern: '^\s*(\d{4}|\d{2})\-(\d{2}|[a-zA-Z]{3})\-(\d{2}|\d{4})' # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)
pattern: '^\[' # 指定匹配的表达式(匹配以 "{ 开头的字符串)
negate: true # 是否匹配到
match: after # 合并到上一行的末尾
max_lines: 2000 # 最大的行数
timeout: 2s # 如果在规定时间没有新的日志事件就不等待后面的日志
fields:
logbiz: collector
logtopic: app-log-collector ## 按服务划分用作kafka topic
evn: dev
- input_type: log
paths:
- /usr/local/logs/error-elk-demo.log
document_type: "error-log"
multiline:
#pattern: '^\s*(\d{4}|\d{2})\-(\d{2}|[a-zA-Z]{3})\-(\d{2}|\d{4})' # 指定匹配的表达式(匹配以 2017-11-15 08:04:23:889 时间格式开头的字符串)
pattern: '^\[' # 指定匹配的表达式(匹配以 "{ 开头的字符串)
negate: true # 是否匹配到
match: after # 合并到上一行的末尾
max_lines: 2000 # 最大的行数
timeout: 2s # 如果在规定时间没有新的日志事件就不等待后面的日志
fields:
logbiz: collector
logtopic: error-log-collector ## 按服务划分用作kafka topic
evn: dev
output.kafka:
enabled: true
hosts: ["192.168.51.4:9092"]
topic: '%{[fields.logtopic]}'
partition.hash:
reachable_only: true
compression: gzip
max_message_bytes: 1000000
required_acks: 1
logging.to_files: true
3.4 测试启动
3.4.1 校验配置是否正确
[root@localhost filebeat-7.4.2]# ./filebeat test config -c filebeat.yml
## Config OK
3.4.2 启动filebeat
如果kafaka还未安装,请注释掉下面的代码在运行
#output.kafka:
#enabled: true
#hosts: ["192.168.51.4:9092"]
#topic: '%{[fields.logtopic]}'
#partition.hash:
# reachable_only: true
#compression: gzip
#max_message_bytes: 1000000
#required_acks: 1
[root@localhost filebeat-7.4.2]# /usr/local/filebeat-7.4.2/filebeat &
3.4.3 查看进程
[root@localhost filebeat-7.4.2]# ps -ef | grep filebeat
root 87453 86806 1 18:44 pts/2 00:00:00 /usr/local/filebeat-7.4.2/filebeat
root 87464 86806 0 18:44 pts/2 00:00:00 grep --color=auto filebeat
3.4.4 停止filebeat
[root@localhost filebeat-7.4.2]# ps -ef |grep filebeat[root@localhost filebeat-7.4.2]# kill -9 #进程号