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 GeoIP 和 User 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-agent 和 ingest-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
来源:慕课网