FileBeat模块配置采集

Filebeat模块简化了公共日志格式的收集、解析和可视化。
一个典型的模块(例如,对于Nginx日志)是由一个或多个fileset组成的(以Nginx为例,access 和 error)。
一个fileset包含以下内容:

  • Filebeat 输入配置,其中包含要默认的查找或者日志文件路径。这些默认路径取决于操作系统。Filebeat配置还负责在需要的时候拼接多行事件。
  • Elasticsearch Ingest Node 管道定义,用于解析日志行。
  • 字段定义,用于为每个字段在Elasticsearch中配置正确类型。它们还包含每个字段的简短描述。
  • 简单的Kibana dashboards,用于可视化日志文件。
    Filebeat会根据你的环境自动调整这些配置,并将它们加载到相应的 Elastic stack 组件中。

1、常用日志格式的模块

Filebeat提供了一组预先构建的模块,你可以使用这些模块快速实现并部署一个日志监控解决方案,包括样例指示板和数据可视化,完成这些大约只需要5分钟。

这些模块支持常见的日志格式,如Nginx、Apache2和MySQL,可以通过一个简单的命令来运行。

1.1 先决条件

在运行Filebeat模块之前:

  • 安装并配置Elastic stack

  • 完成Filebeat的安装

  • 安装 Ingest Node GeoIPUser Agent 插件。这些插件用来捕获地理位置和浏览器信息,以供可视化组件所用

  • 检查Elasticsearch和Kibana是否正在运行,以及Elasticsearch是否准备好从Filebeat那里接收数据

你可以在Elasticsearch主目录下运行下列命令来安装这些插件:

sudo bin/elasticsearch-plugin install ingest-geoipsudo bin/elasticsearch-plugin install ingest-user-agent

然后,重启Elasticsearch

1.2 运行Filebeat模块

第1步:在filebeat.yml配置文件中设置Elasticsearch安装的位置。默认情况下,Filebeat假设Elasticsearch运行在9200端口上。

如果你是运行在Elastic Cloud上,指定你的Cloud ID。例如:

cloud.id: "staging:dXMtZWFzdC0xLmlOTYyNTc0Mw=="

如果你是运行在自己的硬件设备上,设置主机和端口。例如:

output.elasticsearch:
    hosts: ["myEShost:9200"]

第2步:如果Elasticsearch配置了安全策略,你需要在filebeat.yml中指定访问的凭证。

如果你运行在Elastic Cloud上,请指定你的授权凭证。例如:

cloud.auth: "elastic:YOUR_PASSWORD"

如果你运行在自己的硬件设备上,请指定你的Elasticsearch和Kibana凭证。例如:

output.elasticsearch:
  hosts: ["myEShost:9200"]
  username: "filebeat_internal"
  password: "YOUR_PASSWORD" 
setup.kibana:
  host: "mykibanahost:5601"
  username: "my_kibana_user"  
  password: "YOUR_PASSWORD"

第3步:启用你想运行的模块。例如:

./filebeat modules enable system nginx mysql

第4步:设置初始环境:

./filebeat setup -e

第5步:运行Filebeat

./filebeat -e

第6步:在Kibana中查看你的数据

1.3 设置路径变量

每个模块和fileset都有变量,你可以设置它们,以改变模块的默认行为,包括模块查找日志文件的路径。

可以在配置文件或者命令行下设置这些路径。例如:

- module: nginx
  access:
    var.paths: ["/var/log/nginx/access.log*"]

或者

./filebeat -e -M "nginx.access.var.paths=[/usr/local/var/log/nginx/access.log*]"

2、Nginx模块

nginx模块解析Nginx创建的access和error日志

当你运行模块的时候,它在底层执行一些任务:

  • 设置默认的日志文件路径

  • 确保将每个多行日志事件作为单个事件发送

  • 使用ingest节点解析和处理日志行,将数据塑造成适合在Kibana中可视化的结构

  • 部署显示日志数据的dashboards

这个模块需要 ingest-user-agentingest-geoip 两个Elasticsearch插件

2.1 设置并运行模块

第1步:启用模块

./filebeat modules enable nginx

为了查看启用或者禁用的模块列表,运行:

./filebeat modules list

第2步:设置初始环境

./filebeat setup -e

第3步:运行

./filebeat -e

2.2 配置模块

通过在modules.d/nginx.yml中指定变量设置,或者在命令行中重写设置来改变模块的行为。例如:

- module: nginx
  access:
    enabled: true
    var.paths: ["/path/to/log/nginx/access.log*"]
  error:
    enabled: true
    var.paths: ["/path/to/log/nginx/error.log*"]

或者

-M "nginx.access.var.paths=[/path/to/log/nginx/access.log*]" -M "nginx.error.var.paths=[/path/to/log/nginx/error.log*]"

3、Kafka模块

3.1 配置

- module: kafka
  log:
    enabled: true
    var.paths:
      - "/path/to/logs/controller.log*"
      - "/path/to/logs/server.log*"
      - "/path/to/logs/state-change.log*"
      - "/path/to/logs/kafka-*.log*"

或者

-M "kafka.log.var.paths=[/path/to/logs/controller.log*, /path/to/logs/server.log*, /path/to/logs/state-change.log*, /path/to/logs/kafka-*.log*]"

其它模块配置大同小异,不再赘述。

4、启动模块

Filebeat提供了几种启用模块的不同方式:

4.1 用modules.d目录启用模块配置

./filebeat modules enable apache2 mysql

4.2 运行Filebeat是启用模块

./filebeat --modules nginx,mysql,system

4.3 在filebeat.yml中启用模块

如果可能的话,你应该用modules.d目录下的配置文件

filebeat.modules:
- module: nginx
- module: mysql
- module: system

链接:https://www.imooc.com/article/70007
来源:慕课网

你可能感兴趣的:(FileBeat模块配置采集)