Ubuntu Server 14.04を実行しているZenossサーバーでSNMPDを動作させようとしています。インストールして構成しましたが、起動すると、syslogに次のエラーが表示されます。
Aug 14 08:19:16 zenoss snmpd[9904]: Turning on AgentX master support.
Aug 14 08:19:16 zenoss snmpd[9904]: Turning on AgentX master support.
Aug 14 08:19:16 zenoss snmpd[9904]: Error opening specified endpoint "udp:127.0.0.1:161"
Aug 14 08:19:16 zenoss snmpd[9904]: Server Exiting with code 1
コマンドライン(Sudo/usr/sbin/snmpd -f)でSNMPDを実行すると、正常に動作します。 netstat -oanを実行しました| grep 161で、ポート161にバインドしているものは他にありません。これが私の構成ファイルです(コメントは削除されています)。
agentAddress udp:127.0.0.1:161
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
rocommunity public localhost
rwcommunity private localhost
rouser authOnlyUser
sysLocation Virtual Machine
sysContact IT Manager
sysServices 72
load 12 10 5
trap2sink localhost public
master agentx
そして私のsnmpd設定ファイル(コメントは削除されました):
export MIBS=
SNMPDRUN=yes
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux -p /var/run/snmpd.pid -c /etc/snmp/snmpd.conf'
TRAPDRUN=no
TRAPDOPTS='-Lsd -p /var/run/snmptrapd.pid'
問題はここにあるようです:
-c /etc/snmp/snmpd.conf
それを/ etc/default/snmpdから削除して、次のようにします。
SNMPDOPTS='-Lsd -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /var/run/snmpd.pid'
Snmpdが0.0.0.0(またはすべてのインターフェース)で待機するようにしたい場合は、次のように編集します。
/etc/snmp/snmpd.conf
したがって、次のようになります。
# Listen for connections from the local system only
#agentAddress udp:127.0.0.1:161
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161
SNMPを再起動します。
これは権限の問題である可能性があります。
通常の状況では、root以外のユーザーはLinuxの1024未満のポートにバインドできません。
ただし、SNMPDがソケット/エンドポイントの作成後にその特権を削除した場合、これは問題にはなりません。