问题描述
日志服务控制台无法采集到数据。
解决方案
排查Rsyslog服务
登录无法采集到数据的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%为日志消息正文。
执行如下命令,查看Rsyslog服务是否启动。
service rsyslog status
执行如下命令,查看Rsyslog监听端口和转发端口。
netstat -antpul |grep 11111
系统显示类似如下,可以看到一个Rsyslog进程,两个Sockets监听,一个监听本机的53552端口,转发到本机的11111端口,另一个监听本机的53554端口,转发到本机的11111端口。有两个是因为syslog.conf中配置了两个规则,而Logtial服务也启动了三个,两个ESTABLISHED状态的监听与两个ESTABLISHED状态的Rsyslog监听在进行数据传输。
排查Logtail服务
执行如下命令,查看Logtial服务运行状态。
/etc/init.d/ilogtaild status
通过ilogtail.LOG判断Logtial服务是否有报错。
排查机器组状态
排查机器组状态,具体操作,请参见Logtail机器组无心跳排查思路。
日志服务控制台检查
文档内容是否对您有帮助?