我的 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.conf
CentOS 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