導入運用保守の目となる監視システムのおかげで、いつでもどこでもサーバーのパフォーマンスを把握できます。G-Lineの監視システムは様々な監視ツールを活用していますが、中でもNagiosは長年の実績を持つツールであり、柔軟な設定機能と強力な管理機能により、G-Lineにおいて重要な役割を果たしています。この記事では、Nagios監視ツールの機能、システム監視の原理、そしてG-Lineにおける活用事例などについてご紹介します。 I. Nagiosの機能1. ホストまたはサービスのステータス監視Nagiosは、Linux、Unix、Windowsなどのサーバーオペレーティングシステムに加え、ルーターやスイッチなどのネットワークデバイスも監視できます。HTTP、TCP、POP3、SMTPなどの様々なアプリケーションプロトコルの外部可用性検出をサポートしています。 2. 監視とアラーム通知Nagiosは、検出された問題に対して迅速にアラートを生成し、メール、SMS、WeChatなどの事前定義された方法で関係者に通知します。さらに、NagiosはカスタムアプリケーションやAPI呼び出しを介したアラート通知をサポートしているため、ユーザーは問題をより適切に特定し、解決を自動化できます。 3. 監視情報の可視化NagiosはWebサーバーと組み合わせることで、監視対象のすべての情報をWebページ形式で表示できます。さらに、外部ソフトウェアと統合することで、監視データの可視化と分析が可能になり、Webページ上にグラフ形式で表示されます。下の画像はNagiosのWebページです。 図1. Nagiosウェブページの表示 4. データ保存を監視するNagios モニタリングによって収集されたデータは保存され、NDOUtis コンポーネントを通じてデータベースに保存され、履歴モニタリング情報を照会できます。 II. Nagiosシステム監視の原則Nagiosはクライアント/サーバー(C/S)型の監視ツールです。システム内の役割は以下のように分類できます。 (1)Nagiosサーバー:コアモジュールをインストールし、監視処理、タスクのスケジュール、コマンドの発行、Web表示を担当します。 (2)監視対象ホスト:エージェントモジュールをインストールし、特定の監視コマンドを実行し、監視結果を返します。 Nagiosサーバーはエージェントモジュールにリクエストを送信し、エージェントモジュールは様々なプラグインを呼び出して特定のリソースのステータス情報を取得し、Nagiosサーバーに返します。収集された情報は最終的に分析され、Webアプリケーションを通じて表示されます。 Nagiosシステムは、主にNagiosデーモン、Nagiosプラグイン、そしてnrpeという3つのコンポーネントで構成されています。また、NSCA、NSClinet++、NDOUtilsといったコンポーネントも含まれています。その構成の論理図を以下に示します。 図2. Nagiosの論理構造図 Nagios デーモン: Nagios システムのコア コンポーネントであり、さまざまなコンポーネントを整理および管理し、それらを調整して監視タスクを完了し、監視情報を整理および表示する役割を担います。 Nagiosプラグイン:Nagiosコアコンポーネントに付属するプラグインと、ユーザーが独自に開発したプラグインです。これらは様々な監視機能を実装する小さなプログラムで、関連データを収集した後、Nagiosサーバーに送り返します。 NRPE:監視対象ホストの稼働状態やHTTP、FTP、SSHなどの公開サービスの可用性を取得するために、Nagiosはプログラムによる検出機能を使用できます。ただし、監視対象ホストのディスク容量やCPU負荷といったローカル情報を取得するには、プロキシプログラムが必要です。Linuxの場合はNRPE、Windowsの場合はNSClient++です。プロキシプログラムは監視データを取得し、Nagiosサーバーに送信します。 III. プラグインの導入と応用Nagiosコアモジュールは限られた数の監視機能のみをサポートしており、ほとんどの監視は様々なプラグインを通じて行われます。監視プラグインは、アクティブ監視とパッシブ監視の2つの方法で監視データを取得します。アクティブ監視ではNagiosがクエリコマンドを実行するのに対し、パッシブ監視では外部プログラム(エージェント)が結果をNagiosサーバーにプッシュする点が異なります。 アクティブ監視:Nagios監視サーバーは、監視対象エンドポイントから定期的かつプロアクティブにデータを取得します。アクティブ監視は、監視対象エンドポイントにエージェントのインストールを必要とするものと、エージェントのインストールを必要としないものの2種類に分けられます。
パッシブ監視: これは、監視対象デバイスが独自の監視データを Nagios に送信することを指し、さらに次の 2 つのタイプに分けられます。
現在、Nagios は主に G ラインで外部検出機能を実行し、サービス側から監視とチェックを積極的に開始します。 Nagiosの監視機能のほとんどはプラグインを通じて実装されています。以下では、現在使用しているNagiosプラグインの一部を簡単にご紹介します。 (1) Nagiosプラグインは、多数のプラグインを含むソフトウェアパッケージです。現在使用しているプラグインには、Windowsシステムの負荷、メモリ使用量、ディスク使用量、システム稼働時間、プロセス実行を監視するcheck_ntなどがあります。このプラグインをNagiosサーバーで使用するには、監視対象のWindowsシステムにエージェントNSClient++をインストールする必要があります。 システム負荷の監視check_nt -H $HOSTNAME$ -p 12489-v CPULOAD –l 5,80,90 システムのメモリ使用量の監視check_nt -H $HOSTNAME$ -p 12489-v MEMUSE –w 80 –c 90 システムディスク使用量の監視check_nt -H $HOSTNAME$ -p 12489-v USEDDISKSPACE -ld -c 80 システムの稼働時間の監視check_nt -H $HOSTNAME$ -p 12489-v 稼働時間 システムプロセスの監視check_nt -H $HOSTNAME$ -p 12489-v PROCSTATE -d SHOWALL -l explorer.exe -H: 監視対象の IP アドレスを指定します。-p: NSClient++ によって開かれるデフォルトのポート。-v: 監視対象のプロジェクト。 -w: 必要な閾値; -c: 重要な閾値; -l: 追加パラメータ (2) check_nrpe: nrpeパッケージにはcheck_nrpeコマンドが含まれています。このコマンドは監視データを取得するために使用されます。監視対象側のnrpe設定ファイルで監視コマンド(Nagiosプラグインまたは独自開発の監視スクリプトから実行)を定義し、Nagiosサーバーからcheck_nrpeを介してこれらの監視コマンドを呼び出すことで監視データを取得します。 システム負荷の監視監視対象のLinuxマシンにnrpeとNagiosプラグインをインストールします。nrpe.confファイルを編集して、以下のコマンドを定義します。 コマンド[check_load]=/usr/local/Nagios/libexec/check_load-w 15,10,5 -c 30,25,20 注意:check_load は Nagiosplugins に含まれており、Linux でのみ実行できます。-w は警告しきい値、-c は重大なしきい値であり、3 つの値はそれぞれ 1 分、5 分、15 分のシステムの負荷しきい値に対応します。 (3) check_pingはホストの生存確認に使用されます。簡単に言うとpingです。 システムネットワークの状態を監視するcheck_ping –H $HOSTNAME$ -w100.0,20% -c 500.0,60% -w: 警告しきい値。100 はレイテンシ、20% はパケット損失率を表します。 -c: 重大なしきい値。500 は遅延を表し、60% はパケット損失率を表します。 ping が遅延しきい値またはパケット損失率しきい値のいずれかに達すると、アラームがトリガーされます。 (4)check_tcp、TCP接続応答時間をチェックします。 check_tcp –H $ホスト名$ -p 7001-w 0.05 -c 0.1 -p: TCP サービス ポートを指定します。-w: 応答時間の警告しきい値。-c: 応答時間の重大なしきい値。 (5) SNMP – Linux: SNMPによる監視では、監視対象側にエージェントをインストールする必要はありません。監視対象のオペレーティングシステムまたはアプリケーションシステムでSNMPサービスを有効にし、設定するだけで済みます。Nagiosサーバーはsnmpwalkコマンドを使用してリモートシステムに接続し、情報を取得します。 Linuxディスクの監視snmp_linux_disk_check.sh -H HOST-C コミュニティ -w 警告 -c クリティカル [-d ディスク] -H は監視対象のホストの IP アドレスを指定します。 -C コミュニティ ワード。 -w ディスク使用量アラームしきい値 -c ディスク使用量基準アラームしきい値 -d はオプションで、ディスクのマウント ポイントを指定します。省略すると、ホスト上のすべてのマウント ポイントが検出されます。 Linux CPUの監視snmp_linux_cpu_check.sh -H HOST-C コミュニティ -w 警告 -c クリティカル -H および -C パラメータは上記と同じ意味を持ちます。-w は CPU 使用率アラームしきい値であり、-c は CPU 使用率クリティカルアラームしきい値です。 Linuxメモリの監視snmp_linux_mem_check_v1.sh -HHOST -C コミュニティ -w 警告 -c クリティカル -H と -C は上記と同じ意味です。-w はメモリ使用量アラームしきい値であり、-c は重大なメモリ使用量アラームしきい値です。 IV. G行の申請Nagiosは主にGラインにおける外部プローブ処理を担当し、サービス側から監視とチェックをプロアクティブに開始します。現在、監視対象オブジェクトには、オペレーティングシステム、データベース、アプリケーション(ポート、ページ、ログなど)、専用デバイスが含まれます。 Nagios の監視アーキテクチャは次のとおりです。 図3 G行のNagios監視アーキテクチャ V. 要約と展望Nagiosは、LinuxおよびWindowsシステム上のホストとネットワークデバイスを効果的に監視する軽量なオープンソース監視ソフトウェアです。カスタム監視スクリプトの作成が可能で、シンプルな導入、柔軟なアラート方法、複数のプロトコルを監視できるといった利点があります。業界で広く使用されている他の監視ソフトウェアには、分散監視とコンテナ監視のサポートといった利点を持つZabbixとPrometheusがあります。これら2つの監視ツールはG-Lineでも使用されており、G-Lineの監視システムを共同でサポートするとともに、監視セルフサービスや監視標準といった分野で継続的に最適化されています。 |