Stackdriver 日志记录 - 通过 syslog 发送时日志严重级别不是 reported/received

Stackdriver Logging - Log severity levels not reported/received when sent via syslog

似乎日志严重性未通过 fluentd 代理传递到 Google Cloud Logging 平台,要重现您可以尝试:

Bash:

logger -p user.crit "My log"

或PHP:

php -r "syslog(LOG_CRIT,'My log');"

或Python:

import syslog

syslog.syslog(syslog.LOG_ERR, 'My log')

事情正在传递给 Google 日志查看器,如下所示:

但严重性并未传递,知道为什么会这样吗?

好的,找到解决方案了,给你:

  1. /etc/rsyslog.conf 下的系统日志输出格式更新为以下格式:

    $template googlelogger,"%syslogseverity-text% %timegenerated% %HOSTNAME% %syslogtag% %msg%\n"
    $ActionFileDefaultTemplate googlelogger
    
  2. 然后更新/etc/google-fluentd/config.d/syslog.conf模板格式:

    format /^(?<severity>[a-zA-Z]*) (?<time>[^ ]*\s*[^ ]* [^ ]*) (?<host>[^ ]*) (?<service>[a-zA-Z0-9_\/\.\-]*): *(?<message>.*)$/
    time_format %b %d %H:%M:%S
    

确保在严重性将发送到 Google 云日志

之后重新启动 rsysloggoogle-fluentd