zabbix 5.4系で、行っています。
webがダウンしたり、反応が遅かったりした場合、監視する手順の覚え書きです。
監視するWEBサイトを登録
監視対象のWEBサイトを登録します。登録しておくと、レスポンス速度などを定期的に計測してくれます。
↑「設定」「ホスト」「web」を選びます。
↑画面右上の「Webシナリオの作成」を選びます。
↑「名前」は、ご自身でわかりやすい名称を登録します。
「監視間隔」は、「1m」(1分)のままにしておきます。
「ステップ」というところを選びます。
↑「追加」を選びます。
↑「名前」は、適当に入れます。今回トップページをチェックするので、
「web-top-check」としました。
その下のURLは、チェックしたいホームページのURLを入れます。
↑設定されたので、「追加」を押します。
↑「Webシナリオを追加しました」と表示されました。
↑
ステップ"XXXXX" [1の1] 失敗: cURL library is required for Web monitoring support
とエラーが出たら・・・
上記は、zabbix-serverのインストール時に、「curl」のライブラリを指定しなかったためになります。
./configure --enable-server --enable-agent --with-mysql --with-libxml2
を
./configure --enable-server --enable-agent --with-mysql --with-libxml2 --with-libcurl
にして、再インストール、再起動したところ、うまくいきました
↑監視が正常に行われると、「監視データ」「ホスト」の対象ホストの一番右の「Web」に「1」がつきます(もしくは、一つ数字が増えます)。
↑さきほど、設定をした項目が表示されます。
↑測定された内容がグラフ表示されています。
WEBサイトのダウンを検知する
WEBが変だ!というとき、以下の3つを設定してみました。
通知1 ステータスコード200番以外が通知された場合。
500番のInternal Server Errorや、 404番のファイルがない! などがあります。
通知2 レスポンスタイムが長い場合
何かの処理が重くなり、画面が全く反応しない。という場合です。 アクセスが集中したり、プログラムが停止していた。などが考えられます。
通知3 そもそもサーバーが落ちていた場合
apache(httpd)や、nginxのアプリケーション自体が落ちていた場合、 前者2つの設定では、通知されないようで、違う設定が必要のようです。
通知1 ステータスコード200番以外
サイトが正常でない場合、通知をするようにしましょう。
↑対象ホストの「設定」「ホスト」から「トリガー」を選びます。
↑右上「トリガーの作成」を選びます。
↑「名前」を「web status check」とします。
「深刻度」を「重度の障害」とします。
「条件式」のところの右側の「追加」を押します。
↑「トリガー条件式」という画面が出てきます。
「選択」を選びます。
↑「R」で始まる行を探します。
「Response code for step ・・・」を選びます。
今回は、レスポンスコードをチェックします。
↑「関数」のところのプルダウンを「count()」で始まるものを選びます。
最新の「10」「カウント」と「10」を入れて、「カウント」を選びます。
「V」のところに、「200」を入れます。
「O」のところは、「ne」にします。
「結果」のところは、「>=」を選び、「5」を入れます。
「挿入」を押します。
これで、10回チェックして、応答コードが、200以外のものが、5個以上あれば、トリガー通知を行う。
という意味になります。
今回、1分間に1回チェックしますので、最低5分間は、チェックすることになります。
↑このような条件式になりました。画面下の「追加」を押します。
↑設定されました。
通知2 レスポンスタイムが長い場合
処理が重くて、反応が遅い場合に、通知するようにします。
「通知1」の途中の、トリガーの新規作成を選び、トリガー条件式のところから、違う条件にします。
↑今度は、上記の
「Response time for step ・・・」
を選びます。
↑最近10回の応答レスポンスの平均が、5秒を超えると、通知するようにします。
秒数は、小数点のある数字でも大丈夫ですので、
「0.1秒」という設定も可能です。
↑このような数式になりました。
「追加」を押して、設定を完了させます。
通知3 そもそもサーバーが落ちていた場合
サーバーがダウンしている場合、上記の2つでは検知出来ないようです。
この場合、以下の設定で、検知が出来るかと思います。
こちらも、トリガーの新規作成を選び、トリガー条件式から違う条件にして、設定を行います。
↑Failed step of scenario “WEB”.
を選びます。
↑エラーの場合、「last() 最新値」が「1」という数字が返ります。
このように設定をします。
3つすべて設定完了。
↑このような、3つの設定が有効になりました。
条件式、3つを「OR」でつなげる処理もあるかと思いますが、今回は、個別に設定をしました。