問題描述
日志服務控制臺無法采集到數據。
解決方案
排查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機器組無心跳排查思路。
日志服務控制臺檢查
文檔內容是否對您有幫助?