統合監視ツール「Zabbix」によるサーバー監視
Zabbixによる監視設定
Zabbixでは、Webフロントエンドを使って各種設定や監視を行う。監視を行うには、まず監視対象ホストの登録が必要だ。
監視対象ホストの登録
Webフロントエンドにログインし、メニュー内の「設定」、「ホスト」を順にクリックする。「ホストの設定」画面が表示されるので、「ホストの作成」ボタンをクリックしよう(図11)。
設定フォームにホスト名やIPアドレス、接続方法などを入力していく。また、「グループ」ではホストをグループに所属させる設定が可能だ。今回はあらかじめ用意されている「Linux servers」というグループを指定している(図12)。
監視する項目は「テンプレート」で指定する。画面右の「リンクしているテンプレート」欄にある「追加」をクリックすると、テンプレート一覧がポップアップする(図13)。あらかじめさまざまな環境に向けたテンプレートが用意されているが、今回はLinuxサーバーが対象なので「Template_Linux」にチェックを入れ、「選択」をクリックする。
これでホスト一覧に設定したホストが追加される(図14)。
監視項目のカスタマイズ
さて、Zabbixでは先に述べたように「テンプレート」で設定項目を登録できる。たとえば「Template_Linux」であれば、Linuxサーバーで一般的なサービスの監視やCPU、メモリ、ネットワークI/Oなどのリソース監視などがテンプレートに含まれている。しかし、ホストの設定によっては不要な監視項目もある。たとえば今回の例では、監視対象のホストでは監視項目に含まれる一部のサービスを稼働させておらず、デフォルトの設定ではそれらが次のように「障害」として検出されてしまう(図15)。
そこで、続いてはホストに応じて監視設定を変更する方法について紹介していこう。メニュー内の「設定」、「ホスト」を順にクリックして「ホストの設定」画面を開き、設定したいサーバーの「アイテム」をクリックする(図16)。
すると「アイテムの設定」画面が開き、設定項目一覧が表示される。ここで問題のある項目を探し、「有効」をクリックすることでその監視項目を無効にできる(図17)。
今回は「Email (SMTP) server is running」や「FTP server is running」、「IMAP server is running」、「News (NNTP) server is running」、「POP3 server is running」といった項目を無効に設定した。
また、一部の監視項目はサーバー上のプロセスやファイルシステムを直接監視して警告を出すものもある。これらについては、ホストの設定」画面で「トリガー」をクリックして表示される「トリガーの設定」画面で確認・設定できる(図18)。
Zabbixでは、監視項目を先ほどの「アイテム」で管理し、その監視項目の出力結果が異常である場合に警告メッセージを表示する。この警告メッセージやその発生条件は「トリガー」として定義されており、たとえば「Zabbix_server is not running on {HOSTNAME}」というトリガーには「{sata:proc.num[zabbix_server].last(0)}<1」という条件式が設定されている。これは、zabbixサーバーのプロセスの数が1以下であれば警告を発する、という意味だ。これを無効に設定することで、「Zabbix_server is not running on」という警告は表示されなくなる。
トリガーを無効に設定するにはアイテムの場合と同様、その項目にある「有効」をクリックすれば良い。なお、デフォルトでは無効なトリガーが非表示になるよう設定されているため、無効に設定するとトリガー一覧からその項目が消えてしまう。無効なトリガーも表示させたい場合、トリガーの設定画面右上の「無効なトリガーを表示」をクリックすれば良い(図19)。
グラフ表示を追加する
Zabbixでは、指定した監視項目による監視結果をグラフで表示する機能がある。Template_Linuxテンプレートのデフォルト設定ではグラフ関連の設定は用意されていないため、グラフ機能を利用するには自分で設定を追加する必要がある。グラフを追加するには「ホストの設定」画面を開き、設定したいサーバーの「グラフ」をクリックする(図20)。
「グラフの設定」画面が表示されるので、ここで「グラフの作成」をクリックする(図21)。
設定フォームが表示されるので、グラフの名前やサイズ、タイプなどを指定する(図22)。
続いて「アイテム」欄の「追加」をクリックすると「グラフに追加するアイテム」画面が表示される(図23)。
ここで「パラメータ」欄の「選択」をクリックすると、グラフとして表示する項目の一覧が表示される(図24)。
項目にはさまざまなものが用意されているが、たとえばCPUの負荷を見たい場合は「Processer load」を選択すれば良い。すると「グラフに追加するアイテム」画面に戻るので、ここで「追加」をクリックするとグラフのプレビューが表示される(図25)。
最後に「保存」をクリックするとグラフ設定が保存される。作成したグラフは、メニュー内の「監視データ」、「グラフ」を順にクリックすると表示できる(図26)。
障害が発生した場合にメールで通知を行う
Zabbixでは障害が発生した場合、Webフロントエンドのダッシュボードでその旨を通知するが、それに加えてメールなどでの通知を行うことも可能だ。
メールで通知を行う場合、まずそのメールアドレスを登録しておく必要がある。たとえば登録されているAdminユーザーにメールを送信する場合、メニュー内の「監視」、「ユーザ」を順にクリックしてユーザー管理画面を開き、ここで「Admin」をクリックしてAdminユーザーの設定画面を表示させる(図27)。
ここで「メディア」欄の「追加」をクリックし、表示される「新規メディア」画面にメールの送信先、有効な時間帯、メールを送信する深刻度条件などを指定して「追加」をクリックする(図28)。「タイプ」は「Email」を選択しておく。
メールアドレスを追加したらユーザー設定画面の「保存」をクリックして設定を保存する。続いて、メニュー内の「管理」、「メディアタイプ」を順にクリックしてメディアタイプの設定を行う(図29)。
Zabbixでは、通知を送信する手段を「メディア」として管理しており、デフォルトではメールやJabberによるインスタントメッセージング、SMSが利用できる。今回はメールを利用するため「Email」をクリックし、表示される設定フォームに使用するSMTPサーバーや送信元メールアドレスを入力して「保存」をクリックする(図30)。
以上でメールで通知を送信する設定は完了だ。続いてメニュー内の「設定」、「アクション」を順にクリックし、「アクションの設定」画面を表示させる(図31)。
Zabbixでは、障害発生時に行う操作を「アクション」と呼んでいる。アクションではメッセージの送信だけでなく、任意のコマンドを実行することもできる。「アクションの設定」画面で「アクションの作成」をクリックすると設定フォームが表示されるので、「名前」をまずは入力しておく(図32)。
実行するアクションは「アクションのオペレーション」欄で指定する。「新規」をクリックすると「オペレーションの編集」フォームが表示されるので、ここで「オペレーションのタイプ」として「メッセージの送信」、「メッセージの送信先」として送信先のユーザー(ここではAdmin)を指定し、「追加」をクリックする(図33)。
最後に「保存」をクリックして設定を保存すれば設定完了だ。たとえば「sakura-sata」というホスト上のWebサーバーが停止した場合、デフォルト設定では次のようなメッセージが送信される。
Subject: PROBLEM: WEB (HTTP) server is down on sakura-sata Trigger: WEB (HTTP) server is down on sakura-sata Trigger status: PROBLEM Trigger severity: Average Trigger URL: Item values: 1. WEB (HTTP) server is running (sata:net.tcp.service[http]): Down (0) 2. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN* 3. *UNKNOWN* (*UNKNOWN*:*UNKNOWN*): *UNKNOWN*
LinuxサーバーだけでなくWindowsサーバーやUNIXサーバーの監視も可能
今回はLinuxサーバーの監視について紹介したが、ZabbixではWindowsサーバーやUNIXサーバー、そして各種ルーターなどに向けた設定テンプレートも用意されている。これらを利用することで、Linuxサーバー以外の機器も容易に監視を行うことが可能だ。もちろん、自分でテンプレートを作成したり、カスタマイズを行うこともできる。監視対象からの情報の取得方法についても、SNMPを利用する方法や定期的にポートにアクセスする(ポーリング)など、さまざまなものが提供されている。このような柔軟な設定が可能ながら容易に利用できるのがZabbixの最大の特徴である。使用している環境に応じて、さまざまな設定を試してみてほしい。