TWSNMPポーリング辞典:HTTP(S)サーバーをモニタする
Webブラウザーでサイトを閲覧するために作られたHTTPプロトコルは、今ではあらゆるコンピューター間の通信に使用されています。この記事ではTWSNMPでHTTP(S)サーバーの監視を行う方法について説明します。
HTTPとHTTPSについて
非常にポピュラーなプロトコルなので知らない人はいないと思いますが、復習したい場合は、
とかを見てください。
TWSNMPにはポーリングの種類にHTTPとHTTPSがあります。基本的には暗号通信の有無の違いですが、HTTPモードでも暗号通信(HTTPS)のポーリングができます。この場合サーバーが提示する証明書の検証を行わないで応答だけで判断するポーリングになります。HTTPSモードの場合は、サーバーの証明書を検証するので安全でないサーバーはエラーと判断します。
HTTPモードではサーバーとの通信の安全性は確認しないがHTTPSモードでは安全性がない場合は通信しないという違いです。
ポーリング設定
TWSNMPでhttpモードのポーリングを行う場合は、
のように、種別にHTTPまたはHTTPSを選択します。
定義欄の書式は、
URL|検索抽出フィルター|判定条件
のように指定できます。
URL:
アクセス先のURLを指定します。
https:/www.twise.co.jp/index.htmlなど
検索抽出フィルター:
応答の文字列から特定の値を検索して取得するためのフィルター名を指定します。省略可能です。
判定条件:
HTTPの応答コード、応答時間、検索抽出フィルターで取得した値をJavaSctriptのプログラムで判断して障害判定します。省略可能です。
検索抽出フィルター
検索抽出フィルターは、grok
を利用した設定ファイルをマップ設定
で読み込むようにしておく必要があります。この設定ファイルの説明を書かなかればと思っていますが。まだ書いていませんでした。すみません。
簡単に書いておくと、
パターン名|`grokの抽出文`
パターン名|`grokの抽出文`
という書式のファイルです。
で作ったhttps://openweathermap.orgの応答から気象情報を取得する場合は、
OPENWEATHER|`"weather":.+"main":\s*"%{WORD:weather}".+"main":.+"temp":\s*%{BASE10NUM:temp}.+"feels_like":\s*%{BASE10NUM:feels_like}.+"temp_min":\s*%{BASE10NUM:temp_min}.+"temp_max":\s*%{BASE10NUM:temp_max}.+"pressure":\s*%{BASE10NUM:pressure}.+"humidity":\s*%{BASE10NUM:humidity}.+"wind":\s*{"speed":\s*%{BASE10NUM:wind}`
のような書式です。これは組み込んであるので、OPENWEATHERという名前で利用できます。ポーリングの定義に、
https://api.openweathermap.org/data/2.5/weather?q=地域,jp&units=metric&APPID=取得したキー|OPENWEATHER|temp < 35.0
のように記述します。これで、気温が35以上になるとノードが赤くなります。
判定条件
検索抽出フィルターを使用しない場合は、判定条件のJavaScriptで次の変数が使用できます。
code
HTTPの応答コード
status
HTTPの応答ステータス文字列
rtt
応答時間
検索抽出フィルターを使用すれば、抽出した変数を利用することができます。先程の気象情報の例だとtempです。
ポーリング結果
単純なWebサーバー監視の場合は、
のようなポーリングのログになります。応答時間をグラフ表示すると
のようになります。
検索抽出フィルターを使った気象情報の場合は、
のように、基本や湿度を取得できます。
11月の体感気温のグラフは
のように表示できます。AI分析もできます。
応答時間だけでなく気温や湿度なども含めて分析していますが、何を異常と言っているかわかりません。(詳しくみていないという意味です。)
サンプルテンプレート
この記事で紹介したポーリングのテンプレートは、
からダウンロードできます。
気象情報のポーリングに関しては、地域とAPIキーを変更する必要があります。
気象情報のAPIキーの取得は、
を参照してください。
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。