简介: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
}

}

原文链接

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

iLogtail使用入门-iLogtail本地配置模式部署(For Kafka Flusher)相关推荐

  1. Spring Cloud Config入门(本地配置)

    转载自 https://www.cnblogs.com/zcr3108346262/p/7602314.html spring cloud config 简介 Spring Cloud Config为 ...

  2. iLogtail使用入门-K8S环境日志采集到SLS

    ​简介:iLogtail是阿里云中简单日志服务又名"SLS"的采集部分. 它用于收集遥测数据,例如日志.跟踪和指标,目前已经正式开源(https://github.com/alib ...

  3. 携程Apollo(阿波罗)配置中心本地开发模式不接入配置中心进行本地开发

    官方教程:https://github.com/ctripcorp/apollo/wiki/Java%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%8 ...

  4. Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门

    1 引言 Apache CarbonData是一个面向大数据平台的基于索引的列式数据格式,由华为大数据团队贡献给Apache社区,目前最新版本是1.0.0版.介于目前主流大数据组件应用场景的局限性,C ...

  5. 华为AP+AC本地转发模式配置以及理解

    配置思路: AC的配置: AC的无线配置: AC的接口配置 switch 配置: 按照以上配置配好之后,无线网咯就基本上建立了,我在学习这个的时候总有一些问题很困扰,比如为什么ap是通过dhcp怎么获 ...

  6. Hive3入门至精通(基础、部署、理论、SQL、函数、运算以及性能优化)15-28章

    Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)15-28章 [Hive3入门至精通(基础.部署.理论.SQL.函数.运算以及性能优化)1-14章](https://blog. ...

  7. 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】

    视频地址:[尚硅谷]大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01[Zookeeper(入门.本地安装.集群操作)] ...

  8. Elasticsearch7从入门到精通(简介、部署、原理、开发、ELK)

    Elasticsearch7从入门到精通(简介.部署.原理.开发.ELK) 第1章.Elasticsearch简介 1-1.Elasticsearch介绍 Elasticsearch官方网站:http ...

  9. 云服务器ECS入门及云上网站部署

    云服务器ECS入门及云上网站部署 一.什么是云服务器ECS 云服务器ECS (Elastic Compute Service) 是阿里云提供的性能卓越.稳定可靠.弹性扩展的laaS(Infrastru ...

最新文章

  1. 软件随想: 软件 = 程序 + 软件工程
  2. Informatic 使用过程中的问题
  3. 用substr()函数高效的输出一个字符串的所用子串
  4. yelee主题博客四周变透明
  5. JavaFX之TableView的SelectionMode
  6. NFS网络文件系统服务介绍与实战
  7. 晨哥真有料丨女生眼里的满分男生!
  8. 【elasticsearch】文档 CRUD 增删改查 以及 相关 参数
  9. 如何恢复快捷方式上的小箭头
  10. 实验九 TCP 协议分析实验
  11. win7科学计算机的用法,win7系统自带的计算器使用的修复步骤
  12. 本科双非,考研压线上北大,总结一下我的复习过程,希望对考研er有点帮助!
  13. ssh登录极路由后台_自己动手DIY:路由器刷机改造
  14. 使用GIMP for Mac
  15. 【设计模式】简单工厂模式+工厂方法模式+抽象工厂模式
  16. 题目 1039: 宏定义之闰年判断
  17. 单身毒妈第一至八季/全集Weeds迅雷下载
  18. 图像配准融合(一)——基于互信息的图像配准方法(c++)
  19. ML (Chapter 10): 降维与度量学习
  20. nexus 6p刷android go,Nexus 6P刷入第三方Recovery获取Root权限教程

热门文章

  1. 小程序switch内部加上文字_文字游戏大全:模拟游戏会长经营公会的小程序,你会管理公会吗?...
  2. redis 如何 mysql_Redis 如何保持和 MySQL 数据一致
  3. layui table reload post请求_如何实现在Layui框架中完成父窗口刷新(更新)
  4. vscode中如何创新建php文件,vscode如何创建代码模板
  5. 使用yum命令安装mysql_Linux Centos 下使用yum 命令安装mysql实现步骤
  6. python的内存回收机制_关于python的变量使用回收机制
  7. mysql封装执行_解决Mysql封装类执行报错——Mysql::insert() should not be called
  8. Apache java文件比对,Java Apache Commons的字符串比较
  9. 学位论文是根,学术论文是叶
  10. 励志!86岁的他,申请获得国家自然科学基金!