WEBサイトのレスポンスタイム(ユーザーの待ち時間)を監視するためのテンプレートを ZabbixのWeb監視機能を使って作成します。レスポンスタイムはWEBサイトにおいて特に重要な指標です。他の指標のロードアベレージやI/O負荷が高かったとしても、レスポンスタイムが早ければWEBサイトに訪れるユーザーにはなにも影響がありません。しかしロードアベレージやI/O負荷が正常であっても、レスポンスタイムが遅ければユーザーはそのWEBサイトの訪問をあきらめてしまう可能性があるからです。(とはいえロードアベレージがぐんぐん上がっているとサーバ管理者としてはドキドキしてしまうものです)
WEBサイトのレスポンスタイムは curl コマンド等で確認することができます。
$ curl -s -o /dev/null -w "%{time_total}\n" http://example.com/ 0.221
レスポンスタイム -w "%{time_total}\n" のみを表示させるため -s オプションで進捗状況を非表示にし、-o オプションでレスポンスデータを破棄しています。curl コマンドについては下記のサイトを参考にさせて頂きました。
▽ cURLの出力結果をカスタマイズする | SIguniang's Blog
https://siguniang.wordpress.com/2014/12/10/timing-details-with-curl/
レスポンスタイムがWEBサイトにあたえる影響
2012年12月の記事ですが、レスポンスタイム遅延による損失についてこんな記事を見かけました。
損失はどのぐらいか、実際の数字でみてみよう。読み込み時間が1秒遅くなるとページビューは11%減少、顧客満足度は16%下がり、コンバージョン率は7%減少する。Amazonのような巨大なサイトの場合、1秒遅いことが年間16億ドルの機会損失になるとのことだ。
▽ 3秒が許容範囲 - Webサイトのパフォーマンスが重要な理由 | マイナビニュース
http://news.mynavi.jp/news/2012/12/11/025/
このサイト(あぱーブログ)もレスポンスタイムが早いとは言えないので改善したいものです(^^;)
テンプレートの作成
[設定]→[テンプレート]→[テンプレートの作成]をクリックします。
[テンプレート]タブを選択 下記を入力し「追加」をクリックすればテンプレートが作成されます。
テンプレート名:A_Template_WEB_Check グループ:A_Templates グループを作成する
アプリケーションの作成
[設定]→[テンプレート] 「A_Template_WEB_Check」行の「アプリケーション」をクリックします。
名前に「Web checks」を入力し「追加」をクリックすればアプリケーションが作成されます。
Web監視の設定
Web監視の設定でレスポンスタイムを計測するWEBサイトのURLを指定するのですが、テンプレートで直接URLを設定してしまうと異なるホストに流用出来なくなってしまいます。そこで監視対象のURLはホストごとに設定できるユーザーマクロによって指定します。
[設定]→[テンプレート] 「A_Template_WEB_Check」行の「Web」をクリックします。
---(設定箇所)---------------------------
名前:WEB監視
アプリケーション:Web checks
エージェント:「その他」を選択して「zabbix」を入力
------------------------------
エージェントで指定した値「zabbix」は、Apacheのアクセスログのユーザーエージェントに表示されます。Zabbixの監視によるログと通常のアクセスを見分けるための設定です。
・Apacheのアクセスログ
172.16.1.10 - - [09/Dec/2014:20:33:53 +0900] "GET / HTTP/1.1" 200 59957 "-" "zabbix" ←(Zabbixサーバからのアクセス) 172.16.1.1 - - [09/Dec/2014:20:34:48 +0900] "GET / HTTP/1.1" 200 61135 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5"
続いて「ステップ」タブを選択しステップの「追加」をクリックします。
---(設定箇所)---------------------------
名前:{$URL}
URL:{$URL}
要求ステータスコード:200
------------------------------
{$URL} にはホストのマクロで指定したURLが入ります。
ステップが設定されていることを確認し「追加」をクリックします。
シナリオやステップを作成すると、いくつかの新規アイテムが自動的に監視対象として追加されます。テンプレートの状態だとアイテムが追加されているのが分かりづらいのですが、テンプレートをホストに適用してみるとアイテムが自動追加されていることを確認できます。
追加されるアイテムなどの詳細は公式マニュアルをご参照ください。
1 Web監視アイテム | Zabbix Documentation 2.2
https://www.zabbix.com/documentation/2.2/jp/manual/web_monitoring/items
トリガーの作成
[設定]→[テンプレート] 「A_Template_WEB_Check」行の「トリガー」をクリックします。
下記を設定し「追加」をクリックすればトリガーが作成されます。
---(設定箇所)---------------------------
名前:{HOST.NAME} {$URL} WEBレスポンスタイム
条件式:{A_Template_WEB_Check:web.test.time[WEB監視,{$URL},resp].count(#10,3,"gt")}>5
深刻度:警告
------------------------------
トリガーの名前にはマクロが使用できます。上の設定 {HOST.NAME} はホストの表示名が、{$URL}は監視対象のURLがトリガー名に表示されます。
条件式は、{<テンプレート名>:<アイテムキー>.<トリガー関数>}=<値> の形式です。今回設定したトリガー条件式は、直近10個の値のうちWEBサイトのレスポンスタイムが3秒を5回超えたらトリガーが発生します。
▽ サポートされているトリガー関数 | Zabbix Documentaion 2.2
https://www.zabbix.com/documentation/2.2/jp/manual/appendix/triggers/functions
グラフの作成
[設定]→[テンプレート] 「A_Template_WEB_Check」行の「グラフ」をクリックします。
「グラフ」タブを選択し、アイテムの「追加」をクリックします。
グラフに表示したいアイテムを選択し「選択」をクリックします。
下記を設定してアイテムが追加されていることを確認し「追加」をクリックすればグラフが作成されます。
---(設定箇所)---------------------------
名前:WEBレスポンスタイム
アイテム:A_Template_WEB_Check: Response time for step "{$URL}" of scenario "WEB監視".
------------------------------
スクリーンの作成
作成したグラフをスクリーンに登録します。
[設定]→[テンプレート] 「A_Template_WEB_Check」行の「スクリーン」をクリックします。
---(設定箇所)---------------------------
名前:web
列:2
行:1
----------------------------
スクリーンセルの設定が開きますので、グラフ名の「選択」をクリックします。
グラフ名が「A_Template_WEB_Check: WEBレスポンスタイム」になっていることを確認して「追加」をクリックすれば登録終了です。他の値は特に変更する必要はありませんがお好みで調整してください。
最後に作成した監視テンプレートの動作確認をして作業完了です。
コメント
[…] あぱーブログ Zabbix 3-13. WEBサイトのレスポンスタイム 監視テンプレートの設定 https://blog.apar.jp/zabbix/1798/ […]