前言
在第一篇文章中,我们介绍了 ELK 和 EFK 的区别主要是在 Logstash 和 Filebeat 的区别,本篇文章,主要是讲解如何使用 Filebeat 采集部署在 ECS 中的服务日志,废话不多说,开干!
开始安装
下载安装 Filebeat
1 2 3 4 5 6 7 8 9 10 11 12
| # Mac OS 安装 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.6.2-darwin-x86_64.tar.gz tar xzvf filebeat-8.6.2-darwin-x86_64.tar.gz cd filebeat-8.6.2-darwin-x86_64/
# Linux DEB 安装 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.6.2-amd64.deb sudo dpkg -i filebeat-8.6.2-amd64.deb
# Linux RPM 安装 curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.6.2-x86_64.rpm sudo rpm -vi filebeat-8.6.2-x86_64.rpm
|
编辑 Filebeat 配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| filebeat.inputs: - type: log paths: - /var/www/my-api-test/logs/*.log fields: index: "my-api-test" processors: - decode_json_fields: fields: ["message"] target: "" overwrite_keys: true
- type: log paths: - /var/www/my-api-prod/logs/*.log fields: index: "my-api-prod" processors: - decode_json_fields: fields: ["message"] target: "" overwrite_keys: true
filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false
setup.template.settings: index.number_of_shards: 1
setup.kibana: host: "localhost:5601"
output.elasticsearch: hosts: ["localhost:9200"] index: "%{[fields.index]}"
processors: - add_host_metadata: when.not.contains.tags: forwarded - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~
setup.template.name: "my-api-log" setup.template.pattern: "my-api-*"
|
注释
filebeat.inputs
:需要采集的日志路径,以及采集到哪个指定的索引
filebeat.config.modules
:Filebeat 默认支持的模块,也就是可以直接使用的配置文件,如 Nginx 模块,需要启用可以使用该命令:sudo filebeat modules enable nginx
output.elasticsearch
:将采集的日志输出到指定的 ElasticSearch 服务集群,可以配置多个地址
setup.kibana
:初始化 Kibana 仪表板的配置
启动 Filebeat
- 加载 Kibana 仪表板(如果仪表板已设置,请省略此命令)
- 启动 Filebeat 服务
1
| sudo service filebeat start
|
- 观察 Kibana 是否有日志采集上来
如下图,则为采集成功,访问顺序为:日志 -> Stream
结语
到此,我们的日志就已经采集到了 ElasticSearch 中,并且可以在 Kibana 中显示。