Nagios

はじめに


スイッチ

このドキュメントはどのようにネットワークのスイッチとルータの状態をを監視することができるかについて説明します。 いくつかの、より安い"管理されていない"のスイッチとハブはIPアドレスを持っておらずあなたのネットワークで本質的に見えないので、それらを監視する方法はありません。 より高価なスイッチとルータは、アドレスをそれらに割り当てて、Pingで確認するか、ステータス情報について問い合わせるためにSNMPを使うことによって監視することができます。

私は管理されたスイッチ、ハブ、およびルータでどのように以下のものを監視できるか説明します:

注意: これらの方法は、クイックスタート Fedora, クイックスタート OpenSuse, クイックスタート Ubuntu に従ってNagiosをインストールしたと仮定します。 クイックスタートでインストールすると以下の設定ファイル例(commands.cfg, templates.cfg, その他)もインストールされます。

概要


ルータかスイッチを監視します。

監視するスイッチとルータが簡単か、複雑か、どんな設備を持つか、そして、何を監視したいかに依存します。 それらが重要なインフラ・コンポーネントであるので、間違いなく少なくとも何らかの基本的な方法でそれらを監視したくなります。

「Ping」は、パケット損失、RTAなどを決定するために容易にスイッチとルータを監視できます。 あなたのスイッチがSNMPをサポートするなら、check_snmpプラグインでポート状態など、またcheck_mrtgtrafプラグインで帯域幅(MRTGを使用しているなら)を監視できます。

あなたがシステム上にnet-snmpとnet-snmp-utils のパッケージをインストールしておけば、check_snmpプラグインはコンパイルされインストールされます。 続ける前に、プラグインが/usr/local/nagios/libexecに存在することを確認します。 Nagiosプラグインがない場合は、net-snmpとnet-snmp-utilsをインストールして、再コンパイルするか、または再インストールします。

ステップ


新しいルータかスイッチを監視するために必要なステップがあります。 それらは以下の通りです。

  1. 初回のあらかじめ求められるものを準備します。
  2. デバイスを監視するために新しいホストとサービス定義を作成します。
  3. Nagiosデーモンを再起動します。

あなたのために既に行われること


あなたの仕事を少し簡単にするよう、既にいくつかの設定をしました:

/usr/local/nagios/etc/objects/ directoryに上記の設定ファイルがあります。 望むなら、さらにあなたのニーズに合うようにこれらと他の設定を変更できます。 しかしながら、私は、あなたがそうする前にNagios設定により詳しくなるまで待つことを勧めます。 当分の間、以下に概説された方法にただ従ってください。そうすれば、すぐにネットワークルータ/スイッチを監視できます。

前提条件


初めてNagiosをネットワークスイッチを監視に設定では、少し余分な作業を行う必要があります。 覚えておいてください、監視する*最初の*スイッチにこれをする必要があるだけです。

Nagiosのメイン設定ファイルを編集します。

vi /usr/local/nagios/etc/nagios.cfg

メインの設定ファイルで以下の行から先頭のポンド(#)サインを取り外します:

#cfg_file=/usr/local/nagios/etc/objects/switch.cfg

ファイルを保存して終了します。

あなたはただ何をしましたか? あなたは、Nagiosに /usr/local/nagios/etc/objects/switch.cfgを見て追加のオブジェクトを探すよう指示します。 そこは、ルータとスイッチのホストとサービス定義を加えているところです。 その設定ファイルは既にサンプルホスト、ホストグループとサービス定義を含んでいます。 *最初の*ルータ/スイッチを監視するため、新しく作るより、サンプルのホストとサービス定義ファイルを簡単に変更できます。

Nagiosの設定


新しいルータ/スイッチを監視するためにいくつかのオブジェクト定義を作る必要があります。

編集のためのswitch.cfgファイルを開きます。

vi /usr/local/nagios/etc/objects/switch.cfg

監視するスイッチのための新しいホスト定義を加えます。 これが監視する*最初の*スイッチであれば、switch.cfg 中のサンプルのホスト定義を簡単に変更できます。 host_namealias、およびaddressフィールドを変えて、スイッチの値を設定します。

define host{
    use          generic-switch         ; Inherit default values from a template
    host_name    linksys-srw224p        ; The name we're giving to this switch
    alias        Linksys SRW224P Switch ; A longer name associated with the switch
    address      192.168.1.253          ; IP address of the switch
    hostgroups   allhosts,switches      ; Host groups this switch is associated with
}

監視サービス


これで、スイッチの別の面を監視するよういくつかのサービス定義(同じ設定ファイルへの)を加えることができます。 これが監視している*最初の*スイッチであれば、switch.cfg中のサンプル・サービス定義を簡単に変更できます。

注意: 今加えたホスト定義のhost_name 指示で指定された以下の定義例の名前"linksys-srw224p"を交換します。

監視しているパケット損失とRTA


通常な状況で5分毎にNagiosホストとスイッチの間のパケット損失と往復の平均を監視するために以下のサービス定義を加えます。

define service{
    use                    generic-service                ; Inherit values from a template
    host_name              linksys-srw224p                ; The name of the host the service is associated with
    service_description    PING                           ; The service description
    check_command          check_ping!200.0,20%!600.0,60% ; The command used to monitor the service
    normal_check_interval  5                              ; Check the service every 5 minutes under normal conditions
    retry_check_interval   1                              ; Re-check every minute until final/hard state is determined
}

このサービスは以下の通りになります。

SNMPステータス情報の監視


あなたのスイッチかルータがSNMPをサポートしていれば、check_snmpプラグインを使用することによって、多くの情報を監視できます。 そうしないなら、このセクションをスキップします。

以下のサービス定義を加えて、スイッチの稼働時間を監視します。

define service{
    use                  generic-service    ; Inherit values from a template
    host_name            linksys-srw224p
    service_description  Uptime
    check_command        check_snmp!-C public -o sysUpTime.0
}

そして、上では、サービス定義のcheck_command指示では、「-C public」がSNMP community name が「public」であるとプラグインに伝え、「-o sysUpTime.0」は、どのOIDがチェックされるべきであるかを示します。

スイッチの特定のポート/インタフェースが動作中状態を確認したいなら、このようなサービス定義を加えるかもしれません:

define service{
    use                  generic-service    ; Inherit values from a template
    host_name            linksys-srw224p
    service_description  Port 1 Link Status
    check_command        check_snmp!-C public -o ifOperStatus.1 -r 1 -m RFC1213-MIB
}

上記の例で「-o ifOperStatus.1」はスイッチのポート1の動作状態のためOIDを参照します。 「1」がSNMP結果(1はポートの上に“up"状態を示す)で見つかれば、「-r1」オプションは、OKを返すようにcheck_snmpプラグインに指示します。見つからなければCRITICALです。 「-m RFC1213-MIB」は、オプションで、あなたのシステム上にインストールされるすべての単一のMIBの代わりに「RFC1213-MIB」だけをロードするようにcheck_snmp プラグインに伝えます。そして、それは速度を上げるのを助けます。

SNMPを監視している例はこれでおしまいです。 SNMPによって監視することができるものは100万もあります、したがって、何を監視したいか決めるのはあなた次第です。 幸運を祈ります!

チップ Tip: 通常、スイッチに以下のコマンドを実行することによって監視できるOIDsを見つけることができます(192.168.1.253 をスイッチのIPアドレスと入れ替えてください): snmpwalk -v1 -c public 192.168.1.253 -m ALL .1

帯域幅の監視/トラフィックレート


スイッチかルータでMRTG を使用して帯域幅の使用量を監視しているなら、 トラフィックレートが指定する閾値を超えた場合、Nagiosに警告させることができます。 check_mrtgtrafプラグインで(標準のNagiosプラグインの一部である)、これができます。

check_mrtgraf プラグインに、MRTGデータが保存されるログファイルと閾値その他の情報を知らせる必要があります。 私の例では、Linksysスイッチのポートの監視をしています。 MRTGログファイルは/var/lib/mrtg/192.168.1.253_1.logに保存されます。 ここに、帯域幅データを監視するのに使うサービス定義があります。それはログファイルに保存されます…

define service{
    use                  generic-service    ; Inherit values from a template
    host_name            linksys-srw224p
    service_description  Port 1 Bandwidth Usage
    check_command        check_local_mrtgtraf!/var/lib/mrtg/192.168.1.253_1.log!AVG!1000000,2000000!5000000,5000000!10
}

上記の例では、  check_local_mrtgtrafコマンドのオプションで読むMRTGログファイルを「/var/lib/mrtg/192.168.1.253_1.log」に指定します。 "AVG"オプションは、それが平均帯域幅統計を使う指示です。 「1000000および2000000」オプションは受信トラフィックレートの警告をする閾値(バイトで)です。 「5000000、5000000」は送信トラフィックレートの警告をする閾値(バイトで)です。 「10」オプションで、MRTGログファイルが10分より古いなら(5分毎にそれをアップデートされるべきです)、プラグインはCRITICALを返します。

ファイルを保存します。

Nagiosの再起動

いったん新しいホストとサービス定義をswitch.cfgファイルに追加すると、あなたははルータ/スイッチを監視する準備ができます。 これを有効にするために、Nagiosの設定ファイルを確認して再起動する必要があります。

検証プロセスがエラーメッセージを出す場合は、設定ファイルを修正します。 検証プロセスがエラーなしで終ることを確認するまでNagiosを(再)スタートさせないでください!

参照 参照: 一般公開されているサービスの監視

English Deutsch 日本語

目次