面對成百上千臺服務器產生的日誌,試試這款輕量級日誌搬運神器

以前咱們搭建的ELK日誌收集系統,主要是用來收集SpringBoot應用的日誌。其原理是應用經過Logstash插件,使用TCP向Logstash傳輸日誌,從而存儲到Elasticsearch中去。可是有不少中間件的日誌都是直接存儲在文件中的,好比Nginx、Elasticsearch和MySQL,此時咱們就須要一個搬運工來把日誌搬到Elasticsearch中去,Filebeat正是這樣一個日誌搬運工,本文將詳細介紹它的使用方法,但願對你們有所幫助。css

Filebeat簡介

Filebeat是一款輕量級日誌採集器,可用於轉發和彙總日誌與文件。Filebeat內置有多種模塊(Nginx、MySQL、Redis、Elasticsearch、Logstash等),可針對常見格式的日誌大大簡化收集、解析和可視化過程,只需一條命令便可。html

Filebeat安裝及配置

安裝Filebeat以前,咱們須要先安裝好Elasticsearch和Kibana,具體參考《你竟然還去服務器上撈日誌,搭個日誌收集系統難道不香麼 !》,注意使用7.6.2版本。mysql

  • 咱們先下載Filebeat的安裝包,下載地址:https://www.elastic.co/cn/downloads/past-releases/filebeat-7-6-2nginx

06cc3f44612940ceb707e5da02a90f44


  • 下載完成後解壓到指定目錄,注意圖中所示的三個地方;sql

7eb5937900f24f63b686b9d77d0171ac


  • Kibana中早就提供好了Filebeat收集各類日誌的教程,咱們先進入首頁,訪問地址:http://localhost:5601/app/kibana#/homebash

3c081f966f5d4ea1a798574f6ded6122


  • 點擊Add log data按鈕,能夠發現支持的中間件仍是很豐富的,涵蓋了經常使用的;服務器

c852d7e90c094a7d9815e4cc993be441


  • 點開Nginx的日誌收集教程看下,是否是很詳細;app

4e3b7ab985cd4d5380054e67d5aceb7d


  • 接下來咱們就要開始配置Filebeat了,配置好Elasticsearch和Kibana的鏈接地址,修改Filebeat的安裝目錄下的配置文件filebeat.yml便可,修改內容以下。elasticsearch

output.elasticsearch:
  hosts: ["localhost:9200"]setup.kibana:
  host: "localhost:5601"

收集Nginx日誌

咱們先拿Nginx來練練手,體驗下Filebeat的日誌收集功能吧。ide

  • 使用以下命令開啓Filebeat的Nginx日誌收集模塊;

filebeat modules enable nginx
  • 開啓完成後,進入modules.d目錄下,你會發現nginx.yml的disable後綴沒有了,說明已經被開啓;

dbbd61e367e74a61a644c27406597c20


  • 接下來修改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進行設置;

filebeat setup

9aafe766fb2c455ea7d9b68f47937e93


  • 經過以下命令啓動Filebeat服務;

filebeat -e
  • 咱們能夠經過以前使用的Kibana中的Nginx教程頁面,檢查下數據是否成功被收集了;

c94647e4b15648dd9839972cadb9383b


  • 點擊Nginx logs dashboard按鈕能夠查看收集到的Nginx日誌,先看看概覽日誌;

2164ef706232441186305f38af02b0b8


  • 再看看詳細日誌,今後不用再去服務器上撈Nginx日誌了!

07abf3c52659440bbcf54669a029af81


收集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"]
  • 設置並啓動Filebeat服務;

filebeat setup
filebeat -e
  • 在Discover頁面中查看Elasticsearch日誌。

1a3459adefa54d368b9f272ae41352a9


收集MySQL日誌

再來試試收集MySQL的日誌。

  • 使用以下命令開啓Filebeat的MySQL日誌收集模塊;

filebeat modules enable mysql
  • 接下來修改mysql.yml配置,配置好MySQL的日誌路徑,主要是錯誤日誌和慢查詢日誌;

# 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"]
  • 設置並啓動Filebeat服務;

filebeat setup
filebeat -e
  • 點擊MySQL logs dashboard按鈕能夠查看收集到的MySQL日誌;

4d391b8436674f80b34d7cf9399558f8


  • 查看MySQL收集到的日誌詳情。

ea0f75ac323844208b157a8666c13829


總結

本文主要介紹了使用Filebeat去收集Nginx、Elasticsearch和MySQL的文件日誌,其餘中間件的日誌收集用法也基本相同,用Filebeat收集中間件日誌是否是方便!

相關文章
相關標籤/搜索