需求和现象
默认安装启动的snmp,会把日志记录在系统日志/var/log/messages中。频繁记录日志到messages,导致messages的日志输出都被snmp的相关信息占满,不便于其它问题的排查。另外,频繁的写日志对性能也不是很好,因此需要修改相关的配置。
解决方法
第一反应就是想到snmp的配置文件,但是发现配置文件/etc/snmp/snmpd.conf中没有关于log的日志定义,ps -ef | grep snmp[d] 得到如下结果
# ps -ef | grep snmp[d]root 59108 1 0 22:12 ? 00:00:00 /usr/sbin/snmpd -LS0-6d -Lf /dev/null -p /var/run/snmpd.pid
以上启动命令中就有关于日志的选项,关于snmp日志的警告级别如下
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,
7 or d for LOG_DEBUG.
默认的时0-6级别的日志都会被记录,查看/etc/init.d/snmpd启动文件,有以下定义
# grep 'OPTIONS=' -A3 /etc/init.d/snmpdOPTIONS="-LS0-6d -Lf /dev/null -p /var/run/snmpd.pid"if [ -e /etc/sysconfig/snmpd ]; then. /etc/sysconfig/snmpdfi
snmpd启动文件定义了OPTIONS,启动文件中提到了/etc/sysconfig/snmpd,查看内容默认如下
# cat /etc/sysconfig/snmpd# snmpd command line options# OPTIONS="-LS0-6d -Lf /dev/null -p /var/run/snmpd.pid"
因为/etc/sysconfig/snmpd优先级高于OPTIONS,所以可以直接修改配置文件即可,取消OPTIONS注释,修改如下
# cat /etc/sysconfig/snmpd# snmpd command line optionsOPTIONS="-LS0-3d -Lf /dev/null -p /var/run/snmpd.pid" #只记录0-3级别的日志即可
当然也可以直接修改/etc/init.d/snmpd启动文件中的OPTIONS
最后重启snmpd,使修改生效,就会发现messages的snmp的信息就相对少很多了,完成实际的需求。
–EOF–