linux snmptrapd,如何写入自定义日志文件,或执行自定义命令

linux snmptrapd,如何写入自定义日志文件,或执行自定义命令

Ubuntu 18.04 和 20.04,snmptrapd,版本大约 5.7.3。

陷阱事件进入系统日志。很好。

如何让日志文件转到 syslog 之外的自定义位置?

正如在许多互联网答案和教程中所见,logoption 或 logOption 在 snmptrapd.conf 中不起作用。

您可以将 logoption 放入 snmp.conf,但这样所有 snmp 日志都会进入那里,而不仅仅是陷阱。例如,运行 snmpwalk 时出现的错误消息。我找不到创建仅包含 snmptrapd 收到的 snmp 陷阱的日志文件的方法。

我认为一个巧妙的解决方法是执行和 traphandle,然后让脚本写入磁盘。但是 traphandle 似乎没有传递参数?

就像是 :

authCommunity log,execute trap-dat
traphandle default /usr/local/bin/logger.rb

所以你想让 snmptrapd 做一些事情。你如何传递参数?你如何让这个东西写入自定义日志文件?

有一种令人讨厌的方法来编写自定义日志文件:更改或覆盖 snmptrapd 的启动单元,如:/lib/systemd/system/snmptrapd.service 或 /etc/whatever 中的覆盖

像这样 :

ExecStart=/usr/sbin/snmptrapd -Ln -f -Lf /var/log/snmptrapd.log

答案1

systemd 启动单元/服务是唯一的方法。

ExecStart=/usr/sbin/snmptrapd -Ln -f -Lf /var/log/snmptrapd.log

答案2

在 centos 上,您可以将以下行添加到 /etc/snmp/snmptrapd.conf 文件

[snmp] logOption f /var/log/snmptrapd.log

当 selinux 设置为强制执行时:

chcon -t snmpd_log_t /var/log/snmptrapd.log

相关内容