
第7回 障害の兆候を見逃さないためのサーバ監視
アイティーブースト(http://www.itboost.co.jp/)
2003/3/15
SNMPによるネットワークシステムの監視
ネットワークを構成するすべての機器の状態を把握し、ネットワークが正常に機能しているか否かを監視するにはSNMPというプロトコルを利用するのが便利です。このプロトコルはもともとネットワークの構成を管理するために開発されたもので、スイッチやルータなどの多くのネットワーク機器がSNMPに対応しています(注)。
| 注:SNMP対応のネットワーク機器は高価で、個人ユーザーを対象に出荷されている安価なハブなどは対応していないことが多いのが現状です。一般的にSNMP対応のネットワーク機器は「インテリジェントHUB」のように、「インテリジェント〜」と呼ばれ、逆にSNMPに対応していない機器は「ノンインテリジェント〜」といった名称で呼ばれています。 |
■SNMPの要素:マネージャ/エージェント/MIB
SNMPは、マネージャ(NMS:Network Management Station)とエージェントという2種類の機器あるいはソフトウェアがネットワークを通じて情報のやりとりを行います。マネージャはネットワーク上に存在するエージェントに対して情報提供を要求し、情報を収集・管理します。エージェントはマネージャの要求を解釈し、必要な情報を提供します。
このエージェントとマネージャでやりとりする情報は、MIB(Management Information Base)と呼ばれる管理データベースを基にしています。エージェントが持っている情報は機器の種類によって標準的なMIBが定義されていますが、各ベンダ独自のMIBも定義されています。MIBによるデータはツリー構造で分類されています。SNMPが利用するのは.iso.org.dod.internetから広がる情報で、特に.iso.org.dod.internet.mgmt.mib2および.iso.org.dod.internet.mgmt.private.enterprise.ucdavis以下の情報が有用です。
![]() |
| 図2 エージェントとMIB |
![]() |
| 図3 MIBの構造 |
■net-snmpのインストール
Linuxの場合、net-snmp(注)というソフトウェアをインストールしてSNMPを実装するのが一般的です。
| 注:以前はucd-snmpと呼ばれていましたが、バージョン5以降はnet-snmpとして普及しています。 |
ここではnet-snmpのWebサイト(http://net-snmp.sourceforge.net/)よりnet-snmp-5.07.tar.gzを入手し、インストールします。ダウンロードしたアーカイブを展開し、作成されるnet-snmp-5.07ディレクトリに移動してconfigureスクリプトを実行します。
# tar zxvf net-snmp-5.07.tar.gz |
configureスクリプトを実行すると、その処理の1つとしてソフトウェアの基本構成や管理者のアドレスなどを対話的に入力し、include/net-snmp/net-snmp-config.hを作成するためのメッセージが表示されます。
************** Configuration Section ************** |
ここではSNMPのデフォルトバージョンを選択します。
*** Default SNMP Version: |
連絡先として、管理者のメールアドレスを指定します。
*** System Contact Information: |
システムのロケーションを指定します。管理するシステムに対して区別しやすい文字を入力すれば構いません。
*** System Location: |
ログファイルの場所を指定します。デフォルトは/var/log/snmpd.logです。
*** Logfile location: |
設定ファイルの場所を指定します。デフォルトは/var/net-snmp/snmpd.confです。
*** snmpd persistent storage location: |
configureスクリプトが終了したら、make、make installを実行します。
# make |
■net-snmpの設定
上記のようにインストールした場合、設定ファイルは/usr/local/share/snmp/snmpd.confになります。しかし、このファイルはデフォルトでは存在しないので、新規にファイルを作成することになります。
設定内容は比較的複雑です。セキュリティに関する設定は下記の4つからなります。
| com2sec | : | セキュリティ名 | |
| group | : | グループ名 | |
| view | : | 取得を許可する情報の範囲 | |
| access | : | グループに対するアクセス権 |
●com2sec
com2sec行は、ネットワークの範囲とコミュニティ名という2つの値を「セキュリティ名」という形で定義します。コミュニティ名は特定のネットワークに付ける名前のことですが、SNMPではこれが情報にアクセスするためのパスワードとなります。そのため、デフォルトのコミュニティ名は絶対に使用しないようにしましょう。
以下の例では、セキュリティ名local(localhost:127.0.0.1)に対してprivate、セキュリティ名securenet(192.168.0.0/24)に対してsecureというコミュニティ名の設定を行っていますが、実際はもっと分かりにくいコミュニティ名にすることを推奨します。
# セキュリティ名 ネットワーク コミュニティ名 |
●group
group行は、セキュリティ名とSNMPのセキュリティモデルをグループ名で定義します。セキュリティモデルとしては「v1」「v2」「usm」が存在し、それぞれSNMPバージョン1、2、3に対応しています。
書式は以下のとおりですが、先に指定したlocalとsecurenetという2つのセキュリティ名をlocal_group、secure_groupとして定義しています。
このグループ名は後述するaccess行でのアクセス許可の設定で使用されます。
|
|
|
||||||
| ↓ | ↓ | ↓ |
group local_group v1 local |
●view
view行はSNMPで取得可能な情報の範囲を指定します。第4フィールドのMIBのオブジェクトIDと第5フィールドのマスクによって範囲を指定できます。
下記の例では、.iso(1)以下の全情報(実質的には.iso(1).org(3).dod(6).internet(1))を取得できるview_allと、.iso(1).org(3).dod(6).internet(1).mgmt(2).mib2(1)以下の全情報を取得できるview_mib2、.iso(1).org(3).dod(6).internet(1).private(4).enterprises(1).ucdavis(2021)以下の全情報を取得できるview_ucdavisというviewを定義しています。このview名は、後述するaccess行でアクセス許可の設定に使用します。
|
|
|
||||||
| ↓ | ↓ | ↓ |
view view_all included .1 80 |
●access
access行はアクセス許可のための設定です。書式は以下のとおりです(2行になっていますが、実際は1行で記述します)。
access グループ名 Context モデル 認証設定 Contextマッチの方法 read権限 |
下記の例では、local_groupに対してすべてのMIBの読み込み、secure_groupはview_mib2で定義されている情報の読み込みを許可する設定を行っています。
access local_group "" any noauth exact view_all |
●そのほかの設定
上記以外に必要な設定として、syscontactとsyslocationがあります。syslocation行はSNMPエージェントの基本情報を表す任意の文字列を入力します。例えば、ホスト名やサーバの設置場所など、サーバを識別しやすい名前にしておきましょう。
syscontact行は連絡先なので、システム管理者のメールアドレスを入れておきます。
syslocation Red Hat Linux 8.0 |
すべてを設定したファイルの内容は、下記のようになります。
com2sec local localhost private |
なお、SNMPの設定ファイル(/etc/snmp/snmpd.conf)にはパスワードに相当するコミュニティ名が記述されるため、セキュリティを考慮してパーミッションを600としておきます。
# chmod 600 /etc/snmp/snmpd.conf |
設定ファイルを作成したら、以下のようにSNMPデーモン(snmpd)を起動します。
# /usr/local/sbin/snmpd -s -l /dev/null
-P /var/run/snmpd -a |
|
オプション
|
機能
|
|
|
-s
|
syslogを有効にする | |
|
-P ファイル名
|
プロセスIDを保存するファイル名 | |
|
-l
|
snmpdの出力を送るファイル名の指定 | |
|
-a
|
送信元IPアドレス(NMS)をログに記録する | |
| 表3 snmpdのオプション | ||
■SNMPエージェントからの情報取得
●MIB情報の検索
net-snmpdパッケージには簡易SNMPマネージャとしてsnmpwalkやsnmpgetなどのコマンドが用意されています。これらを使用して、リモートのシステムからSNMPで情報を取得することができます。
snmpwalkの書式は以下のとおりです。コミュニティ名の個所には、設定ファイルのcom2sec行で指定したコミュニティ名を入力します。
# snmpwalk -c <コミュニティ名> <ホスト名>
[ 検索範囲 ] |
以下のように実行すると、SNMPの情報一覧が取得できます。動作しない場合はログを確認してみましょう。
# snmpwalk -c private localhost |
# snmpwalk -v1 -c private localhost | head |
●MIBの名前解決
SNMPを利用するうえで、MIBシンボル名⇔オブジェクトID名の変換が必要な場合があります。その際に利用するのがsnmptranslateコマンドです。これは、どのようなMIBシンボル名があるのかを一覧したい場合にも利用できます。
# snmptranslate 1.3.6.1.2.1.25.3 |
| オブジェクトIDをMIBシンボル名に変換する場合 |
# snmptranslate -On HOST-RESOURCES-MIB::hrDevice |
| MIBシンボル名を数値(オブジェクトID)に変換する場合 |
# snmptranslate -On -IR hrDevice |
| オブジェクトIDの全体パスを表示せずにオブジェクトIDを表示 |
# snmptranslate -Td .1.3.6.1.2.1.1.1 |
| 指定したMIBシンボル名/オブジェクトIDの詳細を表示 |
# snmptranslate -Tp |
| 指定したMIBシンボル名/オブジェクトID以下のツリー構造を表示 |
◆
今回は、システムに関するさまざまな情報の取得方法を紹介しました。次回は、具体的にどのような情報を取得し、どのようにデータを活用していけばいいのかを紹介していきます。
|
3/3
|
|
|
||||||
|
||||||
| 連載 Linux管理者への道 |
| Linux Squareフォーラム Linux/システム学習関連記事 |
| 連載:Windowsユーザーに教えるLinuxの常識(全12回) Windowsのセオリーが通用しないLinux。Linux初心者向けに、LinuxというOSの考え方/常識をゼロから伝授! |
|
| 連載:LFSで作って学ぶLinuxの仕組み(全4回) 管理者(root)は、何をしなければならないのか? 管理に際して検討すべきことは? 管理のための技術とは? など、駆け出し管理者のための考え方や方法論を検討する |
|
| 連載:Linux管理者への道(全8回) 「Linux From Scratch」というシンプルなLinuxをインストール&環境構築する作業を通して、LinuxがOSとして機能するための仕組みや設定を見直そう |
|
| Linux Squareフォーラム全記事インデックス |
|
ホワイトペーパー(TechTargetジャパン)
- natテーブルを利用したLinuxルータの作成・2 (2010/3/11)
IPパケットのディスティネーションアドレスを書き換える「DNAT」を使って、透過型プロキシを構築します - 一歩進んだ監視のカスタマイズ (2010/3/3)
スクリプトの実行結果などを取得できるユーザーパラメータを用いて、自分のニーズにぴったり合った監視を実現 - OSSライセンス順守の第一歩 (2010/2/18)
企業として、OSSライセンス違反を犯さないためには、どのような手順が必要か、いくつかアドバイスします - 無視できないフラグメンテーション問題への解答は? (2010/2/10)
今回は、メモリコンパクション、そしてメモリバリアを発行するシステムコールという2つのパッチについて深く紹介します
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |








