ZabbixZabbixには「Web監視」(ウェブ監視)という機能があり、Webサイトの稼働を様々な視点で定期的にチェックできます。システム監視を行う際に、エンドユーザー視点でWebサイトが機能している事を監視できる便利な機能です。以下のような機能があり、すべてWebブラウザから設定できます。指定したWebページの応答コードを監視できる指定したWebページに表示される文字列を監視できる複数のWebページをステップとしてまとめて、一つのシナリオとして監視できるシナリオを実行するユーザーエージェントの指定ができる監視するWebページに対して、GETやPOSTでの変数設定ができる一覧のWeb操作をシナリオとして定義設定して監視できますので、Webシナリオ監視的な感じで利用できます。当社のラボサイトをWeb監視を使って監視してみます。ログイン認証機能がありますので、一連のログイン処理を監視する事とします。次のようなシナリオでWeb監視を設定する事にします。正常にログインできた事を確認(ログイン先URLに表示される文字列をチェック)認証が必要なページの表示確認(文字列をチェック)ログアウト処理ログアウトしている事を確認(文字列をチェック)このシナリオを例えば5分間隔で繰り返し実行する事によって、サイトの正常性を定期的に監視できる事になります。設定の流れは以下のようになります。1.Web監視の設定画面を表示まず、「設定」ー「ホスト」画面から、Web監視を設定したいホストの「ウェブ」リンクをクリックします。リンク先の「ウェブ監視の設定」画面で「シナリオの作成」ボタンを押下します。すると、以下の「ウェブ監視の設定」画面が表示されます。表示画面で「シナリオ」タブと「ステップ」タブがありますが、まずは「シナリオ」タブで必要事項を設定する事にします。「更新間隔」で監視を行う間隔、「エージェント」でユーザーエージェントの指定ができます。次に「ステップ」タブを表示します。「追加」リンクをクリックします。ステップの設定フォームは以下のような感じです。必要な分だけ、ステップを追加する事が出来ます。6個のステップを追加した際は以下のような表示になります。設定が終わったら、「保存」ボタンを押下します。4.監視状態の確認Web監視のステータスは「監視データ」ー「ウェブ」画面から確認できます。シナリオ名のリンク(上画像の赤丸)をクリックすると、ウェブ監視のステータス画面が開き、シナリオ実行結果としての各種データを確認できます。Web監視が機能しており、監視対象サイト(弊社ラボサイト)が正常に稼働している事が確認できます。Web監視を用いた設定例となります。便利な機能ですので、ぜひご利用をご検討されてはいかがでしょうか。システム監視システム基盤のクラウド導入が進む現在では、今まで以上に迅速な対応が求められています。DevOpsを実践する上でも、迅速なシステム監視、状況分析が必要になっています。Zabbixは、クラウド時代、DevOps時代に適した監視ツールです。Zabbixこんにちは!ファンブライト山下です。構築したWebサイトを運用されている方(会社)は多いと思います。動かすだけであれば構築は簡単ですし、SEO対策としても優れたCMSですので恩恵を得ている方(会社)が多いと思います。表示速度が遅いという箇所は難点なのかなと思います。キャッシュ系のプラグインを利用したり、apacheからNginxに乗せ換えたりといったところが表示速度改善の対策になるかと思います。私もWordPressを利用しており、表示速度について悩んだ時期があります。今は対策は取っていますが、一度表示速度について問題認識を持ちましたので、今はサイトを定期的にZabbixで監視し、取得したパフォーマンスデータ(Web監視)を時々確認するような運用をしています。パフォーマンスデータだけではなく、LAMP環境(Linux、apache、MySQL、php)としての監視も一応行っています。Zabbixを使うと監視導入が非常に楽なので、ついつい色々な監視を実装しがちです。うれしい悲鳴だと思いますが、数が多い場合は、該当のLAMP環境やZabbix環境でのそれなりの負荷も気にしたほうが良さそうです。「最低限、この監視項目はLAMP環境の監視として設定しておきたいかな。」というような基準は必要だと思います。監視項目数で10個から20個ぐらいに抑えるイメージで、以下にピックアップしてみました。指定テキストログで指定キーワードの出現を監視この監視項目にプラスして、Web監視でパフォーマンスデータを取得する感じです。(エンジニアの)みなさんはいかがお考えでしょうか?(いろんなご意見があるかと思います!)ご参考まで。Linux、Ubuntuなどを監視する必要がある場合、どのような監視項目を選択すれば良いか、悩まれるケースもあるかと思います。該当OSでどのようなアプリケーション/サービスを動かす必要があるのかによって、必要となる監視項目は決まります。OSの観点で導入しておくべき監視項目もあると思いますので、今回は「デフォルトで導入しておきたい監視項目」という観点で、ピックアップさせていただきます。死活監視(Ping監視)OSが生きているのか死んでいるのかを監視する項目として、ICMPでの死活監視(Ping監視の事)を行う事はとても多いです。リソース監視OSが使っている様々なリソースを監視して、パフォーマンス状況やキャパシティ状況などを把握するケースも多いです。CPUリソース監視の該当リソースとしては、まずCPUがあります。CPUの監視項目は非常に多くありますが、CPU稼働率(もしくは、CPUアイドル率)と、CPU負荷(ロードアベレージ)を監視しておくと、該当OSにおけるCPU状況が把握できます。メモリリソース監視の該当リソースとしては、メモリも重要です。メモリ使用率については、Linuxの場合は把握が難しい場合がありますが、重要な項目となります。スワップメモリの使用率も重要です。スワップ領域が使われだすとパフォーマンスが落ちるので、状況を把握できる状態にしておきます。ディスクリソース監視の該当リソースとしては、ディスクも該当します。ディスク領域の使用率を監視しておき、常に一定以上の空き領域を確保しておくなどの対策を取る事も必要です。プロセス監視OS上で稼働させている様々なプロセスを監視しておく事もお勧めします。プロセス監視は状況によってはアテに出来ない場合もあります。デッドプロセスが残っているケースや、スレッドアプリの場合などは、プロセス監視に大きな意味を持たせる事が出来ない場合もあります。いった場合は、後述する「サービス監視」や「ログ監視」などでカバーできるケースもあります。サービス監視OS上で稼働しているプロセスが提供しているサービスが使える状態である事を監視する「サービス監視」は、死活監視と同じようにとても重要です。クライアントからの要求に対して、サービスとして正常な応答が出来ていれば、最低限サービス提供できていると判断できるケースが多い為です。WebサーバーであればHTTP応答が正常に返ってくる事を監視する、などが該当します。稼働しているアプリケーションプロセスなどが蓄積しているテキストログなどを監視する事によって、アプリケーションのエラーなどを検知する事が可能になります。エラーと判断できるキーワードがテキストログに出現しないかどうかを監視する形になります。ここまで挙げた監視項目以外にも多くの監視すべき項目はあるかと思います。考え方次第ですので、Ping監視だけを導入したり、WebサーバであればHTTP応答監視だけを導入する、といったケースもあるかと思います。ここでは「デフォルトで導入しておきたい監視項目」としてピックアップさせていただきました。結局は、該当OSの役割やお客様側の考え方によりますが、バランスの良い、運用しやすい監視項目を導入する事が一番良いと思います。