WEBサイトを表示するためのミドルウェア、Apache が正常に起動していることを監視するためのテンプレートを作成します。Apache の死活監視は、80番ポート(HTTP)と 443番ポート(HTTPS)へのTCP接続ができることにより確認します。また、WEBサイトに現在どのくらい同時接続がされているかを把握するため Apache(httpd)のプロセス数の監視設定も行います。
Apache(httpd)のプロセス数は ps コマンドの出力を「httpd」で絞り込み、その行数を数えることで確認できます。
$ ps aux | grep httpd | grep -v grep | grep -v root | wc -l 8 ← プロセス数
テンプレートの作成
[設定]→[テンプレート]→[テンプレートの作成]をクリックします。
[テンプレート]タブを選択 下記を入力し「追加」をクリックすればテンプレートが作成されます。
テンプレート名:A_Template_App_Apache グループ:A_Templates グループを作成する
アプリケーションの作成
[設定]→[テンプレート] 「A_Template_App_Apache」行の「アプリケーション」をクリックします。
名前に「http」を入力し「追加」をクリックすればアプリケーションが作成されます。
アイテムの作成
80番ポート(HTTP)と 443番ポート(HTTPS)のポート監視アイテムと、Apache(httpd)のプロセス数の監視アイテムを作成します。
ポート監視アイテムの作成
[設定]→[テンプレート] 「A_Template_App_Apache」行の「アイテム」をクリックします。
下記を設定し「追加」をクリックすればアイテムが作成されます。
---(設定箇所)---------------------------
名前:2000_http ポート監視
タイプ:シンプルチェック
キー:net.tcp.service[tcp,,80]
更新間隔(秒):60
値のマッピングの使用:Service state(0 ⇒ Down, 1 ⇒ Up と表示されます)
アプリケーション:http
------------------------------
同様にHTTPSポートの監視アイテムも作成します。
---(設定箇所)---------------------------
名前:2010_https ポート監視
タイプ:シンプルチェック
キー:net.tcp.service[tcp,,443]
更新間隔(秒):60
値のマッピングの使用:Service state(0 ⇒ Down, 1 ⇒ Up と表示されます)
アプリケーション:http
------------------------------
アイテムキー net.tcp.service のパラメータ
net.tcp.service[service,<ip>,<port>]
service - ssh、 ntp、ldap、smtp、ftp、http、pop、nntp、imap、tcp、https、telnetの何れか1つ
ip - Zabbixのホストの定義のIPアドレス
port - ポート番号(デフォルトでは標準のサービスポート番号が使用されます)
詳細は公式マニュアル 5 シンプルチェック | Zabbix Documentaion 2.2 をご参照ください。
Apache(httpd)のプロセス数の監視アイテム作成
WEBサイトに現在どのくらい同時接続がされているかを把握するためのアイテムです。
下記を設定し「追加」をクリックすればアイテムが作成されます。
---(設定箇所)---------------------------
名前:3000_httpd プロセス数
キー:proc.num[httpd]
更新間隔(秒):60
アプリケーション:http
------------------------------
アイテムキー proc.num のパラメータ
proc.num[<name>,<user>,<state>,<cmdline>]
name - プロセス名(デフォルトは「全プロセス」)
user - ユーザー名(デフォルトは「全ユーザー」)
state - 可能な値: all (デフォルト)、run, sleep, zomb
cmdline - コマンドラインによるフィルター(正規表現)
詳細は公式マニュアル 1 Zabbixエージェント | Zabbix Documentaion 2.2 をご参照ください。
トリガーの作成
ポート監視トリガーの作成
[設定]→[テンプレート] 「A_Template_App_Apache」行の「トリガー」をクリックします。
下記を設定し「追加」をクリックすればトリガーが作成されます。
---(設定箇所)---------------------------
名前:{HOST.NAME} http
条件式:{A_Template_App_Apache:net.tcp.service[tcp,,80].last()}=0
深刻度:致命的な障害
------------------------------
条件式末尾の「0」は Apache(httpd)が起動していないことを示します。
同様にHTTPSポート監視のトリガーも作成します。
---(設定箇所)---------------------------
名前:{HOST.NAME} https
条件式:{A_Template_App_Apache:net.tcp.service[tcp,,443].last()}=0
深刻度:致命的な障害
------------------------------
Apache(httpd)のプロセス数の監視トリガーの作成
下記を設定し「追加」をクリックすればトリガーが作成されます。
---(設定箇所)---------------------------
名前:{HOST.NAME} httpd process
条件式:{A_Template_App_Apache:proc.num[httpd].last()}>100
深刻度:警告
------------------------------
今回設定した条件式は Apacheのプロセス数(同時接続数)が「100」を越えるとトリガーを発生します。Apacheの最大同時接続数は httpd.conf の「MaxClients」ディレクティブで確認できますので、こちらとのころあいを見て設定するのが良いでしょう。
$ grep MaxClients /etc/httpd/conf/httpd.conf MaxClients 128 ←最大同時接続数
▽ MaxClients ディレクティブ | Apache HTTP サーバ バージョン 2.2
http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html#maxclients
トリガーの名前にはマクロが使用できます。上の設定 {HOST.NAME} はホストの表示名がトリガー名に表示されます。
条件式は、{<テンプレート名>:<アイテムキー>.<トリガー関数>}=<値> の形式です。手入力してもかまいませんが、なかなか複雑な書式ですので、条件式の「追加」ボタンをクリックして対象のアイテムの選択と関数を選択、Nにしきい値を入力して「挿入」ボタンをクリックすれば条件式を生成してくれます。
▽ サポートされているトリガー関数 | Zabbix Documentaion 2.2
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/functions
グラフの作成
[設定]→[テンプレート] 「A_Template_App_Apache」行の「グラフ」をクリックします。
「グラフ」タブを選択し、アイテムの「追加」をクリックします。
グラフに表示したいアイテムを選択し「選択」をクリックします。
下記を設定してアイテムが追加されていることを確認し「追加」をクリックすればグラフが作成されます。
---(設定箇所)---------------------------
名前:httpd process
------------------------------
スクリーンの作成
作成したグラフをスクリーンに登録します。
[設定]→[テンプレート] 「A_Template_App_Apache」行の「スクリーン」をクリックします。
---(設定箇所)---------------------------
名前:httpd
列:2
行:1
----------------------------
スクリーンセルの設定が開きますので、グラフ名の「選択」をクリックします。
グラフの名前「httpd process」をクリックします。
グラフ名が「A_Template_App_Apache: httpd process」になっていることを確認して「追加」をクリックすれば登録終了です。他の値は特に変更する必要はありませんがお好みで調整してください。
最後に作成した監視テンプレートの動作確認をして作業完了です。
コメント