Filebeat 是一款輕量級的日誌傳輸工具,它有輸入和輸出兩端,一般是從日誌文件中讀取數據,輸出到 Logstash 或 Elasticsearch 。其做用是收集業務服務器的日誌,輸出到一個日誌系統便於集中管理。nginx
官網: 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 安裝便可。ide
###################### 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