title: filebeat config
date: 2017-06-11 03:22:31
categories: elk
tags: filebeat
Filebeat Prospector
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache/httpd-*.log
document_type: apache
- input_type: log
paths:
- /var/log/messages
- /var/log/*.log
Filebeat Options
input_type: log|stdin
- 指定輸入類型
paths
- 支持基本的正則察署,所有g(shù)olang glob都支持,支持/var/log/*/*.log
encoding
- plain, latin1, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, gbk, hz-gb-2312,
- euc-kr, euc-jp, iso-2022-jp, shift-jis, and so on
exclude_lines
- 支持正則 排除匹配的行溺蕉,如果有多行,合并成一個(gè)單一行來進(jìn)行過濾
include_lines
- 支持正則 include_lines執(zhí)行完畢之后會(huì)執(zhí)行exclude_lines。
exclude_files
- 支持正則 排除匹配的文件
- exclude_files: ['.gz$']
tags
-
列表中添加標(biāo)簽,用過過濾
filebeat.prospectors: - paths: ["/var/log/app/*.json"] tags: ["json"]
fields
可選字段,選擇額外的字段進(jìn)行輸出
可以是標(biāo)量值赡矢,元組,字典等嵌套類型
-
默認(rèn)在sub-dictionary 位置
filebeat.prospectors: - paths: ["/var/log/app/*.log"] fields: app_id: query_engine_12
fields_under_root
如果值為ture阅仔,那么fields存儲(chǔ)在輸出文檔的頂級(jí)位置
-
如果與filebeat中字段沖突吹散,自定義字段會(huì)覆蓋其他字段
fields_under_root: true fields: instance_id: i-10a64379 region: us-east-1
ignore_older
- 可以指定Filebeat忽略指定時(shí)間段以外修改的日志內(nèi)容
- 文件被忽略之前,確保文件不在被讀取霎槐,必須設(shè)置ignore older時(shí)間范圍大于close_inactive
- 如果一個(gè)文件正在讀取時(shí)候被設(shè)置忽略,它會(huì)取得到close_inactive后關(guān)閉文件梦谜,然后文件被忽略
close_*
close_ *配置選項(xiàng)用于在特定標(biāo)準(zhǔn)或時(shí)間之后關(guān)閉harvester丘跌。 關(guān)閉harvester意味著關(guān)閉文件處理程序。 如果在harvester關(guān)閉后文件被更新唁桩,則在scan_frequency過后闭树,文件將被重新拾取。 但是荒澡,如果在harvester關(guān)閉時(shí)移動(dòng)或刪除文件报辱,F(xiàn)ilebeat將無法再次接收文件,并且harvester未讀取的任何數(shù)據(jù)都將丟失单山。
close_inactive
- 啟動(dòng)選項(xiàng)時(shí)碍现,如果在制定時(shí)間沒有被讀取,將關(guān)閉文件句柄
- 讀取的最后一條日志定義為下一次讀取的起始點(diǎn)米奸,而不是基于文件的修改時(shí)間
- 如果關(guān)閉的文件發(fā)生變化昼接,一個(gè)新的harverster將在scan_frequency運(yùn)行后被啟動(dòng)
- 建議至少設(shè)置一個(gè)大于讀取日志頻率的值,配置多個(gè)prospector來實(shí)現(xiàn)針對(duì)不同更新速度的日志文件
- 使用內(nèi)部時(shí)間戳機(jī)制悴晰,來反映記錄日志的讀取慢睡,每次讀取到最后一行日志時(shí)開始倒計(jì)時(shí)
- 使用2h 5m 來表示
close_rename
- 當(dāng)選項(xiàng)啟動(dòng),如果文件被重命名和移動(dòng)铡溪,filebeat關(guān)閉文件的處理讀取
close_removed
- 當(dāng)選項(xiàng)啟動(dòng)漂辐,文件被刪除時(shí),filebeat關(guān)閉文件的處理讀取
- 這個(gè)選項(xiàng)啟動(dòng)后棕硫,必須啟動(dòng)clean_removed
close_eof
- 適合只寫一次日志的文件髓涯,然后filebeat關(guān)閉文件的處理讀取
close_timeout
- 當(dāng)選項(xiàng)啟動(dòng)時(shí),filebeat會(huì)給每個(gè)harvester設(shè)置預(yù)定義時(shí)間哈扮,不管這個(gè)文件是否被讀取复凳,達(dá)到設(shè)定時(shí)間后瘤泪,將被關(guān)閉
- close_timeout 不能等于ignore_older,會(huì)導(dǎo)致文件更新時(shí),不會(huì)被讀取
- 如果output一直沒有輸出日志事件育八,這個(gè)timeout是不會(huì)被啟動(dòng)的对途,至少要要有一個(gè)事件發(fā)送,然后haverter將被關(guān)閉
- 設(shè)置0 表示不啟動(dòng)
clean_inactived
- 從注冊表文件中刪除先前收獲的文件的狀態(tài)
- 設(shè)置必須大于ignore_older+scan_frequency髓棋,以確保在文件仍在收集時(shí)沒有刪除任何狀態(tài)
- 配置選項(xiàng)有助于減小注冊表文件的大小实檀,特別是如果每天都生成大量的新文件
- 此配置選項(xiàng)也可用于防止在Linux上重用inode的Filebeat問題
clean_removed
- 啟動(dòng)選項(xiàng)后,如果文件在磁盤上找不到按声,將從注冊表中清除filebeat
- 如果關(guān)閉close removed 必須關(guān)閉clean removed
scan_frequency
- prospector檢查指定用于收獲的路徑中的新文件的頻率,默認(rèn)10s
document_type
- 類型事件膳犹,被用于設(shè)置輸出文檔的type字段,默認(rèn)是log
harvester_buffer_size
- 每次harvester讀取文件緩沖字節(jié)數(shù)签则,默認(rèn)是16384
max_bytes
- 對(duì)于多行日志信息须床,很有用,最大字節(jié)數(shù)
json
這些選項(xiàng)使Filebeat解碼日志結(jié)構(gòu)化為JSON消息
逐行進(jìn)行解碼json
- keys_under_root
- 設(shè)置key為輸出文檔的頂級(jí)目錄
- overwrite_keys
- 覆蓋其他字段
- add_error_key
- 定一個(gè)json_error
- message_key
- 指定json 關(guān)鍵建作為過濾和多行設(shè)置渐裂,與之關(guān)聯(lián)的值必須是string
multiline
控制filebeat如何處理跨多行日志的選項(xiàng)豺旬,多行日志通常發(fā)生在java堆棧中
multiline.pattern: '^\['
multiline.negate: true
multiline.match: after
上面匹配是將多行日志所有不是以[符號(hào)開頭的行合并成一行它可以將下面的多行日志進(jìn)行合并成一行
[beat-logstash-some-name-832-2015.11.28] IndexNotFoundException[no such index]
at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver$WildcardExpressionResolver.resolve(IndexNameExpressionResolver.java:566)
at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:133)
at org.elasticsearch.cluster.metadata.IndexNameExpressionResolver.concreteIndices(IndexNameExpressionResolver.java:77)
at org.elasticsearch.action.admin.indices.delete.TransportDeleteIndexAction.checkBlock(TransportDeleteIndexAction.java:75)
multiline.pattern
- 指定匹配的正則表達(dá)式,filebeat支持的regexp模式與logstash支持的模式有所不同
pattern regexp
multiline.negate
- 定義上面的模式匹配條件的動(dòng)作是 否定的柒凉,默認(rèn)是false
- 假如模式匹配條件'^b'族阅,默認(rèn)是false模式,表示講按照模式匹配進(jìn)行匹配 將不是以b開頭的日志行進(jìn)行合并
- 如果是true膝捞,表示將不以b開頭的日志行進(jìn)行合并
multiline.match
- 指定Filebeat如何將匹配行組合成事件,在之前或者之后坦刀,取決于上面所指定的negate
multiline.max_lines
- 可以組合成一個(gè)事件的最大行數(shù),超過將丟棄蔬咬,默認(rèn)500
multiline.timeout
- 定義超時(shí)時(shí)間鲤遥,如果開始一個(gè)新的事件在超時(shí)時(shí)間內(nèi)沒有發(fā)現(xiàn)匹配,也將發(fā)送日志林艘,默認(rèn)是5s
tail_files
- 如果此選項(xiàng)設(shè)置為true渴频,F(xiàn)ilebeat將在每個(gè)文件的末尾開始讀取新文件,而不是開頭
- 此選項(xiàng)適用于Filebeat尚未處理的文件
symlinks
- 符號(hào)鏈接選項(xiàng)允許Filebeat除常規(guī)文件外,可以收集符號(hào)鏈接北启。收集符號(hào)鏈接時(shí)卜朗,即使報(bào)告了符號(hào)鏈接的路徑,F(xiàn)ilebeat也會(huì)打開并讀取原始文件咕村。
backoff
- backoff選項(xiàng)指定Filebeat如何積極地抓取新文件進(jìn)行更新场钉。默認(rèn)1s
- backoff選項(xiàng)定義Filebeat在達(dá)到EOF之后再次檢查文件之間等待的時(shí)間。
max_backoff
- 在達(dá)到EOF之后再次檢查文件之前Filebeat等待的最長時(shí)間
backoff_factor
- 指定backoff嘗試等待時(shí)間幾次懈涛,默認(rèn)是2
harvester_limit
- harvester_limit選項(xiàng)限制一個(gè)prospector并行啟動(dòng)的harvester數(shù)量逛万,直接影響文件打開數(shù)
enabled
- 控制prospector的啟動(dòng)和關(guān)閉
filebeat global
spool_size
-
事件發(fā)送的閥值,超過閥值,強(qiáng)制刷新網(wǎng)絡(luò)連接
filebeat.spool_size: 2048
publish_async
- 異步發(fā)送事件宇植,實(shí)驗(yàn)性功能
idle_timeout
-
事件發(fā)送的超時(shí)時(shí)間得封,即使沒有超過閥值,也會(huì)強(qiáng)制刷新網(wǎng)絡(luò)連接
filebeat.idle_timeout: 5s
registry_file
注冊表文件的名稱指郁,如果使用相對(duì)路徑忙上,則被認(rèn)為是相對(duì)于數(shù)據(jù)路徑
-
有關(guān)詳細(xì)信息,請(qǐng)參閱目錄布局部分 默認(rèn)值為${path.data}/registry
filebeat.registry_file: registry
config_dir
包含額外的prospector配置文件的目錄的完整路徑
每個(gè)配置文件必須以.yml結(jié)尾
每個(gè)配置文件也必須指定完整的Filebeat配置層次結(jié)構(gòu)闲坎,即使只處理文件的prospector部分疫粥。
所有全局選項(xiàng)(如spool_size)將被忽略
-
必須是絕對(duì)路徑
filebeat.config_dir: path/to/configs
shutdown_timeout
- Filebeat等待發(fā)布者在Filebeat關(guān)閉之前完成發(fā)送事件的時(shí)間。
Filebeat General
name
-
設(shè)置名字腰懂,如果配置為空梗逮,則用該服務(wù)器的主機(jī)名
name: "my-shipper"
queue_size
- 單個(gè)事件內(nèi)部隊(duì)列的長度 默認(rèn)1000
bulk_queue_size
- 批量事件內(nèi)部隊(duì)列的長度
max_procs
- 設(shè)置最大使用cpu數(shù)量
geoip.paths
此配置選項(xiàng)目前僅由Packetbeat使用,它將在6.0版中刪除
-
要使GeoIP支持功能正常绣溜,GeoLite City數(shù)據(jù)庫是必需的慷彤。
geoip: paths: - "/usr/share/GeoIP/GeoLiteCity.dat" - "/usr/local/var/GeoIP/GeoLiteCity.dat"
Filebeat reload
屬于測試功能
path
- 定義要檢查的配置路徑
reload.enabled
- 設(shè)置為true時(shí),啟用動(dòng)態(tài)配置重新加載怖喻。
reload.period
- 定義要檢查的間隔時(shí)間
filebeat.config.prospectors:
path: configs/*.yml
reload.enabled: true
reload.period: 10s