日志服务控制台无法采集到数据

日志服务控制台无法采集到数据

更新时间:2019-10-17 14:53:53

问题描述

日志服务控制台无法采集到数据。

 

解决方案

排查Rsyslog服务

  1. 登录无法采集到数据的ECS实例,检查Rsyslog服务的配置文件syslog.conf,文件内容如下。

    $WorkDirectory /var/spool/rsyslog # where to place spool files
    $ActionQueueFileName fwdRule1     # unique name prefix for spool files
    $ActionQueueMaxDiskSpace 1g       # 1gb space limit (use as much as possible)
    $ActionQueueSaveOnShutdown on     # save messages to disk on shutdown
    $ActionQueueType LinkedList       # run asynchronously
    $ActionResumeRetryCount -1        # infinite retries if host is down
    # 定义日志数据的字段
    $template ALI_LOG_FMT,"0.1 sys_tag %timegenerated:::date-unixtimestamp% %fromhost-ip% %hostname% 
    %pri-text% %protocol-version% %app-name% %procid% %msgid% %msg:::drop-last-lf%\n"
    *.*      @@[ip]:[port];ALI_LOG_FMT

    注:

    • 第一个*代表所有的消息类型。

    • 第二个*代表所有级别的消息 。

    • @@代表TCP协议(@代表UDP)。

    • [ip]代表该syslog消息要转发到的主机IP地址。

    • [port]代表端口。

    • ALI_LOG_FMT代表模版名称,可以配置多个模版。

    • $template为模版标识。

    • 双引号中内容为模版内容。

    • 0.1为该日志格式的版本号,Logtail使用该版本号解析user-defined-field字段。

    • sys_tag为数据标签,用于寻找Project或Logstore,在控制台中的tag名称。

    • timegenerated:::date-unixtimestamp%为该条日志的时间戳。

    • %fromhost-ip%为该条日志的对应的机器IP,如果日志中的该字段是 127.0.0.1,最终发往服务端的日志数据中该字段会被替换成TCP socket的对端地址。

    • %hostname% ~~ %msgid%为用户自定义字段,中括号表示是可选字段。

    • %msg:::drop-last-lf%为日志消息正文。

  1. 执行如下命令,查看Rsyslog服务是否启动。

    service rsyslog status
  1. 执行如下命令,查看Rsyslog监听端口和转发端口。

    netstat -antpul |grep 11111

    系统显示类似如下,可以看到一个Rsyslog进程,两个Sockets监听,一个监听本机的53552端口,转发到本机的11111端口,另一个监听本机的53554端口,转发到本机的11111端口。有两个是因为syslog.conf中配置了两个规则,而Logtial服务也启动了三个,两个ESTABLISHED状态的监听与两个ESTABLISHED状态的Rsyslog监听在进行数据传输。

排查Logtail服务

  1. 执行如下命令,查看Logtial服务运行状态。

    /etc/init.d/ilogtaild status
  1. 通过ilogtail.LOG判断Logtial服务是否有报错。

排查机器组状态

排查机器组状态,详见Logtail 机器无心跳

日志服务控制台检查

  1. 登录日志服务控制台,查看报错信息,对比日志服务,详见查询诊断错误

  1. 单击 预览,通过预览数据查看是否采集到了数据。如果采集到,但查询无法查到,应该是没有开启日志索引,或者设置索引错误导致,详见查询日志

 

适用于

  • 日志服务