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

  CREATED BY JENKINSBOT

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