Filebeat安裝部署教程

簡介

Filebeat是一個輕量級的日誌收集工具,安裝在客戶端,資源消耗少。Filebeat監控並收集指定路徑下的日誌文件信息,並將收集到的日誌數據發送到Elasticsearch或者Logstash。

Filebeat工作示意圖

  1. Filebeat啓動後會監控一個或多個目錄下的日誌文件

  2. 對於監控的每一個文件,都會啓動一個Harvester進程

  3. Harvester負責監控日誌文件內容,收集新增的日誌數據並將其發送到libbeat

  4. libbeat會將收到的所有數據進行彙總,並輸出到Filebeat配置的輸出(Elasticsearch或者Logstash等)

工作原理

Filebeat保持每個被監控的文件狀態,並頻繁的把文件狀態從註冊表中保存到磁盤上。文件的狀態主要是用來記錄上一次Harvester讀取文件的位置,這樣能保證把全部的日誌數據讀取併發送給後端(logstash或Elasticsearch)。

  • 如果Elasticsearch或LogStash不可用了,Filebeat會把最後讀取數據的文件位置保存下來,當Elasticsearch或LogStash可用時,能夠快速恢復。

  • 如果Filebeat進行了重啓,則重啓後會從註冊表文件中恢復之前記錄的文件狀態信息,繼續從之前已知的位置開始讀取數據。

安裝部署

一、下載和安裝key文件

$ sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

二、創建yum源文件

$ sudo vim /etc/yum.repos.d/elastic.repo
[elastic-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

三、安裝

$ sudo yum install filebeat

安裝路徑

/usr/share/filebeat/        # 安裝路徑

配置文件路徑

/etc/filebeat/              # 配置文件路徑

四、啓動

$ cd /usr/share/filebeat/bin
$ filebeat -c /etc/filebeat/filebeat.yml

五、添加啓動服務

$ sudo chkconfig -add filebeat
$ service filebeat start|stop|restart    # 啓動|停止|重啓

六、配置文件

配置文件filebeat.yml
  • filebeat.prospectors
filebeat探礦者,即日誌文件的追蹤全部由它負責,可配置多個
filebeat.prospectors
- type: log
  paths:
    - /var/log/*.log                    # 日誌文件路徑,支持glob模板
  exclude_lines: ['^DBG’]               # 排除日誌文件中以DBG開頭的行
  include_lines: ['^ERR’, 'WARN’]       # 包含日誌文件中以ERR、WARN開頭的行
  exclude_files: ['.gz$’]               # 排除文件名以.gz結尾的日誌文件
  fields:                               # 額外增加字段
    level: debug
    review: 1
multiline.pattern: ^\[                  # 對日誌文件中多行數據進行匹配
multiline.negate: false                 # 是否對匹配結果取反,默認爲false
Multiline.match: after
  • filebeat.config.modules
glob模板配置
Filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml    # 模板目錄
  reload.enabled: false                   # 是否自定重新加載,默認false
  reload.period: 10s                      # 重新加載間隔時間
  • output
Elasticsearch
# -------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  hosts: ["localhost:9200”]                        # elasticsearch IP和port,可支持多個
  protocol: "https”                                # 網絡協議
  username: "elastic”                              # elasticsearch 用戶名
  password: “changeme”                             # elasticsearch 密碼

Logstash

# ----------------------------- Logstash output --------------------------------
output.logstash:
  hosts: ["localhost:5044”]                                # logstash IP和port
  ssl.certificate_authorities: ["/etc/pki/root/ca.pem”]    # 用於HTTPS服務器驗證的根證書列表
  ssl.certificate: "/etc/pki/client/cert.pem”              # 用於SSL客戶端身份驗證的證書
  ssl.key: "/etc/pki/client/cert.key”                      # 客戶端證書密鑰

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章