开发者社区 问答 正文

Logtail如何收集syslog?


Logtail支持在本地配置TCP端口,接收syslog Agent通过TCP协议转发过来的syslog数据,Logtail解析接收到的数据并转发至LogHub中。

前提条件


设置使用Logtail收集日志前,您需要安装Logtail。Logtail支持Windows和Linux两大操作系统,安装方法参见 安装Logtail(Windows)安装Logtail(Linux)

操作步骤


收集syslog数据,您需要进行如下设置。

步骤 1 在日志服务管理控制台创建Logtail syslog配置


  1. 在日志服务管理控制台单击目标项目,进入[backcolor=transparent]Logstore列表。

  2. 选择目标Logstore,并单击[backcolor=transparent]管理进入[backcolor=transparent]Logtail配置列表。

  3. 在[backcolor=transparent]Logtail配置列表页面右上角点击[backcolor=transparent]创建。进入Logtail配置流程。

  4. 选择数据源类型 [backcolor=transparent]syslog 并单击 [backcolor=transparent]下一步。

  5. 设置 [backcolor=transparent]配置名称 和 [backcolor=transparent]tag设置 并单击 [backcolor=transparent]下一步。
    配置名称只能包含小写字母、数字、连字符(-)和下划线(_),且必须以小写字母和数字开头和结尾,长度为3~63字节。
    [backcolor=transparent]注意:配置名称设置后不可修改。

  6. 勾选所需的机器组并单击 [backcolor=transparent]应用到机器组 将配置应用到机器组。
    如果您未创建机器组,请参考创建机器组创建一个机器组,再将配置应用到改机器组。


步骤 2 配置Logtail使协议生效


从机器Logtail安装目录下找到 ilogtail_config.json,一般在 /usr/local/ilogtail/ 目录下面。根据需求修改和syslog相关的配置。

  1. 确认syslog功能已开启。
    true表示syslog功能处于打开状态,false表示关闭状态。[backcolor=transparent]"streamlog_open"[backcolor=transparent] [backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]true
配置syslog用于接收日志的内存池大小。程序启动时会一次性申请指定大小的内存,请根据机器内存大小以及实际需求填写,单位是MB。
  1. [backcolor=transparent]"streamlog_pool_size_in_mb"[backcolor=transparent] [backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]50
配置缓冲区大小。需要配置Logtail每次调用socket io rcv 接口使用的缓冲区大小,单位是byte。
  1. [backcolor=transparent]"streamlog_rcv_size_each_call"[backcolor=transparent] [backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]1024
配置日志syslog格式。
  1. [backcolor=transparent]"streamlog_formats"[backcolor=transparent]:[]
配置TCP端口。需要配置Logtail用于接收syslog日志的TCP端口,默认是11111。
  1. [backcolor=transparent]"streamlog_tcp_port"[backcolor=transparent] [backcolor=transparent]:[backcolor=transparent] [backcolor=transparent]11111

配置完成后重启Logtail。重启Logtail要执行以下命令关闭Logtail客户端,并再次打开。
  1. [backcolor=transparent]sudo [backcolor=transparent]/[backcolor=transparent]etc[backcolor=transparent]/[backcolor=transparent]init[backcolor=transparent].[backcolor=transparent]d[backcolor=transparent]/[backcolor=transparent]ilogtaild stop
  2. [backcolor=transparent]sudo [backcolor=transparent]/[backcolor=transparent]etc[backcolor=transparent]/[backcolor=transparent]init[backcolor=transparent].[backcolor=transparent]d[backcolor=transparent]/[backcolor=transparent]ilogtaild start


步骤 3 安装rsyslog并修改配置


如果机器已经安装rsyslog,忽略这一步。
安装方法请参见:
在 /etc/rsyslog.conf 中根据需要修改配置,例如:
  1. [backcolor=transparent]$WorkDirectory [backcolor=transparent]/[backcolor=transparent]var[backcolor=transparent]/[backcolor=transparent]spool[backcolor=transparent]/[backcolor=transparent]rsyslog [backcolor=transparent]# where to place spool files
  2. [backcolor=transparent]$ActionQueueFileName fwdRule1     [backcolor=transparent]# unique name prefix for spool files
  3. [backcolor=transparent]$ActionQueueMaxDiskSpace [backcolor=transparent]1g[backcolor=transparent]       [backcolor=transparent]# 1gb space limit (use as much as possible)
  4. [backcolor=transparent]$ActionQueueSaveOnShutdown on     [backcolor=transparent]# save messages to disk on shutdown
  5. [backcolor=transparent]$ActionQueueType [backcolor=transparent]LinkedList[backcolor=transparent]       [backcolor=transparent]# run asynchronously
  6. [backcolor=transparent]$ActionResumeRetryCount [backcolor=transparent]-[backcolor=transparent]1[backcolor=transparent]        [backcolor=transparent]# infinite retries if host is down
  7. [backcolor=transparent]# 定义日志数据的字段
  8. [backcolor=transparent]$template ALI_LOG_FMT[backcolor=transparent],[backcolor=transparent]"0.1 sys_tag %timegenerated:::date-unixtimestamp% %fromhost-ip% %hostname% %pri-text% %protocol-version% %app-name% %procid% %msgid% %msg:::drop-last-lf%\n"
  9. [backcolor=transparent]*.*[backcolor=transparent]      [backcolor=transparent]@@[backcolor=transparent]10.101[backcolor=transparent].[backcolor=transparent]166.173[backcolor=transparent]:[backcolor=transparent]11111[backcolor=transparent];[backcolor=transparent]ALI_LOG_FMT

[backcolor=transparent]注意:模板 ALI_LOG_FMT 中第二个域的值是 sys_tag,这个取值必须和步骤 1 中创建的一致,这个配置的含义是将本机接收到的所有(\*.\*)syslog 日志按照 ALI_LOG_FMT 格式化,使用 TCP 协议转发到 10.101.166.173:11111。机器 10.101.166.173 必须在步骤 1 中的机器组中并且按照步骤 2 配置。

启动rsyslog(sudo /etc/init.d/rsyslog restart)。启动之前请先检查机器上是否安装了其他syslog的Agent,比如 syslogd、sysklogd、syslog-ng 等,如果有的话请关闭掉。
上面三步完成之后就可以将机器上的syslog收集到日志服务了。

更多信息


有关syslog日志采集的更多信息以及如何格式化syslog数据,参见 收集 syslog 数据详解

展开
收起
轩墨 2017-10-20 15:36:32 2830 分享 版权
0 条回答
写回答
取消 提交回答