Net-SNMP
- Net-SNMP インストール [2014-12-21]
- Net-SNMP アップデートの注意点 [2014-12-21]
Net-SNMP インストール
インストールは以下のサイトから、ソースのバイナリを取得するか、
Net-SNMP
OSのソフトウェア(パッケージ)インストールコマンドからインストールする。
# CentOS のインストールコマンド例 yum -y install net-snmp yum -y install net-snmp-utils注意点は、バイナリからのインストールとパッケージのインストールでは、インストールディレクトリ先が異なるということ。
HP-UXの場合は HP-UX SNMP - How to Run the HP-UX SNMP Agent AND the Net-SNMP Agent in Parallelを参考に。
以下にバイナリからのインストール方法の例を記載する。
# CentOS7の環境で、以下サイトから、Net-SNMP 5.7.2.1 をインストールした例とする。 # < http://net-snmp.sourceforge.net/ > # バージョン:net-snmp-5.7.2.1.tar.gz tar -xvf net-snmp-5.7.2.1.tar.gz # 解凍 cd net-snmp-5.7.2.1 # ディレクトリ移動 ./configure # 環境依存の設定は、質問に対しては、とりあえず全て[ENTER]キーで進める # 以下エラーが出た場合は、Cコンパイラが無いことが原因。 yum install gcc # GCC 等のコンパイラをインストールすれば解決 # ======================================= # configure:6767: checking for cl.exe # configure:6797: result: no # configure:6821: error: in `/root/net-snmp-5.7.2.1': # configure:6823: error: no acceptable C compiler found in $PATH # ======================================= # 以下は設定を全て[ENTER]キーで進めた場合の設定例 # ======================================= # ①*** Default SNMP Version: # Default version of SNMP to use (3): # setting Default version of SNMP to use to... 3 # ②*** System Contact Information: # System Contact Information (@localdomain): # setting System Contact Information to... @localdomain # ③*** System Location: # System Location (Unknown): # setting System Location to... Unknown # ④*** Logfile location: # Location to write logfile (/var/log/snmpd.log): # setting Location to write logfile to... /var/log/snmpd.log # ⑤*** snmpd persistent storage location: # Location to write persistent information (/var/net-snmp): # setting Location to write persistent information to... /var/net-snmp # ======================================= # 次に make コマンドからインストールする make make test # 確認コマンド。時間がかかるためスキップしても良い make install # make時に以下エラーが出た場合、MakeMakerをインストールすれば解決 yum -y install perl-ExtUtils-MakeMaker # ======================================== # Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 1. # BEGIN failed--compilation aborted at Makefile.PL line 1. # make: *** [perlmakefiles] エラー 2 # ======================================== # snmpd.conf は make install 後に作成される、テンプレートを元に作成する # cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf # コピーしたテンプレートを編集 vi /usr/local/share/snmp/snmpd.conf # 起動例 snmpd -Lf /var/log/snmpd.log -p /var/run/snmpd -a -Dsnmp/pass,snmp_agent # 停止例 kill `ps -ef | grep snmpd | grep -v grep | awk '{print $2}'`
Net-SNMP アップデートの注意点
Net-SNMPはOSSのため、下位バージョンとの互換性が無くなるアップデートが多い。
特に 5.2.x から、exec, sh コマンドが deprecated になっていて、
5.4.x では exec を OID 指定で実行できなくなった(exec の OID 指定は廃止)。
そのため、5.3以前のバージョンからアップデートを検討している方は要注意。
extend は MIB(OID)の構成が異なるため、SNMPマネージャ側から監視できなくなる怖れがある。
とはいうものの、重要なセキュリティパッチも当たっていることから、欲を言えば最新バージョンが良い。
# 5.1 での実行例 ===================================================================== # snmpd.conf 設定例) # exec echotest /bin/echo hello world [root]# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8 -On .1.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1 .1.3.6.1.4.1.2021.8.1.2.1 = STRING: echotest .1.3.6.1.4.1.2021.8.1.3.1 = STRING: /bin/echo hello world .1.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 0 .1.3.6.1.4.1.2021.8.1.101.1 = STRING: hello world .1.3.6.1.4.1.2021.8.1.102.1 = INTEGER: 0 .1.3.6.1.4.1.2021.8.1.103.1 = STRING: # 5.7.2.1 の実行例 ================================================================= # snmpd.conf 設定例) # exec test1 /bin/echo Hello, world! # extend .1.3.6.1.4.1.2021.8 test2 /bin/echo Hello, world! SAMPLE!! [root]# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8 -On .1.3.6.1.4.1.2021.8.1.0 = INTEGER: 1 # ★新しい値(5.1には無い) .1.3.6.1.4.1.2021.8.1.1.1 = INTEGER: 1 .1.3.6.1.4.1.2021.8.1.2.1 = STRING: testExec .1.3.6.1.4.1.2021.8.1.3.1 = STRING: /bin/echo Hello, world! .1.3.6.1.4.1.2021.8.1.100.1 = INTEGER: 0 .1.3.6.1.4.1.2021.8.1.101.1 = STRING: Hello, world! .1.3.6.1.4.1.2021.8.1.102.1 = INTEGER: noError(0) .1.3.6.1.4.1.2021.8.1.103.1 = STRING: # 以下 extend の OID 指定の場合フォーマットが大きく変わり、出力個数も増える .1.3.6.1.4.1.2021.8.2.1.2.5.116.101.115.116.52 = STRING: "/bin/echo" .1.3.6.1.4.1.2021.8.2.1.3.5.116.101.115.116.52 = STRING: "Hello, world! SAMPLE!!" .1.3.6.1.4.1.2021.8.2.1.4.5.116.101.115.116.52 = "" .1.3.6.1.4.1.2021.8.2.1.5.5.116.101.115.116.52 = INTEGER: 5 .1.3.6.1.4.1.2021.8.2.1.6.5.116.101.115.116.52 = INTEGER: 1 .1.3.6.1.4.1.2021.8.2.1.7.5.116.101.115.116.52 = INTEGER: 1 .1.3.6.1.4.1.2021.8.2.1.20.5.116.101.115.116.52 = INTEGER: 4 .1.3.6.1.4.1.2021.8.2.1.21.5.116.101.115.116.52 = INTEGER: 1 .1.3.6.1.4.1.2021.8.3.1.1.5.116.101.115.116.52 = STRING: "Hello, world! SAMPLE!!" .1.3.6.1.4.1.2021.8.3.1.2.5.116.101.115.116.52 = STRING: "Hello, world! SAMPLE!!" .1.3.6.1.4.1.2021.8.3.1.3.5.116.101.115.116.52 = INTEGER: 1 .1.3.6.1.4.1.2021.8.3.1.4.5.116.101.115.116.52 = INTEGER: 0 .1.3.6.1.4.1.2021.8.4.1.2.5.116.101.115.116.52.1 = STRING: "Hello, world! SAMPLE!!"