简介: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
{
"logtail_sys_conf_dir": "/root/bin/logtail-linux64/bin/sys_conf_dir/",
"config_server_address" : "http://logtail.cn-zhangjiakou.log.aliyuncs.com"
}
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
{
"metrics":
{
"##1.0##kafka_output_test":
{
"category": "file",
"log_type": "json_log",
"log_path": "/root/bin/input_data",
"file_pattern": "json.log",
"create_time": 1631018645,
"defaultEndpoint": "",
"delay_alarm_bytes": 0,
"delay_skip_bytes": 0,
"discard_none_utf8": false,
"discard_unmatch": false,
"docker_exclude_env":
{},
"docker_exclude_label":
{},
"docker_file": false,
"docker_include_env":
{},
"docker_include_label":
{},
"enable": true,
"enable_tag": false,
"file_encoding": "utf8",
"filter_keys":
[],
"filter_regs":
[],
"group_topic": "",
"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"
}
}
]
},
"local_storage": true,
"log_tz": "",
"max_depth": 10,
"max_send_rate": -1,
"merge_type": "topic",
"preserve": true,
"preserve_depth": 1,
"priority": 0,
"raw_log": false,
"aliuid": "",
"region": "",
"project_name": "",
"send_rate_expire": 0,
"sensitive_keys":
[],
"shard_hash_key":
[],
"tail_existed": false,
"time_key": "",
"timeformat": "",
"topic_format": "none",
"tz_adjust": false,
"version": 1,
"advanced":
{
"force_multiconfig": false,
"tail_size_kb": 1024
}
}
}
}
启动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
}
}
原文链接
本文为阿里云原创内容,未经容许不得转载。
发表回复