如何正确地将 syslog 添加到 observium 服务器?

如何正确地将 syslog 添加到 observium 服务器?

我有一台 Ubuntu 服务器 16.04,我在其中安装了 observium 来监控服务器本身,并且这部分运行良好,我可以看到事件日志。

之后我按照有关如何添加系统日志的说明进行操作:http://docs.observium.org/syslog/ 但是当我在服务器上打开系统日志时出现错误消息:

"No syslog entries found!".

我还需要做什么吗(除了上面的 Observium 网页说明之外)?

谢谢

更新 1:

rsyslogd 版本 8.16.0

当我尝试使用直接记录时,它运行良好。

以下是配置文件:

#---------------------------------------------------------
#send remote logs to observium

template(name="observium"
         type="string"
         string="%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")

$ModLoad omprog

# rsyslog Input Modules
input(type="imudp"
      port="514"
      ruleset="observium")

# rsyslog RuleSets
ruleset(name="observium") {
    action(type="omprog"
           binary="/opt/observium/syslog.php"
           template="observium")
}

*.* stop
#---------------------------------------------------------

相反,我没有使用规则集:

#---------------------------------------------------------
#send remote logs to observium

#ceph-mon.=notice; ~

template(name="observium"
         type="string"
         string="%fromhost%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")

$ModLoad omprog


action(type="omprog"
           binary="/opt/observium/syslog.php"
           template="observium")

*.* stop
#---------------------------------------------------------

有用 :)

所以还有另一个问题。我需要使用吗ruleset?如果是这样,有没有其他人遇到过相同/类似的问题,你是如何解决的?

谢谢你!

答案1

是的,我也看到了这个问题。

我错误地在 rsyslogd.conf 和 30-observium.conf 中启用了“input(type="imudp" port="514")”。您需要在 rsyslogd.conf 中启用 imudp 模块,并在 30-observium.conf 中为其启用 input->ruleset 操作

/etc/rsyslog.conf;

provides UDP syslog reception
module(load="imudp")
#input(type="imudp" port="514")

/etc/rsyslog.d/30-observium.conf 应该是;

#---------------------------------------------------------
#send remote logs to observium

template(name="observium"
     type="string"
     string="%fromhost-ip%||%syslogfacility%||%syslogpriority%||%syslogseverity%||%syslogtag%||%$year%-%$month%-%$day% %timereported:8:25%||%msg%||%programname%\n")

$ModLoad omprog

# rsyslog Input Modules
input(type="imudp"
      port="514"
      ruleset="observium")

# rsyslog RuleSets
ruleset(name="observium") {
    action(type="omprog"
           binary="/opt/observium/syslog.php"
           template="observium")
}

#& stop
#---------------------------------------------------------

我还必须注释掉最后一行,因为它导致 rsyslog 悄然失败。

PS;每次对 syslog 过滤器进行更改时,都需要重新启动 rsyslog,因为它会在启动时缓存生成的 syslog.php 脚本。

相关内容