FileBeat6.4 快速上手

簡介:

Filebeat 是一款輕量級的日誌傳輸工具,它有輸入和輸出兩端,通常是從日誌文件中讀取數據,輸出到 Logstash 或 Elasticsearch 。其作用是收集業務服務器的日誌,輸出到一個日誌系統便於集中管理。

官網: https://www.elastic.co/cn/products/beats/filebeat

安裝

系統環境:Centos6.x

軟件版本:filebeat-6.4.0-x86_64.rpm

直接從官網下載 RPM 包,使用 rpm -ivh filebeat-6.4.0-x86_64.rpm 安裝即可。

配置

  • 主配置文件 /etc/filebeat/filebeat.yml
###################### Filebeat Configuration Example #########################

#=========================== Filebeat inputs =============================

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

# 這裏每一個 type 表示定義了一個日誌讀取源,這個源是收集 Nginx 的訪問日誌
- type: log

  enabled: true

  paths:
    - /usr/log/nginx/access/access.log
  fields_under_root: true
  fields: 
    alilogtype: nginxacclog

# 收集某一個服務的錯誤日誌
- type: log

  enabled: true

  paths:
    - /var/www/service/storage/logs/error.log
  fields_under_root: true
  fields: 
    alilogtype: service_error
    serverip: ${serverip}

# 收集某一個服務的錯誤日誌,並且使用了多行合併
- type: log

  enabled: true

  paths:
    - /var/www/user_center/storage/logs/SERVER*.log
  fields_under_root: true
  fields: 
    alilogtype: usercenter_serverlog
    serverip: ${serverip}

  multiline.pattern: '^\['
  multiline.negate: true
  multiline.match: after

#============================= Filebeat modules ===============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  # Period on which files under path should be checked for changes
  #reload.period: 10s

#================================ Outputs =====================================

#-------------------------- Elasticsearch output ------------------------------

# 這部分是用於配置日誌輸出到 Elasticsearch 的部分

#----------------------------- Logstash output --------------------------------

# 將日誌發送到 logstash 主機的 5044 端口,對應的這臺 logstash 主機需要配置一個 input 監聽於 5044 (配置過程,參考 Logstash 文檔)
output.logstash:
  hosts: ["10.26.10.15:5044"]

參數解釋:


## 默認值 log ,表示一個日誌讀取源
type : log

## 該配置是否生效,如果設置爲 false 將不會收集該配置的日誌
enabled: true

## 要抓取的日誌路徑,寫絕對路徑
paths: /to/file.log

## fields 表示自定義字段,在下面縮進兩格處寫要自己添加的字段。如: alilogtype: usercenter_serverlog  表示在輸出的每條日誌中加入該字段,key:alilogtype , value:usercenter_serverlog 用於標識該日誌源的類別,在傳輸到下一層 logstash 時可以根據該字段分類處理。
  fields: 
    alilogtype: usercenter_serverlog
##     意思相同,增加一個自定義字段,key:serverip ,value: ${serverip} 這個值是讀取的系統環境變量,如果系統中沒有定義這個環境變量,那麼啓動 filebeat 的時候會報錯,找到這個值.
        serverip: ${serverip}

## 設置系統環境變量,創建文件  /etc/profile.d/serverip.sh  加入內容:
export serverip=`ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | cut -d':' -f2`
## 這裏拿的是本機 IP

## 多行合併參數,正則表達式
multiline.pattern: '^\['
## true 或 false;默認是false,匹配pattern的行合併到上一行;true,不匹配pattern的行合併到上一行
multiline.negate: true
## after 或 before,合併到上一行的末尾或開頭
multiline.match: after

##  ['ERROR','WARN'] 該屬性可以配置只收集error級別和warn級別的日誌,如果有配置多行收集,一定要將這個配置放在多行的後面
include_lines:
## ['DEBUG'] 該屬性配置不收集DEBUG級別的日誌,如果配置多行 這個配置也要放在多行的後面
exclude_lines: 

## Logstash所在的主機
hosts: 

## 如果設置爲TRUE和配置了多臺logstash主機,輸出插件將負載均衡的發佈事件到所有logstash主機。如果設置爲false,輸出插件發送所有事件到隨機的一臺主機上,如果選擇的不可達將切換到另一臺主機。默認是false。
loadbalance

## 每個配置的主機發布事件到Logstash的工作者數量。這最適用於啓用負載平衡模式。示例:如果您有2個主機和3個工作人員,則共有6個工作人員啓動(每個主機3個)。
worker
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章