当前位置:   article > 正文

iLogtail使用入门-iLogtail本地配置模式部署(For Kafka Flusher)_ilogtail is stopped [error]: start logtail failed.

ilogtail is stopped [error]: start logtail failed. [ error ]

简介: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的配置格式:

{

  1. "metrics": {
  2. "{config_name1}" : {
  3. "enable": true,
  4. "category": "file",
  5. "log_type": "json_log",
  6. "log_path": "/root/bin/input_data",
  7. "file_pattern": "json.log",
  8. "plugin": {
  9. "processors": [
  10. {
  11. "detail": {
  12. "SplitSep": "",
  13. "SplitKey": "content"
  14. },
  15. "type": "processor_split_log_string"
  16. },
  17. {
  18. "detail": {
  19. "ExpandConnector": "",
  20. "ExpandDepth": 1,
  21. "SourceKey": "content",
  22. "KeepSource": false
  23. },
  24. "type": "processor_json"
  25. }],
  26. "flushers":[
  27. {
  28. "type": "flusher_kafka",
  29. "detail": {
  30. "Brokers":["localhost:9092"],
  31. "Topic": "logtail-flusher-kafka"
  32. }
  33. }]
  34. },
  35. "version": 1
  36. },
  37. "{config_name2}" : {
  38. ...
  39. }
  40. }

}
详细格式说明:

文件最外层的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
{

  1. "logtail_sys_conf_dir": "/root/bin/logtail-linux64/bin/sys_conf_dir/",
  2. "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
{

  1. "metrics":
  2. {
  3. "##1.0##kafka_output_test":
  4. {
  5. "category": "file",
  6. "log_type": "json_log",
  7. "log_path": "/root/bin/input_data",
  8. "file_pattern": "json.log",
  9. "create_time": 1631018645,
  10. "defaultEndpoint": "",
  11. "delay_alarm_bytes": 0,
  12. "delay_skip_bytes": 0,
  13. "discard_none_utf8": false,
  14. "discard_unmatch": false,
  15. "docker_exclude_env":
  16. {},
  17. "docker_exclude_label":
  18. {},
  19. "docker_file": false,
  20. "docker_include_env":
  21. {},
  22. "docker_include_label":
  23. {},
  24. "enable": true,
  25. "enable_tag": false,
  26. "file_encoding": "utf8",
  27. "filter_keys":
  28. [],
  29. "filter_regs":
  30. [],
  31. "group_topic": "",
  32. "plugin":
  33. {
  34. "processors":
  35. [
  36. {
  37. "detail": {
  38. "SplitSep": "",
  39. "SplitKey": "content"
  40. },
  41. "type": "processor_split_log_string"
  42. },
  43. {
  44. "detail":
  45. {
  46. "ExpandConnector": "",
  47. "ExpandDepth": 1,
  48. "SourceKey": "content",
  49. "KeepSource": false
  50. },
  51. "type": "processor_json"
  52. }
  53. ],
  54. "flushers":
  55. [
  56. {
  57. "type": "flusher_kafka",
  58. "detail":
  59. {
  60. "Brokers":
  61. [
  62. "localhost:9092"
  63. ],
  64. "Topic": "logtail-flusher-kafka"
  65. }
  66. }
  67. ]
  68. },
  69. "local_storage": true,
  70. "log_tz": "",
  71. "max_depth": 10,
  72. "max_send_rate": -1,
  73. "merge_type": "topic",
  74. "preserve": true,
  75. "preserve_depth": 1,
  76. "priority": 0,
  77. "raw_log": false,
  78. "aliuid": "",
  79. "region": "",
  80. "project_name": "",
  81. "send_rate_expire": 0,
  82. "sensitive_keys":
  83. [],
  84. "shard_hash_key":
  85. [],
  86. "tail_existed": false,
  87. "time_key": "",
  88. "timeformat": "",
  89. "topic_format": "none",
  90. "tz_adjust": false,
  91. "version": 1,
  92. "advanced":
  93. {
  94. "force_multiconfig": false,
  95. "tail_size_kb": 1024
  96. }
  97. }
  98. }

}
启动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,即可将采集到的日志打印到标准输出快速进行本地调试。

{

  1. "type": "flusher_stdout",
  2. "detail":
  3. {
  4. "OnlyStdout": true
  5. }

}

原文链接

本文为阿里云原创内容,未经允许不得转载。 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号