iLogtail专题三:iLogtail部署及配置

 公司一直使用的Filebeat进行日志采集
 由于Filebeat采集组件一些问题,现需要使用iLogtail进行代替
 现记录下iLogtail介绍和实际使用过程
 这是iLogtail系列的第三篇文章

目录

一、背景

二、前提条件

三、安装ilogtail

四、创建配置文件

五、创建采集配置文件

六、修改日志文件存储路径

七、部署问题记录

八、相关限制

九、配置文件及日志说明


一、背景

由于业务需要,此处以多个kafka接收方作为配置。

二、前提条件

由于需要多个kafka作为接收方,先在生产环境xxx01和xxx03上安装kafka3.0并启动,分别创建名为logtail-flusher-kafka的topic。

三、安装ilogtail

下载1.0.28的ilogtail版本,并解压。

wget https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/linux64/1.0.28/x86_64/logtail-linux64.tar.gz

四、创建配置文件

进入bin目录,创建sys_conf_dir文件夹(配置文件存放目录)及ilogtail_config.json文件(整体配置文件设置)。

ilogtail_config.json内容如下:

##### logtail_sys_conf_dir取值为:$pwd/sys_conf_dir/

##### config_server_address固定取值,保持不变。

{
"logtail_sys_conf_dir": "/home/admin/liujh/iLogtail1.0.28/logtail-linux64/bin/sys_conf_dir/",
"config_server_address" : "http://logtail.cn-zhangjiakou.log.aliyuncs.com"
}

五、创建采集配置文件

sys_conf_dir下创建采集配置文件user_local_config.json

{
   "metrics":
    {
       "##1.0##kafka_output_test2":
        {
           "category": "file",
           "log_type": "apsara_log",
           "log_path": "/home/admin/xxx/iLogtail1.0.28/logtail-linux64/bin/input_data",
           "file_pattern": "*.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":
               [
                   {
                     "type":"processor_add_fields",
                     "detail":
                     {
                         "Fields": {
                            "input_type": "log",
                            "type": "LOGTAIL_LOG",
                            "offset": "offset",
                            "@timestamp": "@timestamp",
                            "beat": "beat",
                            "fields": "fields"
                         }
                     }
                   },
                   {
                     "type":"processor_rename",
                     "detail": {
                            "SourceKeys": ["__tag__:__path__","content"],
                            "DestKeys": ["source","message"],
                            "NoKeyError": true
                        }
                   },
                   {
                    "type" : "processor_filter_regex",
                    "detail" : {
                        "Include" : {
                            "content" : ".*"
                         }
                     }
                   }
               ],
               "flushers":
                [
                    {
                       "type": "flusher_kafka",
                       "detail":
                        {
                           "Brokers":
                            [
                               "99.6.0.99:9092"
                            ],
                           "Topic": "logtail-flusher-kafka"
                        }
                    },
                    {
                        "type": "flusher_kafka",
                        "detail":
                        {
                          "Brokers":
                           [
                              "99.6.0.98: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
            }
        }
    }
}

详细格式说明:

  • 文件最外层的key为metrics,内部为各个具体的采集配置。
  • 采集配置的key为配置名,改名称需保证在本文件中唯一。建议命名:"##1.0##采集配置名称"。
  • 采集配置value内部为具体采集参数配置,其中关键参数以及含义如下:
参数名类型描述
enablebool该配置是否生效,为false时该配置不生效。
categorystring文件采集场景取值为"file"。
log_typestring日志的采集模式。具体说明如下:
  • json_log:JSON模式。
  • apsara_log:飞天模式。
  • common_reg_log:完整正则模式。
  • delimiter_log:分隔符模式。
log_pathstring采集路径。
file_patternstring采集文件。
pluginobject具体采集配置,为json object,具体配置参考下面说明
versionint该配置版本号,建议每次修改配置后加1

  • plugin 字段为json object,为具体输入源以及处理方式配置:

配置项类型描述
processorsobject array处理方式配置,具体请参考链接。 processor_json:将原始日志按照json格式展开。
flushersobject arrayflusher_stdout:采集到标准输出,一般用于调试场景; flusher_kafka:采集到kafka。

六、修改日志文件存储路径

在bin目录同级创建log文件夹,在log目录里创建snapshot文件夹,修改bin目录下apsara_log_conf.json配置日志输出路径。

 

七、部署问题记录

配置文件user_local_config.json的名字修改后无法被成功加载

user_local_config.json配置文件修改后 会 自动加载无需重启ilogtail

user_local_config.json中metrics中id需要唯一

八、相关限制

具体可见文档Logtail限制说明 - 日志服务 - 阿里云

限制一:同一文件对应多个采集配置

不支持,建议文件采集到一个Logstore,可以配置多份订阅。若有相关需求,可通过为文件配置软链接的方式绕过该限制。

默认情况下,一个文件只能匹配一个Logtail配置。当多个Logtail配置匹配同一个文件时,只会生效1个。因为在客户端上对文件中的日志采集多份需要消耗多倍的CPU、内存、磁盘IO和网络IO开销,将对同机部署的其他服务性能造成额外影响,并非优化的日志采集方案。

限制二:文件编码

支持UTF8或GBK的编码日志文件,建议使用UTF8编码以获得更好的处理性能。如果日志文件为其它编码格式则会出现乱码、数据丢失等错误。

九、配置文件及日志说明

ilogtail_config.json  启动参数配置文件

user_local_config.json   采集配置文件

app_info.json  记录Logtail的启动时间、获取到的IP地址、主机名等信息

ilogtail.LOG   记录了Logtail的运行日志,日志级别从低到高分别为INFO、WARN和ERROR,其中INFO类型的日志无需关注

logtail_plugin.LOG  记录Logtail插件的运行日志,日志级别从低到高分别为INFO、WARN和ERROR,其中INFO类型的日志无需关注

十、功能测试

模拟生产日志,同时查看两个kafka下观察是否正常接收,并且格式正确

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
根据引用和引用的内容,titanagent.service是一个服务,其中配置了CPUQuota=50%的参数。这个参数会隐性开启CPUAccounting功能。然而,由于CPUAccounting会导致无法创建real-time进程,而crs的启动需要real-time进程,所以导致crs无法正常启动。为了解决这个问题,建议将titanagent.service中的CPUQuota=50%配置去掉,以免下次重启仍然报错。的内容,titanagent进程占用了131429的内存,而与之相关的其他进程如rsyslogd、tuned和ilogtail也占用了一定的内存。总计这些进程的内存占用量约为1.9G。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [titanagent服务导致oracle数据库集群cssd进程无法启动](https://blog.csdn.net/weixin_38428614/article/details/130507734)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [一次系统宕机认识系统日志](https://blog.csdn.net/f80407515/article/details/117713689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值