多くのネットワーク管理者と同様に、私もネットワーク監視にNagiosを使用しています。Nagiosはオープンソースのネットワーク監視システムで、SNMP、Perl、その他の言語を使ってネットワークを監視し、ネットワーク内のデバイスの現在の状態を表示するためのWeb UIを備えています。NagiosはシンプルなHTMLベースのインターフェースを備えていますが、iPhoneで表示するには少々不格好です。iPhone用のWebアプリフロントエンドを作成しようとする試みはいくつかありましたが、これまでのところ、設定が非常に複雑で面倒なものでした。
John Fullington氏によるiNagは、複雑な設定なしで既存のNagiosシステムと通信できるネイティブiPhoneアプリです。必要な情報を明確かつ簡潔に提供してくれるので、頼りになります。完璧ではありませんが、欠けている機能はほとんどありません。iNagはApp Storeで15ドルで購入できますが、これまでのところ、価格以上の価値は十分にあります。
続きを読む…
設定
iNag のセットアップは2段階のプロセスです。まず、iTunes Apple Store からアプリ本体を購入してダウンロードします。その後、iNag と Nagios サーバー間のインターフェースとして機能する PHP ファイルをダウンロードする必要があります。(念のため:iNag を使用するには、既存の Nagios サーバーが必要です。iNag はそれ自体がネットワーク監視サーバーではなく、既存の Nagios サーバーのフロントエンドです。Nagios を使用していないのであれば、iNag は全く役に立ちません。)
PHPデータフィーダーファイル(inag.php)を使用するには、少しカスタマイズが必要です。まず、inag.phpにNagiosステータスファイル、外部コマンドファイル、ログファイルへのパスを指定する必要があります。(Nagiosを初めて使う方は、これらのパスはNagiosのベースディレクトリの/etcにあるnagios.cfgファイルに記載されています。)インストール方法によっては、Nagiosのベースディレクトリが標準の/usr/local/nagios/ツリーではない可能性があるため、相対パスではなくフルパスを使用する必要があります。
完了したら、$ROkey 変数と $RWkey 変数に読み取り専用と読み取り/書き込みの値をそれぞれ設定する必要があります。iNag の現在のバージョンでは、「読み取り/書き込み」では問題の確認のみが可能です。現時点では iNag から Nagios を変更したり再起動したりすることはできません。そのため、問題の確認機能を使用しない限り、$ROkey 変数だけで十分です。次に、inag.php を Nagios が使用する HTML ファイルがあるディレクトリにコピーします。便宜上、私は Nagios のルート Web ディレクトリにコピーしました。

次に、iPhoneでiNagの設定を行います。iNagの設定は非常に簡単です。inag.phpファイルの完全なURL、$ROkeyまたは$RWkeyの値、そしてiNagを使ってNagiosにログインする際に使用するユーザー名とパスワードが必要です(右のスクリーンショットを参照)。
厳重なセキュリティ警告:iNagを使用する場合でも、「通常の」Webブラウザを使用する場合でも、Nagiosとの通信にはHTTPSのみを使用することを強くお勧めします。システムの設定によっては、Nagiosはネットワーク上の情報、ネットワーク上で実行されているサービス、そしてネットワークの論理マップに関する豊富な情報を攻撃者に提供してしまう可能性があります。SNMPv3は暗号化をサポートしていますが、スイッチ、ほとんどのプリンター、無線アクセスポイント、ルーター、Windowsなど、 SNMPv3をサポートしていないプラットフォームも数多く存在します。また、多くのNagiosプラグインもデータを暗号化しません。暗号化されていない接続でNagiosに接続し、誰かがその接続を盗聴した場合、相手に大量の情報を提供してしまう可能性があります。

iNagの使用
セットアップが完了したら (私の場合は 5 分ほどかかりました)、iNag を起動して使い始めましょう。ここで、このアプリケーションで私が最も困惑していることに触れます。iNag を初めて起動したとき、初期画面は必ずしも Nagios サーバーが見ているものとは一致しません。現在のデータを見るには、更新ボタンを押さなければなりませんが、これは面倒です。iNag を起動するときは、その一環として Nagios サーバーと通信したいと考え、初期データを取得するためだけに「更新/リロード」ボタンを押さないようにしたいと考えるのは当然です。このパターンはアプリケーション全体で繰り返され、少しばかり面倒なことになります。ただし、更新ボタンを押すと、右に示すように、Nagios が監視している全体的なステータスを一目で確認できる、見やすい戦略的な表示が表示されます。
サービスをより明確に表示するために、少し下にスクロールしました。「OK」ホストの数は表示されていません。しかし、全体的な表示は明確です。ホストとサーバーの両方のステータスを確認できます。(Nagiosでは、ホストはネットワーク上のデバイス、サービスはデバイス上で実行されます。)「サービス」の「警告」セクションをタップすると、問題の内容がより明確に示された画面が表示されます。

このページには、問題のあるサービスがホスト別に分類されて表示されます。いずれかのエントリをタップすると、そのサービスの詳細画面が表示されます。

この場合、この画面が表示されるまでに、そのホストのpingサービスの問題は自然に解決されていました。iNagの良いところは、期待通りに動作したことです。項目をタップすると、利用可能な場合はその項目の詳細情報が表示されました。

iNag では、右側に示すように、Nagios 内のすべてのホストのリストも表示できます。
これによって得られるのはホストのステータスのみであり、ホスト上のサービスのステータスは得られないことに注意してください。ここで、iNag に関して私が不満に思う 2 つ目の点、Nagios ホストグループがサポートされていないことが挙げられます。Nagios では、ホストを整理するためにホストグループを作成できます。これにより、サービスを個々のコンピュータではなくグループに適用できます。LDAP サービス チェックを作成して「LDAP サーバー」グループを 1 回追加し、新しいサービスを作成するたびに複数の個別のサーバーを追加する方がはるかに簡単です。ホストグループは、Nagios で物事を視覚的に整理するのにも役立ちます。ここでわかるように、ホストが 60 台しかないにもかかわらず、ホスト表示で各ホストを確認しようとすると、何度もフリックスクロールする必要があります。大規模な Nagios インストールでは数百、数千のサーバーが存在する可能性があることを考えると、iNag がホスト表示でホストグループをサポートする必要があることは明らかです。

サービスはホスト別に整理されている点で多少改善されていますが (右図)、各ホストのサービスのリストを展開/非表示にしたり、Nagios サービス グループをサポートしたりすると、使いやすさの面で大きな助けになります。
サービスをサービス名またはホストで整理するオプションが欲しいです。Webサーバーが10台ある場合、サーバーをスクロールして各サービスのステータスを確認するよりも、一目で各サービスのステータスを確認したいです。また、タクティカルビューとイベントログビューだけでなく、ホストビューとサービスビューのどちらからでもビューを更新できるようにしてほしいです。
iNag を使用すると Nagios イベント ログを表示できますが、iNag の戦術表示では少なくとも 1 回更新するまで実際のデータは表示されないのと同様に、iNag のイベント ログ表示も少なくとも 1 回更新するまで空白になります。
更新前の画面は次のようになります。

更新後は次のようになります。

iNagに関して私が抱えている問題は、どれも有用性や価格に見合う価値を損なうものではありませんが、本来あるべきではない煩わしさを生み出しています。もう一つの煩わしさは、iNagではNagiosをリモートで再起動したり停止したりできないこと、また特定のホストの設定を変更できないことです。
Macworldの購入アドバイス
ネットワーク上でNagiosを運用していて、iPhoneまたはiPod touchをお持ちで、それらのデバイスからNagiosと通信する必要がある場合、15ドルで購入できるiNagは迷うことなく選択できます。UIの煩わしさはありますが、Nagios管理者にとってこのアプリケーションの有用性を大きく損なうものではありません。
iNag Nagios Viewer は、iPhone 2.2.1 ソフトウェア アップデートを実行しているすべての iPhone または iPod touch と互換性があります。
[ジョン・C・ウェルチは、ジマーマン・エージェンシーの上級システム管理者であり、長年 Mac IT の専門家です。 ]