Filebeat 内置了一些默认的模块,用于快速创建日志方案、仪表盘、数据可视化。这些模块支持「通用日志格式」「Common Log Format」。
该手册展示了如何使用最小配置来运行这些模块。详细配置和使用参考「Modules」部分。
如果没有适用于你的日志格式的模块,可以参考「Getting Started With Filebeat」部分。
环境准备
- 配置 ELastic Stack 环境;
- 安装 Filebeat 服务;
- 安装「Ingest Node GeoIP」「User Agent」插件,这用户分析用户地址位置和代理,然后在可视化时显示:
- elasticsearch-plugin install ingest-geoip
- elasticsearch-plugin install ingest-user-agent
- systemctl restart elasticsearch.service
- 验证 Elasticsearch 和 Kibana 可以正常访问,并且 Filebeat 可以访问 Elasticsearch 并写入数据;
运行 Filebeat 模块
#1 修改 filebeat.yml 文件
output.elasticsearch: hosts: ["yourESHostname:9200"]
#2 配置认证信息(可选)
在后面的某个步骤中,Filebeat 需要访问 Kibana 和 Elasticsearch,因为要向二者导入模板数据并进行设置。所以,如果有认证信息,则需要配置:
output.elasticsearch: hosts: ["myEShost:9200"] username: "filebeat_internal" password: "YOUR_PASSWORD" setup.kibana: host: "mykibanahost:5601" username: "my_kibana_user" password: "YOUR_PASSWORD"
#3 启用模块
下面启用了 Nginx 和 System 模块:
#!/bin/bash filebeat modules enable system nginx mysql # 如果要查看启动和禁用的模块,则可以使用如下命令: filebeat modules list
该命令实际上是启用了 modeule.d/ 的模块。
当然,比如 Nignx,如果你的日志文件不在标准路径中,则需要修改 modules.d/nginx.yml 指定日志文件的路径。参考「Set the paths variable」部分。
#4 设置初始环境
执行如下命令开始初始化环境:
#!/bin/bash filebeat setup -e
这一步就是要访问 Elasticsearch 和 Kibana 向二者中导入模板和设置。
选项-e 用于向标准错误中写入日志,这样你就能看见初始化成功与否。
假设启用了 output.elasticsearch,则在第一次运行模块时,将自动设置用于解析日志行的 ingest pipeline,这里不介绍 ingest pipeline 是什么。其实 ingest pipeline 就是 Filebeat 解析日志用的 emmmmm…… ”配置“?
#5 运行 Filebeat 服务
#!/bin/bash systemctl start filebeat
如果配置正确,那配置文件中指定的每个文件都会有对应的”INFO Harvester started“输出。
注意,你可能会遇到其他的错误,根据提示进行修改就可以了。或者以filebeat -e运行,将日志输出在控制中进行查看。
参考文献
Quick start: modules for common log formats