web-dev-qa-db-ja.com

SNMPが壊れているのはなぜですか?

Ubuntuバージョン:Ubuntu 14.04.1 LTS

SNMPバージョン:5.7.2

短い問題:「デフォルト」構成ファイルの多くのエントリが壊れています。 SNMPを開始することさえできないので、これは本当に重要ではありません。

望ましい結果:できる限り多くのデフォルトが機能する、機能するSNMPインスタンスが必要です。

注:Canonicalが所有するUbuntu Webサイトを含む非常に多くのソースから、基本機能を使用するにはexportおよびSNMPDOPTSを変更する必要があると言われています。

/etc/default/snmpd

export MIBS=UCD-SNMP-MIB
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'
SNMPDCOMPAT=yes

/etc/snmp/snmpd.conf

view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
rocommunity public
rwcommunity nanana
sysLocation    vm1-ryd-wlo
sysContact     Paul Adams <[email protected]>
sysServices    72
disk       /     10000
disk       /var  5%
load   12 10 5
trapsink     localhost public
iquerySecName   internalUser
rouser          internalUser
master          agentx

/var/log/syslog

Oct  3 13:59:51 mdnsreflector-ryd-wlo snmpd[9120]: Server Exiting with code 1
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9143]: Turning on AgentX master support.
Oct  3 14:00:09 mdnsreflector-ryd-wlo snmpd[9145]: NET-SNMP version 5.7.2

Sudo service --status-all

[ + ]  snmpd

Sudo service ufw status

Status: inactive
  1. この構成はロードされ、明らかに実行されています。実際には、リモートデバイスからこのSNMPインスタンスに何かを照会することはできません。接続は最終的にタイムアウトします。

  2. サーバー自体から照会しても何も生じません。

snmpwalk -Os -c public -v 1 localhostシステム

system: Unknown Object Identifier (Sub-id not found: (top) -> system)
  1. ソフトウェアがそのコマンドを処理しようとするたびにパニック状態が続いたため、「agentAddress」エントリを削除する必要がありました。 (それがデフォルトであり、構成にリストされるはずの方法ですが)。

/etc/var/syslog

Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Turning on AgentX master support.
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Error opening specified endpoint "udp:161"
Oct  3 14:10:32 mdnsreflector-ryd-wlo snmpd[9292]: Server Exiting with code 1

Sudoサービス--status-all

[ - ]  snmpd
  1. また、実行時にエラーが発生するため、構成内のいくつかのデフォルトエントリを削除する必要がありました。

/etc/snmp/snmpd.conf

proc mount
proc ntalkd    4
proc sendmail    10 1
includeAllDisks 10%
extend    test1   /bin/echo  Hello, world!
extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35

/ var/log/syslog

Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 90: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 92: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 94: Error: Already have an entry for this process.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: includeAllDisks already specified.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 106: Error: #011ignoring: includeAllDisks 10%
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: message repeated 6 times: [ /etc/snmp/snmpd.conf: line 146: Error: duplicate trigger name]
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: /etc/snmp/snmpd.conf: line 148: Error: duplicate trigger name
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test1' - possibly duplicate name.
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: duplicate table data attempted to be entered. row exists
Oct  3 10:51:11 mdnsreflector-ryd-wlo snmpd[7575]: Failed to register extend entry 'test2' - possibly duplicate name.
28
Paul Adams

SNMPは壊れていません。動作させるためのプロセスは少し複雑です。

次の手順は、14.04で動作することが確認されています。

SNMPとそのデーモン(Sudo apt-get install snmp snmpd)をインストールした後、ファイル/etc/snmp/snmp.confを編集し、「mibs:」を含む行をコメント化する必要があります。

このファイル内で、次の行を変更します。

mibs :

#mibs : 

次に、まだこれを行っていない場合、IETF MIBの完全なセットを取得する必要があります。これらのファイルは、ライセンスの問題により、デフォルトではDebian/Ubuntuシステムに出荷されません。

端末から(Ctrl-Alt-t)、次のコマンドを入力します。

Sudo apt-get install snmp-mibs-downloader

Sudo download-mibs

次に、/etc/snmp/snmpd.confを変更する必要があります。

  1. SNMPを許可するために、システムはループバックアドレス以外のインターフェイスでクエリを受信します。この行は次のようになります。

    #  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アクセスを制限するには、これを調整する必要があります。

  2. 次のように、読み取り専用SNMP文字列をpublicから選択したカスタム文字列に変更します。

    #rocommunity public  default    -V systemonly
    rocommunity <My$ecret$tr1nG> (don't use this example!)
    

    注:行から-V systemonlyを削除すると、MIBツリー全体へのアクセスが許可され、ツリーのシステム部分に制限されません。

  3. SNMPデーモンを再起動します

    Sudo service snmpd restart
    

最後に、SNMPクエリが適切に応答するようになります。

例えば。:

snmpwalk -v 2c -c <My$ecret$tr1nG> <MachineName> ipadd

IP-MIB::ipAdEntAddr.127.0.0.1 = IpAddress: 127.0.0.1
IP-MIB::ipAdEntAddr.192.168.1.7 = IpAddress: 192.168.1.7
IP-MIB::ipAdEntIfIndex.127.0.0.1 = INTEGER: 1
IP-MIB::ipAdEntIfIndex.192.168.1.7 = INTEGER: 2
IP-MIB::ipAdEntNetMask.127.0.0.1 = IpAddress: 255.0.0.0
IP-MIB::ipAdEntNetMask.192.168.1.7 = IpAddress: 255.255.255.0
IP-MIB::ipAdEntBcastAddr.127.0.0.1 = INTEGER: 0
IP-MIB::ipAdEntBcastAddr.192.168.1.7 = INTEGER: 1

追加のリファレンスについては、次の回答を参照してください。

buntu 12.04でIP-MIBを取得または構成する方法

SNMPとは?

2
Kevin Bowen

.1を表示するストック構成で開始し、デバッグロギングを有効にして、OIDへのクエリを取得します。正直なところ、MIBにこだわることはありませんでした。MRTGやcactiのようなものにのみSNMPを使用していたので、これ以上知る必要はありませんでした。最も簡単な構成を機能させることができるかどうかを確認し、関連するログファイルを作成しながら、一度に1つの要素を追加します。

0
John Oliver