Filebeat模塊簡化了公共日志格式的收集、解析和可視化。
一個典型的模塊(例如,對于Nginx日志)是由一個或多個fileset組成的(以Nginx為例,access 和 error)。
一個fileset包含以下內容:
- Filebeat 輸入配置,其中包含要默認的查找或者日志文件路徑。這些默認路徑取決于操作系統(tǒng)。Filebeat配置還負責在需要的時候拼接多行事件。
- Elasticsearch Ingest Node 管道定義,用于解析日志行。
- 字段定義,用于為每個字段在Elasticsearch中配置正確類型。它們還包含每個字段的簡短描述。
- 簡單的Kibana dashboards,用于可視化日志文件。
Filebeat會根據(jù)你的環(huán)境自動調整這些配置,并將它們加載到相應的 Elastic stack 組件中。
1、常用日志格式的模塊
Filebeat提供了一組預先構建的模塊,你可以使用這些模塊快速實現(xiàn)并部署一個日志監(jiān)控解決方案,包括樣例指示板和數(shù)據(jù)可視化,完成這些大約只需要5分鐘。
這些模塊支持常見的日志格式,如Nginx、Apache2和MySQL,可以通過一個簡單的命令來運行。
1.1 先決條件
在運行Filebeat模塊之前:
安裝并配置Elastic stack
完成Filebeat的安裝
安裝 Ingest Node GeoIP 和 User Agent 插件。這些插件用來捕獲地理位置和瀏覽器信息,以供可視化組件所用
檢查Elasticsearch和Kibana是否正在運行,以及Elasticsearch是否準備好從Filebeat那里接收數(shù)據(jù)
你可以在Elasticsearch主目錄下運行下列命令來安裝這些插件:
sudo bin/elasticsearch-plugin install ingest-geoipsudo bin/elasticsearch-plugin install ingest-user-agent
然后,重啟Elasticsearch
1.2 運行Filebeat模塊
第1步:在filebeat.yml配置文件中設置Elasticsearch安裝的位置。默認情況下,F(xiàn)ilebeat假設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步:設置初始環(huán)境:
./filebeat setup -e
第5步:運行Filebeat
./filebeat -e
第6步:在Kibana中查看你的數(shù)據(jù)
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創(chuàng)建的access和error日志
當你運行模塊的時候,它在底層執(zhí)行一些任務:
設置默認的日志文件路徑
確保將每個多行日志事件作為單個事件發(fā)送
使用ingest節(jié)點解析和處理日志行,將數(shù)據(jù)塑造成適合在Kibana中可視化的結構
部署顯示日志數(shù)據(jù)的dashboards
這個模塊需要 ingest-user-agent 和 ingest-geoip 兩個Elasticsearch插件
2.1 設置并運行模塊
第1步:啟用模塊
./filebeat modules enable nginx
為了查看啟用或者禁用的模塊列表,運行:
./filebeat modules list
第2步:設置初始環(huán)境
./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
來源:慕課網(wǎng)