之前我們搭建的ELK日志收集系統(tǒng)碍庵,主要是用來收集SpringBoot應(yīng)用的日志。其原理是應(yīng)用通過Logstash插件悟狱,使用TCP向Logstash傳輸日志静浴,從而存儲到Elasticsearch中去。但是有很多中間件的日志都是直接存儲在文件中的挤渐,比如Nginx苹享、Elasticsearch和MySQL,此時(shí)我們就需要一個(gè)搬運(yùn)工來把日志搬到Elasticsearch中去浴麻,F(xiàn)ilebeat正是這樣一個(gè)日志搬運(yùn)工得问,本文將詳細(xì)介紹它的使用方法,希望對大家有所幫助软免。
Filebeat簡介
Filebeat是一款輕量級日志采集器宫纬,可用于轉(zhuǎn)發(fā)和匯總?cè)罩九c文件。Filebeat內(nèi)置有多種模塊(Nginx膏萧、MySQL漓骚、Redis蝌衔、Elasticsearch、Logstash等)蝌蹂,可針對常見格式的日志大大簡化收集噩斟、解析和可視化過程,只需一條命令即可孤个。
Filebeat安裝及配置
安裝Filebeat之前剃允,我們需要先安裝好Elasticsearch和Kibana,具體參考 你居然還去服務(wù)器上撈日志齐鲤,搭個(gè)日志收集系統(tǒng)難道不香么 斥废,注意使用7.6.2版本。
-
我們先下載Filebeat的安裝包image.png
下載完成后解壓到指定目錄佳遂,注意圖中所示的三個(gè)地方营袜;
- Kibana中早就提供好了Filebeat收集各種日志的教程丑罪,我們先進(jìn)入首頁
- 點(diǎn)擊Add log data按鈕,可以發(fā)現(xiàn)支持的中間件還是很豐富的吩屹,涵蓋了常用的跪另;
- 點(diǎn)開Nginx的日志收集教程看下煤搜,是不是很詳細(xì)免绿;
- 接下來我們就要開始配置Filebeat了擦盾,配置好Elasticsearch和Kibana的連接地址嘲驾,修改Filebeat的安裝目錄下的配置文件filebeat.yml即可,修改內(nèi)容如下迹卢。
hosts: ["localhost:9200"]
setup.kibana:
host: "localhost:5601"
收集Nginx日志
我們先拿Nginx來練練手辽故,體驗(yàn)下Filebeat的日志收集功能吧。
- 使用如下命令開啟Filebeat的Nginx日志收集模塊腐碱;
filebeat modules enable nginx
- 開啟完成后誊垢,進(jìn)入modules.d目錄下,你會發(fā)現(xiàn)nginx.yml的disable后綴沒有了症见,說明已經(jīng)被開啟喂走;
- 接下來修改nginx.yml文件谋作,配置好Nginx的access和error日志路徑芋肠;
# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-nginx.html
- module: nginx
access:
enabled: true
var.paths: ["I:/developer/env/nginx-1.8.1/logs/access.log"]
error:
enabled: true
var.paths: ["I:/developer/env/nginx-1.8.1/logs/error.log"]
- 由于啟用了Nginx日志收集模塊,我們需要通過如下命令對Filebeat進(jìn)行設(shè)置遵蚜;
filebeat setup
- 通過如下命令啟動(dòng)Filebeat服務(wù)秒咐;
filebeat -e
- 我們可以通過之前使用的Kibana中的Nginx教程頁面,檢查下數(shù)據(jù)是否成功被收集了碘裕;
- 點(diǎn)擊Nginx logs dashboard按鈕可以查看收集到的Nginx日志,先看看概覽日志帮孔;
- 再看看詳細(xì)日志,從此不用再去服務(wù)器上撈Nginx日志了文兢!
收集Elasticsearch日志
接下來我們再試試收集Elasticsearch的日志晤斩。
- 使用如下命令開啟Filebeat的Elasticsearch日志收集模塊;
filebeat modules enable elasticsearch
- 接下來修改elasticsearch.yml配置姆坚,配置好Elasticsearch的日志路徑澳泵;
# Module: elasticsearch
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-elasticsearch.html
- module: elasticsearch
server:
enabled: true
var.paths: ["I:/developer/env/elasticsearch-7.6.2/logs/elasticsearch.log"]
slowlog:
enabled: true
var.paths: ["I:/developer/env/elasticsearch-7.6.2/logs/elasticsearch_index_indexing_slowlog.log","I:/developer/env/elasticsearch-7.6.2/logs/elasticsearch_index_search_slowlog.log"]
deprecation:
enabled: true
var.paths: ["I:/developer/env/elasticsearch-7.6.2/logs/elasticsearch_deprecation.log"]
- 設(shè)置并啟動(dòng)Filebeat服務(wù);
filebeat setup
filebeat -e
- 在Discover頁面中查看Elasticsearch日志兼呵。
收集MySQL日志
再來試試收集MySQL的日志。
- 使用如下命令開啟Filebeat的MySQL日志收集模塊击喂;
filebeat modules enable mysql
- 接下來修改mysql.yml配置维苔,配置好MySQL的日志路徑,主要是錯(cuò)誤日志和慢查詢?nèi)罩荆?/li>
# Module: mysql
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.6/filebeat-module-mysql.html
- module: mysql
error:
enabled: true
var.paths: ["C:/ProgramData/MySQL/MySQL Server 5.7/Data/DESKTOP-5NIMJ19.err"]
slowlog:
enabled: true
var.paths: ["C:/ProgramData/MySQL/MySQL Server 5.7/Data/DESKTOP-5NIMJ19-slow.log"]
- 設(shè)置并啟動(dòng)Filebeat服務(wù)懂昂;
filebeat setup
filebeat -e
-
點(diǎn)擊MySQL logs dashboard按鈕可以查看收集到的MySQL日志介时;
image.png -
查看MySQL收集到的日志詳情。
image.png
總結(jié)
本文主要介紹了使用Filebeat去收集Nginx凌彬、Elasticsearch和MySQL的文件日志沸柔,其他中間件的日志收集用法也基本相同,用Filebeat收集中間件日志是不是方便铲敛!