centos安裝filebeat指南

前提概要


centos安裝filebeat指南

Beats系列的官方定位就是輕量級數據採集器。Filebeat一般作為採集日誌文件的解決方案。Filebeat會監控日誌文件,把採集到的日誌文件輸出到指定位置如:ES、logstash、Kafka等,可以說ELK stack已經成為事實上的業界標準。

如果您還沒有部署ES集群,請參考我的另一篇文章:

如果你還沒有部署kafka集群,請參考我的另一篇文章:

系統環境介紹

<code>centos7.5參數如下:

命令:uname -a
輸出:Linux server160131 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

命令:rpm -q centos-release
輸出:centos-release-7-5.1804.el7.centos.x86_64

需要centos7.5精簡版安裝包的同學可以評論或者私信我,私信關鍵字”centos“會自動回覆您下載地址。/<code>

filebeat版本介紹

<code>filebeat版本為:filebeat-7.6.1

官方地址:https://www.elastic.co/guide/en/beats/libbeat/current/beats-reference.html

需要filebeat安裝包的同學回覆評論或私信關鍵字”es“會自動回覆您下載地址。/<code>

演示服務器介紹

<code>服務器名稱:server160131

服務器IP:192.168.160.131/<code>

搭建步驟

1、創建filebeat目錄

<code>命令:mkdir -p /opt/filebeat

說明:/opt/filebeat為filebeat安裝包解壓後主目錄/<code>

2、解壓縮安裝包

<code>命令:tar -zxvf filebeat-7.6.1-linux-x86_64.tar.gz -C /opt/filebeat/

說明:解壓當前目錄下的filebeat-7.6.1-linux-x86_64.tar.gz文件到/opt/filebeat目錄。此時在/opt/filebeat目錄下會生成一個filebeat-7.6.1-linux-x86_64的文件夾。/<code>

3、自定義配置文件

<code>我這邊舉一個簡單的從日誌文件讀入然後輸出到控制檯的例子:

配置文件路徑:/opt/filebeat/filebeat-7.6.1-linux-x86_64/file2console.yml

配置文件內容如下:
filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/logs/testapp/*.log
fields:
app: testapp
fields_under_root: true

output.console:
pretty: true



簡要說明:
paths:表示要監聽的文件路徑
fields:自定義的字段,一般用於區分系統
output.console:表示輸出到控制檯
fields_under_root:表示定義的字段放在根路徑下,後面例子會看到效果/<code>

3、啟動filebeat

<code>命令:/opt/filebeat/filebeat-7.6.1-linux-x86_64/filebeat -e -c /opt/filebeat/filebeat-7.6.1-linux-x86_64/file2console.yml

說明:啟動成功後這個窗口掛在那,等會要驗證輸出結果/<code>

4、驗證filebeat

<code>此時另起一個窗口,先創建上述的日誌路徑:
命令:mkdir -p /opt/logs/testapp

然後往日誌文件夾內寫入一條日誌:
命令:echo 'a' >> /opt/logs/testapp/a.log/<code>
<code>此時切換為filebeat窗口,打印出如下信息:

2020-03-25T21:27:38.419+0800 INFO log/harvester.go:297 Harvester started for file: /opt/logs/testapp/a.log
{
"@timestamp": "2020-03-25T13:27:38.421Z",
"@metadata": {
"beat": "filebeat",
"type": "_doc",
"version": "7.6.1"
},

"ecs": {
"version": "1.4.0"
},
"host": {
"name": "server160131"
},
"log": {
"file": {
"path": "/opt/logs/testapp/a.log"
},
"offset": 0
},
"message": "a",
"input": {
"type": "log"
},
"app": "testapp",
"agent": {
"type": "filebeat",
"ephemeral_id": "33ce425e-5206-45c0-8882-e0839dd3dea4",
"hostname": "server160131",
"id": "1ca4f38b-61d1-491f-a06d-568782981b63",
"version": "7.6.1"
}
}

說明:
@timestamp:filebeat默認的時間戳,不能去除
@metadata:filebeat的元數據信息,不能去除
host.name:服務器名稱
log.file.path:日誌文件路徑
log.offset:該條日誌的偏移量
message:原始日誌信息
app:就是前面腳本指定的字段/<code>

4、簡化filebeat輸出

<code>通過前面的例子可以看出filebeat輸出的東西還是挺多的,我們的原則是在源頭做到最精簡。
所以這邊再舉個簡化輸出的例子給大家參考:


file2console.yml文件的內容更改為如下:

filebeat.inputs:
- type: log
enabled: true
paths:
- /opt/logs/testapp/*.log
fields:
app: testapp
fields_under_root: true

processors:
- drop_fields:
fields: ["ecs","agent","log.offset"]

output.console:
pretty: true


說明:
drop_fields表示丟棄字段,這裡丟棄了ecs,agent和log裡的offset值。/<code>

5、驗證filebeat簡化後效果

<code>啟動filebeat:

命令:/opt/filebeat/filebeat-7.6.1-linux-x86_64/filebeat -e -c /opt/filebeat/filebeat-7.6.1-linux-x86_64/file2console.yml
另起窗口執行如下命令:

命令:echo 'newtest' >> /opt/logs/testapp/b.log/<code>
<code>filebeat控制檯打印結果如下:

2020-03-25T21:45:13.529+0800 INFO log/harvester.go:297 Harvester started for file: /opt/logs/testapp/b.log
{
"@timestamp": "2020-03-25T13:45:13.536Z",
"@metadata": {
"beat": "filebeat",
"type": "_doc",
"version": "7.6.1"
},
"log": {
"file": {

"path": "/opt/logs/testapp/b.log"
}
},
"message": "newtest",
"input": {
"type": "log"
},
"app": "testapp",
"host": {
"name": "server160131"
}
}
說明:可以看出輸出的日誌已經精簡過了/<code>

學習建議

<code>ELK STACK的學習唯有多看官方文檔,不斷嘗試,無奈於官方版本迭代太快。
日誌的收集不僅僅用於查詢方便,更有助於完善監控體系。
希望以後有機會能再給大家帶來一個完整的:filebeat->kafka->logstash->es+grafana。/<code>

結束語

希望我的文章能給您帶來幫助,如果您有什麼疑問,可以給我留言,我會在第一時間給你提供解答。如果您有好的建議或想法,也歡迎給我留言。

centos安裝filebeat指南


分享到:


相關文章: