net-snmp インストールメモ #--------------------------------------------------------------------------------------------- # 概要 #--------------------------------------------------------------------------------------------- snmp(Simple Network Management Protcol) は機器管理用のプロトコルの名称です。snmp にはセキュリティー面やパフォーマンス面の違いによりバージョンが1 〜 3まで存在し、基本的にルータなど、ディフルトでsnmp をサポートしている機器は管理エージェントとして動作するので管理マネージャより管理情報が収集できます。 ▼ snmp 用語 ----------------------------------------------- 管理マネージャ | 管理する機器 管理マネージャは管理エージェントに対して問い合わせなどを送りMIB 情報を収集します(ポーリング)。また、管理エージェントからのトラップを受信し処理することも行います。 管理エージェント | 管理される機器 デバイスが保持している管理情報データベース(MIB) にアクセスし、値を取得してsnmp にて管理マネージャーに情報を提供します。 管理情報データベース | 管理情報(MIB) 管理エージェントが管理する管理情報データベース(MIB) のことです。 管理エージェントが動作すると同時に情報が収集されます。 ------------------------------------------------------------ linux サーバーのCPU 稼動率やトラフィック量を監視したいことはよくあることです。この場合、linux サーバーにnet-snmp をインストールすることで管理エージェントとすることができます。Fedora Core 2 にnet-snmp をインストールし、運用するまでの流れを説明します。 #--------------------------------------------------------------------------------------------- # インストール方法 #--------------------------------------------------------------------------------------------- yum パッケージ管理ツールを使ってnet-snmp をインストールします。net-snmp のみでは管理エージェント機能でしかないので、簡易管理マネージャーを使うため、便宜上、net-snmp-utils もインストールします。 # yum -y install net-snmp # yum -y install net-snmp-utils #--------------------------------------------------------------------------------------------- # net-snmp の設定 #--------------------------------------------------------------------------------------------- net-snmp 管理エージェントの設定は/etc/snmp/snmpd.conf ファイルに行います。 ● システム情報の設定 sysname、syslocation、syscontact には管理エージェントが置かれている名前(name)、場所(location)、連絡先(contact)を指定します。これはMIB システム情報について問い合わせがあった場合、応答する情報そのものです。通常、MID システム情報へは次のコマンドで問い合わせします。 # snmpwalk -v 1 <ホスト名> -c <コミュニティー名> system ● アクセス権限の設定 snmp を利用できる範囲や利用できるホストなどのアクセス制限を設定します。snmp v1 では、下記の要素を用いて制限を行います。 com2sec : 管理するネットワーク範囲、情報にアクセスするパスワードをコミュニティー名で定義 group : のセキュリティーモデルをグループ名として定義 view : 取得可能な情報の範囲 access : どのグループにどの範囲のアクセスを許可するかの設定 com2sec local localhost localcom 上記は、localcom というコミュニティー名を発行します。つまり、localhost からのみsnmp が利用できるセキュリティーレベルをlocalcom に関連づけます。 group local_group v1 local 上記は、snmp のセキュリティーモデル(snmp のどのバージョンを利用するか) をlocal_group に関連づけます。 view view_mib2 included .1.3.6.1.2.1 上記は、snmp 管理エージェントが取得できるsnmp 情報の範囲を.1.3.6.1.2.1 とするview_mib2 を作成します。 access local_group "" any noauth exact view_mib2 none none 上記は、local_group グループにview_mib2 でアクセスできる範囲の情報を提供します。 #--------------------------------------------------------------------------------------------- # プロセスの監視を行う #--------------------------------------------------------------------------------------------- net-snmp でサーバープロセスを監視するには、次の項目を設定します。 proc process-name MAX MIN ・ MAX、MIN を指定しない場合はプロセスが停止した際にエラーフラグ(prErrorFlag) が1 となります ・ MAX を指定した場合、プロセスの数が最大値を越えた場合にエラーフラグが1 となります ・ MIN を指定した場合、プロセスの数が最小値を下回った場合にエラーフラグが1 となります プロセスのMIB 情報は次のコマンドで確認することができます。 # snmpwalk -v 1 -c localcom localhost prTable ※ 注意 ) httpd プロセスを監視する際の[process-name] はlibhttpd.ep であることに注意してください。 #--------------------------------------------------------------------------------------------- # net-snmp の起動 #--------------------------------------------------------------------------------------------- yum でnet-snmp をインストールした場合、net-snmp の起動スクリプトは既に/etc/rc.d/init.d/snmpd として用意されています。次のコマンドで起動、停止を行うことができます。 snmp 起動方法 : /etc/rc.d/init.d/snmpd start snmp 停止方法 : /etc/rc.d/init.d/snmpd stop