一、概述
filebeat和beats的關系
首先filebeat是Beats中的一員。
Beats在是一個輕量級日志采集器,其實Beats家族有6個成員,早期的ELK架構中使用Logstash收集、解析日志,但是Logstash對內存、cpu、io等資源消耗比較高。相比Logstash,Beats所占系統的CPU和內存幾乎可以忽略不計。
目前Beats包含六種工具:
- Packetbeat:網絡數據(收集網絡流量數據)
- Metricbeat:指標(收集系統、進程和文件系統級別的CPU和內存使用情況等數據)
- Filebeat:日志文件(收集文件數據)
- Winlogbeat:windows事件日志(收集Windows事件日志數據)
- Auditbeat:審計數據(收集審計日志)
- Heartbeat:運行時間監控(收集系統運行時的數據)
filebeat是什么
Filebeat是用於轉發和集中日志數據的輕量級傳送工具。Filebeat監視您指定的日志文件或位置,收集日志事件,並將它們轉發到Elasticsearch或 Logstash進行索引。
Filebeat的工作方式如下:啟動Filebeat時,它將啟動一個或多個輸入,這些輸入將在為日志數據指定的位置中查找。對於Filebeat所找到的每個日志,Filebeat都會啟動收集器。每個收集器都讀取單個日志以獲取新內容,並將新日志數據發送到libbeat,libbeat將聚集事件,並將聚集的數據發送到為Filebeat配置的輸出。
工作的流程圖如下:

二、安裝
環境說明
操作系統:centos 7.6
docker版本:19.03.12
ip地址:192.168.31.196
這里需要使用filebeat收集主機的/var/log/messages文件,直接發送給elasticsearch。
關於elasticsearch安裝,請參考鏈接:
https://www.cnblogs.com/xiao987334176/p/13565468.html
下載鏡像
docker pull elastic/filebeat:7.5.1
啟動鏡像
臨時啟動
docker run -d --name=filebeat elastic/filebeat:7.5.1
拷貝數據文件
docker cp filebeat:/usr/share/filebeat /data/elk7/ chmod 777 -R /data/elk7/filebeat chmod go-w /data/elk7/filebeat/filebeat.yml
編輯配置文件
# 收集系統日志 filebeat.inputs: - type: log enabled: true paths: - /var/log/messages filebeat.config: modules: path: ${path.config}/modules.d/*.yml reload.enabled: false processors: - add_cloud_metadata: ~ - add_docker_metadata: ~ output.elasticsearch: hosts: '192.168.31.196:9200' indices: - index: "filebeat-%{+yyyy.MM.dd}"
以新的方式啟動
docker rm -f filebeat docker run -d \ --name=filebeat \ --restart=always \ -v /data/elk7/filebeat:/usr/share/filebeat \ -v /var/log/messages:/var/log/messages \ elastic/filebeat:7.5.1
等待30秒,查看日志是否有錯誤
docker logs -f filebeat
三、查看日志
訪問elasticsearch head
http://192.168.31.196:9100/
如果有filebeat索引,說明成功了。

本文參考鏈接:
https://www.cnblogs.com/zsql/p/13137833.html
