備忘録/にわかエンジニアが好きなように書く

個人的にとりあえず仕組みを知るためにとりあえず動くまで構築や動作をみただけの単なる操作ログです。個人用の備忘録となり、最新の導入手順は個別に確認してください。 ※変な内容や間違いを書いているなどありましたらコメントやご指摘いただけると幸いです。

ZabbixのWebモニタリングを使用したサイト接続性監視を行う

目的

内部ネットワークからInternet(Webサイト)への接続性をZabbixのWeb監視機能を用いて簡易的な監視を実現させ、グラフによる可視化を行う。

多様なルートからInternet接続性の監視を行うことによりProxyサーバの正常性や通信経路、直接インターネット接続可否などの外形監視を行う。

 

■サイト接続性を可視化した結果

いろいろと分析は判断材料となるのでいい感じに動いてくれてる。

・不通状態が発生したタイミングで異常のある経路と正常な経路が判断可能だった。

 ->インターネットの出口での問題ではなく内部の特定ルート or システム異常のためだと雰囲気で判断できるので、切り分けの際に役立つかも。

 ->影響のありそうな範囲や使用ユーザを絞り込める。

・不定期にレスポンスが遅くなるタイミングがある経路があることが分かった。

 ->とりあえず、他ADを使用したルートも監視対象にすることにより、サーバへの負荷や性能分析ができる。

f:id:pocket01:20200915133519p:plain



※改善必要:

・Webモニタリングのサンプルが少ないためサイト障害がネットワーク障害、DNS障害なのかは切り分けできない。

・グラフが見にくいので名前の付け方や色とか多々カスタマイズが必要だった。

 ・アラート機能をつけて異常時や不安定時の通知は必要。(条件は運用後に適宜修正)

構成

f:id:pocket01:20200822125616p:plain

 

環境

Zabbix / Zabbix 5.0.2

Proxy1 / IP;172.16.200.61

               Squid Cache: Version 4.4

Proxy2  / IP:172.16.200.62

               Squid Cache: Version 3.5.20

AD  / Windows Server 2016 

         domain : my.home

        (NTLM認証ユーザ)  User : test01  . pass : Passw0rd

 

設定概要

ZabbixでWebモニタリングを使用するには、Webシナリオの定義を行い、シナリオには1つ以上の「ステップ」で構成されます。

シナリオから収集される情報には次のタイプが含まれ、各取得したデータをグラフで表示されま。

 - 平均ダウンロード速度

 - エラーが発生したステップの数

 - エラーメッセージ

 - レスポンスコード

 - レスポンスタイム

 

内容はグラフ表示となっているが、

・シナリオを作り込むことで多様な監視ができる。

・トリガー設定を行うことで異常時に通知することが可能となる。

・Webhookも使うことでチャット機能やCIツールとの連携もできるかも。

参考

Zabbixドキュメント(6 WEBシナリオ)

https://www.zabbix.com/documentation/current/manual/web_interface/frontend_sections/configuration/hosts/web

Zabbixドキュメント(9. WEBモニタリング)

https://www.zabbix.com/documentation/current/manual/web_monitoring

実施方法

シナリオ作成の準備

ホスト作成

[設定] > [ホスト] のホスト画面から右上にある[ホストの作成]を選択します。

f:id:pocket01:20200822191808p:plain

 

構成画面に移動するので必要なパラメータを入力し、下の「追加」からホスト追加を行います。

 ホスト名:WebResponsecheck

 表示名:WebResponsecheck

 グループ:SiteMonitor ※defaultで作られているグループ

 インターフェース:(初期値)

f:id:pocket01:20200822192011p:plain

applicationの登録

作成したホストの「アプリケーション」をクリックします。

f:id:pocket01:20200822192507p:plain

 

画面の右上にある[アプリケーションの作成]ボタンをクリックします。

f:id:pocket01:20200822192603p:plain

 

[ホストアプリケーション]画面で、名前を入力して新しいアプリケーションを作成します。

f:id:pocket01:20200822192614p:plain

アプリケーション作成が完了する。

f:id:pocket01:20200822192646p:plain

Webシナリオ作成

Webシナリオ作成

ホストの「Web」をクリックするか、ホスト画面の「Webシナリオ」タブをクリックします。

f:id:pocket01:20200822193006p:plain

f:id:pocket01:20200822193038p:plain

 

画面の右上にある[Webシナリオの作成]ボタンをクリックします。

f:id:pocket01:20200822193420p:plain

シナリオ作成

構成画面に移動するので必要なパラメータを入力し、下の「追加」からホスト追加を行います。

 名前:(任意)

 アプリケーション:上記で作成したアプリケーションを選択

 監視間隔:1m   ※ 1分間隔  ( m : 分 , s :秒)  

 試行回数:1

   エージェント:(任意) IEなどブラウザの設定は可能。

 HTTPプロキシ:(必要に応じて設定する)

アクセスログ確認時に監視用ログを除外する必要がある場合はzabbixや任意の文字列で指定するのが無難。(エージェントによるアクセスコントロールを行っている場合は該当するエージェントの選択や指定が必要)

f:id:pocket01:20200822193438p:plain

 

※プロキシ指定時の設定方法① 認証無

f:id:pocket01:20200822193545p:plain

※プロキシ指定時の設定方法② ユーザ認証がある場合

f:id:pocket01:20200822193557p:plain

ステップ作成

シナリオの入力が終わると「ステップ」のタブに移動し、「追加」をクリックする。

f:id:pocket01:20200822193502p:plain

 

構成画面に移動するので必要なパラメータを入力し、下の「追加」からステップの追加を行います。

 名前:(任意)

 URL:対象サイトのURLを記入

 リダイレクトをたどる:チェックを入れる  

 取得モード:ボティとヘッダー

 タイムアウト : 5s

 要求ステータスコード:200

f:id:pocket01:20200822193512p:plain

 

ステップ作成後に、「追加」をクリックしてWebシナリオの設定を完了します。

f:id:pocket01:20200822193525p:plain

確認

設定後のWebシナリオを確認

f:id:pocket01:20200822193612p:plain

取得データ確認

[監視data] > [最新データ] を選択しデータ取得ができているのかを確認します。

f:id:pocket01:20200822193634p:plain

 

データが取得できているなら、グラフ作成/スクリーンを行います。

※インターネット接続パターンごとのでグラフを作成してスクリーンから確認したグラフ

f:id:pocket01:20200822193647p:plain

 

ex)取得できなかった場合の表示

取得できないことが正常な場合、値が取得できたがFailが0となったタイミングをtriggerにして検知させる必要がある。

取得データは、取得できていたときの値が表示されるため取得できていなくても値が表示される。※最新のチェック時刻を確認する必要がある。

f:id:pocket01:20200822193730p:plain

グラフでの表示

f:id:pocket01:20200822193701p:plain

 

※深夜帯の一時的な接続不良時のグラフ(プロバイダーが何かしてた?)

f:id:pocket01:20201220105806p:plain

※グラフから接続が出来なくなる前に不安定な状態が発生後に接続不可となり、朝方に接続可能なり復旧していることが分かる。