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 日志查看器,如下所示:
但严重性并未传递,知道为什么会这样吗?
好的,找到解决方案了,给你:
将 /etc/rsyslog.conf
下的系统日志输出格式更新为以下格式:
$template googlelogger,"%syslogseverity-text% %timegenerated% %HOSTNAME% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate googlelogger
然后更新/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 云日志
之后重新启动 rsyslog
和 google-fluentd
似乎日志严重性未通过 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 日志查看器,如下所示:
但严重性并未传递,知道为什么会这样吗?
好的,找到解决方案了,给你:
将
/etc/rsyslog.conf
下的系统日志输出格式更新为以下格式:$template googlelogger,"%syslogseverity-text% %timegenerated% %HOSTNAME% %syslogtag% %msg%\n" $ActionFileDefaultTemplate googlelogger
然后更新
/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 云日志
之后重新启动rsyslog
和 google-fluentd