簡(jiǎn)介:
Filebeat 是一款輕量級(jí)的日志傳輸工具,它有輸入和輸出兩端,通常是從日志文件中讀取數(shù)據(jù),輸出到 Logstash 或 Elasticsearch 。其作用是收集業(yè)務(wù)服務(wù)器的日志,輸出到一個(gè)日志系統(tǒng)便于集中管理。
官網(wǎng): https://www.elastic.co/cn/products/beats/filebeat
安裝
系統(tǒng)環(huán)境:CentOS 6.x
軟件版本:filebeat-6.4.0-x86_64.rpm
直接從官網(wǎng)下載 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.
# 這里每一個(gè) type 表示定義了一個(gè)日志讀取源,這個(gè)源是收集 Nginx 的訪問(wèn)日志
– type: log
enabled: true
paths:
– /usr/log/nginx/access/access.log
fields_under_root: true
fields:
alilogtype: nginxacclog
# 收集某一個(gè)服務(wù)的錯(cuò)誤日志
– type: log
enabled: true
paths:
– /var/www/service/storage/logs/error.log
fields_under_root: true
fields:
alilogtype: service_error
serverip: ${serverip}
# 收集某一個(gè)服務(wù)的錯(cuò)誤日志,并且使用了多行合并
– 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 ——————————–
# 將日志發(fā)送到 logstash 主機(jī)的 5044 端口,對(duì)應(yīng)的這臺(tái) logstash 主機(jī)需要配置一個(gè) input 監(jiān)聽(tīng)于 5044 (配置過(guò)程,參考 Logstash 文檔)
output.logstash:
hosts: [“10.26.10.15:5044”]
參數(shù)解釋:
## 默認(rèn)值 log ,表示一個(gè)日志讀取源
type : log
## 該配置是否生效,如果設(shè)置為 false 將不會(huì)收集該配置的日志
enabled: true
## 要抓取的日志路徑,寫絕對(duì)路徑
paths: /to/file.log
## fields 表示自定義字段,在下面縮進(jìn)兩格處寫要自己添加的字段。如: alilogtype: usercenter_serverlog 表示在輸出的每條日志中加入該字段,key:alilogtype , value:usercenter_serverlog 用于標(biāo)識(shí)該日志源的類別,在傳輸?shù)较乱粚?logstash 時(shí)可以根據(jù)該字段分類處理。
fields:
alilogtype: usercenter_serverlog
## 意思相同,增加一個(gè)自定義字段,key:serverip ,value: ${serverip} 這個(gè)值是讀取的系統(tǒng)環(huán)境變量,如果系統(tǒng)中沒(méi)有定義這個(gè)環(huán)境變量,那么啟動(dòng) filebeat 的時(shí)候會(huì)報(bào)錯(cuò),找到這個(gè)值.
serverip: ${serverip}
## 設(shè)置系統(tǒng)環(huán)境變量,創(chuàng)建文件 /etc/profile.d/serverip.sh 加入內(nèi)容:
export serverip=`ifconfig eth0 | grep ‘inet addr’ | awk ‘{print $2}’ | cut -d’:’ -f2`
## 這里拿的是本機(jī) IP
## 多行合并參數(shù),正則表達(dá)式
multiline.pattern: ‘^[‘
## true 或 false;默認(rèn)是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行
multiline.negate: true
## after 或 before,合并到上一行的末尾或開(kāi)頭
multiline.match: after
## [‘ERROR’,’WARN’] 該屬性可以配置只收集error級(jí)別和warn級(jí)別的日志,如果有配置多行收集,一定要將這個(gè)配置放在多行的后面
include_lines:
## [‘DEBUG’] 該屬性配置不收集DEBUG級(jí)別的日志,如果配置多行 這個(gè)配置也要放在多行的后面
exclude_lines:
## Logstash所在的主機(jī)
hosts:
## 如果設(shè)置為TRUE和配置了多臺(tái)logstash主機(jī),輸出插件將負(fù)載均衡的發(fā)布事件到所有l(wèi)ogstash主機(jī)。如果設(shè)置為false,輸出插件發(fā)送所有事件到隨機(jī)的一臺(tái)主機(jī)上,如果選擇的不可達(dá)將切換到另一臺(tái)主機(jī)。默認(rèn)是false。
loadbalance
## 每個(gè)配置的主機(jī)發(fā)布事件到Logstash的工作者數(shù)量。這最適用于啟用負(fù)載平衡模式。示例:如果您有2個(gè)主機(jī)和3個(gè)工作人員,則共有6個(gè)工作人員啟動(dòng)(每個(gè)主機(jī)3個(gè))。
worker