日志服务控制台无法采集到数据
问题描述
日志服务控制台无法采集到数据。
解决方案
排查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 机器无心跳。
日志服务控制台检查
-
登录日志服务控制台,查看报错信息,对比日志服务,详见查询诊断错误。
-
单击 预览,通过预览数据查看是否采集到了数据。如果采集到,但查询无法查到,应该是没有开启日志索引,或者设置索引错误导致,详见查询日志。
适用于
-
日志服务