iLogtail使用入门-iLogtail本地配置模式部署(For Kafka Flusher)
簡介:iLogtail使用入門-iLogtail本地配置模式部署(For Kafka Flusher)。
阿里已經正式開源了可觀測數據采集器iLogtail。作為阿里內部可觀測數據采集的基礎設施,iLogtail承載了阿里巴巴集團、螞蟻的日志、監控、Trace、事件等多種可觀測數據的采集工作。?
iLogtail作為阿里云SLS的采集Agent,一般情況下都是配合SLS進行使用,通常采集配置都是通過SLS控制臺或API進行的。那是否可以在不依賴于SLS的情況下使用iLogtail呢??
本文將會詳細介紹如何在不依賴于SLS控制臺的情況下,進行iLogtail本地配置模式部署,并將json格式的日志文件采集到非SLS(例如Kafka等)。
場景
采集/root/bin/input_data/json.log(單行日志json格式),并將采集到的日志寫入本地部署的kafka中。
前提條件
kafka本地安裝完成,并創建名為logtail-flusher-kafka的topic。部署詳見鏈接。
安裝ilogtail
下載最新的ilogtail版本,并解壓。
解壓tar包
$ tar zxvf logtail-linux64.tar.gz
查看目錄結構
$ ll logtail-linux64
drwxr-xr-x 3 500 500 4096 bin
drwxr-xr-x 184 500 500 12288 conf
-rw-r--r-- 1 500 500 597 README
drwxr-xr-x 2 500 500 4096 resources
進入bin目錄
$ cd logtail-linux64/bin
$ ll
-rwxr-xr-x 1 500 500 10052072 ilogtail_1.0.28 # ilogtail可執行文件
-rwxr-xr-x 1 500 500 4191 ilogtaild
-rwxr-xr-x 1 500 500 5976 libPluginAdapter.so
-rw-r--r-- 1 500 500 89560656 libPluginBase.so
-rwxr-xr-x 1 500 500 2333024 LogtailInsight
采集配置
配置格式
針對json格式的日志文件采集到本地kafa的配置格式:
{
"metrics": {"{config_name1}" : {"enable": true,"category": "file","log_type": "json_log","log_path": "/root/bin/input_data","file_pattern": "json.log","plugin": {"processors": [ {"detail": {"SplitSep": "","SplitKey": "content"},"type": "processor_split_log_string"},{"detail": {"ExpandConnector": "","ExpandDepth": 1,"SourceKey": "content","KeepSource": false},"type": "processor_json"}],"flushers":[{"type": "flusher_kafka","detail": {"Brokers":["localhost:9092"],"Topic": "logtail-flusher-kafka"}}]},"version": 1},"{config_name2}" : {...} }}
詳細格式說明:
文件最外層的key為metrics,內部為各個具體的采集配置。
采集配置的key為配置名,改名稱需保證在本文件中唯一。建議命名:"##1.0##采集配置名稱"。
采集配置value內部為具體采集參數配置,其中關鍵參數以及含義如下:
參數名 類型 描述
enable bool 該配置是否生效,為false時該配置不生效。
category string 文件采集場景取值為"file"。
log_type string log類型。json采集場景下取值json_log。
log_path string 采集路徑。
file_pattern string 采集文件。
plugin object 具體采集配置,為json object,具體配置參考下面說明
version int 該配置版本號,建議每次修改配置后加1
plugin 字段為json object,為具體輸入源以及處理方式配置:
配置項 類型 描述
processors object array 處理方式配置,具體請參考鏈接。 processor_json:將原始日志按照json格式展開。
flushers object array flusher_stdout:采集到標準輸出,一般用于調試場景; flusher_kafka:采集到kafka。
完整配置樣例
進入bin目錄,創建及sys_conf_dir文件夾及ilogtail_config.json文件。
1. 創建sys_conf_dir
$ mkdir sys_conf_dir
2. 創建ilogtail_config.json并完成配置。
logtail_sys_conf_dir取值為:$pwd/sys_conf_dir/
config_server_address固定取值,保持不變。
$ pwd
/root/bin/logtail-linux64/bin
$ cat ilogtail_config.json
{
}
3. 此時的目錄結構
$ ll
-rwxr-xr-x 1 500 500 ilogtail_1.0.28
-rw-r--r-- 1 root root ilogtail_config.json
-rwxr-xr-x 1 500 500 ilogtaild
-rwxr-xr-x 1 500 500 libPluginAdapter.so
-rw-r--r-- 1 500 500 libPluginBase.so
-rwxr-xr-x 1 500 500 LogtailInsight
drwxr-xr-x 2 root root sys_conf_dir
在sys_conf_dir下創建采集配置文件user_local_config.json。
說明:json_log場景下,user_local_config.json僅需修改采集路徑相關參數log_path、file_pattern即可,其他參數保持不變。
$ cat sys_conf_dir/user_local_config.json
{
}
啟動ilogtail
終端模式運行
$ ./ilogtail_1.0.28 --ilogtail_daemon_flag=false
也可以選擇daemon模式運行
$ ./ilogtail_1.0.28
$ ps -ef|grep logtail
root 48453 1 ./ilogtail_1.0.28
root 48454 48453 ./ilogtail_1.0.28
采集場景模擬
往/root/bin/input_data/json.log中構造json格式的數據,代碼如下:
$ echo '{"seq": "1", "action": "kkkk", "extend1": "", "extend2": "", "type": "1"}' >> json.log
$ echo '{"seq": "2", "action": "kkkk", "extend1": "", "extend2": "", "type": "1"}' >> json.log
消費topic為logtail-flusher-kafka中的數據。
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic logtail-flusher-kafka
{"Time":1640862641,"Contents":[{"Key":"__tag__:__path__","Value":"/root/bin/input_data/json.log"},{"Key":"seq","Value":"1"},{"Key":"action","Value":"kkkk"},{"Key":"extend1","Value":""},{"Key":"extend2","Value":""},{"Key":"type","Value":"1"}]}
{"Time":1640862646,"Contents":[{"Key":"__tag__:__path__","Value":"/root/bin/input_data/json.log"},{"Key":"seq","Value":"2"},{"Key":"action","Value":"kkkk"},{"Key":"extend1","Value":""},{"Key":"extend2","Value":""},{"Key":"type","Value":"1"}]}
本地調試
為了快速方便驗證配置是否正確,可以將采集到的日志打印到標準輸出完成快速的功能驗證。?
替換本地采集配置plugin-flushers為flusher_stdout,并以終端模式運行$ ./ilogtail_1.0.28 --ilogtail_daemon_flag=false,即可將采集到的日志打印到標準輸出快速進行本地調試。
{
"type": "flusher_stdout", "detail": {"OnlyStdout": true }}
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的iLogtail使用入门-iLogtail本地配置模式部署(For Kafka Flusher)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Snowflake如日中天是否代表Had
- 下一篇: pip install scikit-i