【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
安装
sudo yum install filebeat
启动服务
sudo chkconfig --add filebeat
systemctl start filebeat
systemctl status filebeat
收集日志
先以收集docker日志为例,简单来介绍一下filebeat的配置文件该如何编写。具体内容如下:
[root@localhost ~]# grep "^\s*[^# \t].*$" /etc/filebeat/filebeat.yml
filebeat:
prospectors:
- input_type: log
paths:
- /data/logs/nginx/*.log
input_type: log
document_type: nginx
close_inactive: 1m
scan_frequency: 5s
fields:
nginx_id: web-nodejs
fields_under_root: true
close_removed: true
tail_files: true
tags: 'web-nginx'
spool_size: 1024
idle_timeout: 5s
registry_file: /var/lib/filebeat/registry
output:
logstash:
enabled: true
hosts: ["192.168.6.108:5044"]
worker: 4
bulk_max_size: 1024
compression_level: 6
loadbalance: false
index: filebeat
backoff.max: 120s
和看的一样,其实并没有太多的内容。采集/var/lib/docker/containers//.log,即filebeat所在节点的所有容器的日志。输出的位置是ElasticSearch的服务地址,这里直接将log输送给ES,而不通过Logstash中转。
再启动之前,还需要向ES提交一个filebeat index template,以便让elasticsearch知道filebeat输出的日志数据都包含哪些属性和字段。filebeat.template.json这个文件安装完之后就有,无需自己编写,找不到的可以通过find查找。加载模板到elasticsearch中:
[root@localhost ~]# curl -XPUT 'http://192.168.58.128:9200/_template/filebeat?pretty' -d@/etc/filebeat/filebeat.template.json
{
"acknowledged" : true
}
重启服务
systemctl restart filebeat
提示:如果启动的是一个filebeat容器,需要将/var/lib/docker/containers目录挂载到该容器中;
Kibana配置
如果上面配置都没有问题,就可以访问Kibana,不过这里需要添加一个新的index pattern。按照manual中的要求,对于filebeat输送的日志,index name or pattern应该填写为:"filebeat-*"。
来源:oschina
链接:https://my.oschina.net/lion1220/blog/3149319