私は、リモートサーバーの状態(リモートサーバーが起動しているかダウンしているか)を確認するために使用されるbashスクリプト内の以下のsnmpgetコマンドを見つけました。コマンドは
snmpget $1 tcpConnState.0.0.0.0.12000.0.0.0.0.0 | grep listen | wc -l
ここに$1
リモートサーバーのホスト名があります。コマンドを実行しようとすると、以下のエラーが表示されます
No log handling enabled - turning on stderr logging
snmpget: No securityName specified (Sub-id not found: (top) -> tcpConnState)
0
snmpd 構成に変更は必要ですか?
答え1
tcpConnState
は の一部でありTCP-MIB
、リモート ホスト上のアクティブな TCP 接続に関する情報を取得します ( から取得できる情報と同様ですnetstat
)。最初の 5 桁は TCP 接続のサーバのローカル アドレスとポートであり、最後の 5 桁はリモート アドレスとポートです。
例えば、アクティブなssh接続は、 をa.b.c.d
サーバー、 をw.x.y.z
クライアントとして次のように表示されます。
TCP-MIB::tcpConnState.a.b.c.d.22.w.x.y.z.62612 = INTEGER: established(5)
この場合、0.0.0.0
(任意のローカル アドレスの) ポート 12000 からリモート ホストの0.0.0.0
ポート 0 への TCP ソケットを検索します。これは、リスニング ソケットが通常示すものです (特定のローカル IP アドレスにバインドされていないと仮定)。つまり、簡単に言うと、SNMP ターゲットのポート 12000 でリスニングしているものがあるかどうかをチェックしていることになります。
リモート ホストがtcpConnState
操作をサポートしていないか、操作が公開されていない可能性があります。
snmpwalk
まずリモート ホストで を試して、tcpConnState
ツリーが表示されるかどうかを確認します。標準の snmpd デーモンを実行している Linux ボックスのようなものであれば、これがサポートされているはずなので、構成で無効にすることができます。