降低 SNMPd 日志记录详细程度

降低 SNMPd 日志记录详细程度

我的 CentOS 系统上的 SNMPd 每次收到来自我的监控工具的查询时都会向 syslog 发送日志消息。有没有办法降低 SNMPd 的详细程度?它给日志增加了许多混乱。

Sep 12 13:05:40 myhost snmpd[7073]: Received SNMP packet(s) from UDP: [ipaddr]:42874
Sep 12 13:05:40 myhost snmpd[7073]: Connection from UDP: [ipaddr]:49272

谢谢!

答案1

检查启动的命令snmpd(可能在某处/etc/rc.d/- 在 Ubuntu 中是/etc/defaults/snmpd)以获取日志记录选项:

SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid -g root 0.0.0.0'

或者在输出中找到它ps aux | grep snmpd

手册页提供日志记录选项:

-Ls 设施

使用指定的工具通过 syslog 记录消息('d' 表示 LOG_DAEMON、'u' 表示 LOG_USER、'0'-'7' 表示 LOG_LOCAL0 到 LOG_LOCAL7)。每个选项还有“大写”版本,允许将相应的日志记录机制限制为某些消息优先级。

对于 -LF 和 -LS,优先级指定位于文件或设施标记之前。可识别的优先级为:

0 or ! for LOG_EMERG,
1 or a for LOG_ALERT,
2 or c for LOG_CRIT,
3 or e for LOG_ERR,
4 or w for LOG_WARNING,
5 or n for LOG_NOTICE,
6 or i for LOG_INFO, and
7 or d for LOG_DEBUG. 

默认值相当详细(仅比调试低 2 个级别):

正常输出(或将!)以 LOG_NOTICE 优先级记录

如果您通过 LOG_DAEMON (-Lsd) 记录到 syslog,则可以将其减少为例如带有-LSwd/ 的LOG_WARNING-LS4d或带有-LSed/ 的LOG_ERR -LS3d

(编辑以使选项按正确顺序排列。)

答案2

为了将最低优先级设置为 LOG_WARNING(我通常使用的),只需更改 argopt:

· 迷幻药

-LSwd

其含义为:

  • 年代:syslog,优先级次之
  • : (或者4)仅记录警告和更多相关信息
  • d:使用 LOG_DAEMON 功能

正如男人(但实际上缺少一个清晰的例子):

对于 -LF 和 -LS,优先级指定位于文件或设施标记之前

答案3

dontLogTCPWrappersConnects

如果 snmpd 是在 TCP Wrapper 支持下编译的,它会记录与代理建立的每个连接。此设置会禁用已接受连接的日志消息。拒绝的连接仍将被记录。

即添加dontLogTCPWrappersConnects true到 snmpd.conf。

我很困惑为什么对于监控服务(以及支持 UDP 的服务)来说,此日志消息被认为高于 LOG_DEBUG :-(。 journalctl -o verbose显示消息具有 PRIORITY=6(INFO),这与 snmpd 的正常启动消息相同。

答案4

包括标准(包含在/etc/snmp/snmp.confCentOS 6.5 的默认文件中)行对我来说可以减少详细程度,特别是关于 TCP/UDP SNMP 连接日志记录:

dontLogTCPWrappersConnects yes

以下是默认文件中更“详细”的摘录snmp.conf

# We do not want annoying "Connection from UDP: " messages in syslog.
# If the following option is commented out, snmpd will print each incoming
# connection, which can be useful for debugging.

dontLogTCPWrappersConnects yes

相关内容