Filebeat收集日志

一、概述

Filebeat是一個日志文件托運工具,做為一個agent安裝到服務(wù)器上,filebeat會監(jiān)控日志目錄或者指定的日志文件,追蹤讀取這些文件(追蹤文件的變化,不停的讀),并且轉(zhuǎn)發(fā)這些信息到elasticsearch或者logstarsh中存放。

*Filebeat包含兩個主要的組件,prospectors(探測器)和harvesters(收割機)。

1. harvesters(收割機)

harvesters負(fù)責(zé)一行一行地讀取日志文件,并將內(nèi)容發(fā)送到指定的輸出。

2. prospectors(探測器)

prospectors負(fù)責(zé)管理所有的harvesters,和發(fā)現(xiàn)所有的需要讀取的日志源。
如果輸入源是log(日志),prospectors根據(jù)配置路徑,查找驅(qū)動器上的所有匹配的日志文件,并為每個文件啟動一個收割機。
此組件一般情況下默認(rèn)就行,不用做配置。

*Filebeat內(nèi)置了很多模塊,封裝了日志的收集和過濾操作。

二、支持的模塊

activemq、apache、auditd、aws、azure、cef、cisco、coredns
elasticsearch、envoyproxy、googlecloud、haproxy、ibmmq、icinga
iis、iptables、kafka、kibana、logstash、misp、mongodb、mssql
mysql、nats、netflow、nginx、o365、okta、osquery、panw
postgresql、rabbitmq、redis、santa、suricata、system、traefik、zeek

三、模塊收集日志

*這里以system為例

(一)輸出到Elasticsearch中

  1. 配置啟動system模塊

filebeat modules enable system
filebeat modules list

  1. 找到日志文件
  1. 配置vim /etc/filebeat/modules.d/system.yml文件
    這里system模塊默認(rèn)了路徑,一般都是在/var/log/mesagge和/var/log/secure

也可以自己配置路徑,只需去掉var.paths的注釋,然后添加路徑,支持同時寫多個路徑。(注意縮進)

var.paths:
  - 路徑1
  - 路徑2
  1. 配置filebeat.yml
    (1) 配置輸出源
    *從7.0版本以后,只能配置一個輸出源

index表示es的索引
when.eaquals表示比較

when.eaquals
  event:
    module: "system"
#表示event字段下的module字段為system時,使用這個索引。module字段就表示模塊,可以設(shè)置其他字段來判斷。

還有when.contains #包含

(2) 配置kibana

setup.kibana:
  host: "19.130.244.160:5601"
setup.template.name: "logstash-"
setup.template.pattern: "logstash-*"
setup.template.overwrite: true
setup.template.enabled: true
setup.ilm.enabled: false
  1. 啟動filebeat
    systemctl start filebeat
    systemctl status filebeat

(二) 輸出到logstash(模板收集的日志也可輸出到logstash)

  1. 配置filebeat配置文件
    (1) 去除kibana配置
    (2) 配置輸出源(端口可自定義,默認(rèn)5044)
  1. 啟動filebeat
    systemctl restart filebeat
    systemctl status filebeat

四、使用file輸入源收集日志

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - 日志路徑1(可使用通配符*)
- type: log
  enabled: true
  paths:
    - 日志路徑2(可使用通配符*)

五、Febeat常用配置說明

yml配置文件嚴(yán)格控制縮進,如果配置頂格,那么應(yīng)用到全局,如果存在縮進,則只應(yīng)用到此縮進層級。以下配置根據(jù)需要選取

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - 日志路徑1(可使用通配符*)
  tags: ["標(biāo)記1","標(biāo)記2"]  #向日志中添加tags標(biāo)記,tags字段為數(shù)組類型
  fields: 
    test1: test1_value  #向日志中添加test1字段,默認(rèn)在fields字段下
    test2: 2
  encoding: utf-8  #指定編碼
  fields_under_root: true  #默認(rèn)為false,為true是將添加的字段放在根路徑,不放在fields字段下
  include_lines: ["^正則表達式1","^正則表達式2"]  #只收集開頭匹配上此正則表達式的行
  exclude_files: ["^正則表達式1","^正則表達式2"]  #排除,不收集開頭匹配上此正則表達式的行
  #多行匹配,將多行日志合并成一條日志,比如java日志、tomcat的catalina日志等。
  multiline.pattern: '正則表達式'  #多行匹配使用的正則表達式
  multiline.negate: true  #開啟匹配模式,為true則以匹配上的為分隔,為false則以不匹配上的為分隔。
  multiline.match: after  #上一條配置為true,則將匹配不上的追加在匹配上的后面;
                          #為false,則將匹配上的追加在匹配不上的后面。
                          #此配置為before,則追加在前面。
  

如果想要重新從頭讀取日志文件,可以刪除/var/lib/filebeat/registry目錄,然后重啟filebeat

rm -rf /var/lib/filebeat/registry && systemctl restart filebeat
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容