「Filebeat」- 通用日志格式模块

Filebeat 内置了一些默认的模块,用于快速创建日志方案、仪表盘、数据可视化。这些模块支持「通用日志格式」「Common Log Format」。

该手册展示了如何使用最小配置来运行这些模块。详细配置和使用参考「Modules」部分。

如果没有适用于你的日志格式的模块,可以参考「Getting Started With Filebeat」部分。

环境准备

  1. 配置 ELastic Stack 环境;
  2. 安装 Filebeat 服务;
  3. 安装「Ingest Node GeoIP」「User Agent」插件,这用户分析用户地址位置和代理,然后在可视化时显示:
    1. elasticsearch-plugin install ingest-geoip
    2. elasticsearch-plugin install ingest-user-agent
    3. systemctl restart elasticsearch.service
  4. 验证 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