它多年来一直运行良好,但突然间(我想这是在 debian 8 -> debian 9 升级之后)它停止了工作。
我尝试了几种方法并最终清除了所有内容:
# apt purge snmp snmpd
然后重新安装,但仍然不起作用。
我用 systemd 启动它(即使它在/etc/init.d
)
# systemctl start snmpd
我看到该进程已通过以下选项启动:
/usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f
这是守护进程的状态:
# systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2017-09-17 12:59:43 CEST; 5min ago
Process: 58656 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS)
Main PID: 58659 (snmpd)
Tasks: 1 (limit: 9830)
Memory: 5.9M
CPU: 27ms
CGroup: /system.slice/snmpd.service
└─58659 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f
Sep 17 12:59:43 dikkenek systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Sep 17 12:59:43 dikkenek systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
Sep 17 12:59:43 dikkenek snmpd[58659]: error on subcontainer 'ia_addr' insert (-1)
我还看到用户从 更改为snmp
。Debian-snmp
我个人认为这是一个愚蠢的改变,但最终我并不关心。我不知道这是否是我遇到的问题的原因。
实际问题是:
- 我无法停止或终止该进程,我必须使用 kill
-9
来停止它 - 如果我手动启动该过程,则 shell 将被锁定,并且不会响应 ctrl-C、ctrl-Z 等
- UDP 端口未打开,例如
lsof -i udp:161
未返回任何内容 - 当我试图停止它时(例如
systemctl stop snmpd
)它挂起了,我必须真正pkill -9 snmpd
恢复
我已经检查过:
- iptables 允许流量
- 配置文件是默认的
- 该配置表示它应该监听 localhost:161
- 启动它
-LS7d
不会在系统日志中产生任何有趣的内容(输出与上面的输出相同systemctl status
)
任何获取或进入任何版本/社区的尝试都会导致超时错误。
我不知道 a/ 发生了什么,以及如何让它恢复正常。
答案1
我有一个伪 NFS 挂载,由于某种原因,它被 SNMP 守护进程扫描了。
我停止了 autofs,懒洋洋地卸载了虚假的 NFS 共享,然后重新启动了 SNMPd。
通过跟踪 SNMP,我发现:
strace snmpd
它被困stat
在虚假的 NFS 共享上。