![見出し画像](https://assets.st-note.com/production/uploads/images/98795597/rectangle_large_type_2_b1a68576a2f8bbfd92366b2be9481c25.png?width=1200)
TWSNMP FCのポーリング辞典:HTTP(S)サーバーの監視
Webブラウザーでサイトを閲覧するために作られたHTTPプロトコルは、今ではあらゆるコンピューター間の通信に使用されています。この記事ではTWSNMP FCでHTTP(S)サーバーの監視を行う方法について説明します。
動画のダイジェスト
HTTPとHTTPSについて
非常にポピュラーなプロトコルなので知らない人はいないと思いますが、復習したい場合は、
とかを見てください。
TWSNMP FCのWebサーバー監視のポーリングの種類にはHTTPとHTTPSのモードがあります。基本的には暗号通信の有無の違いですが、HTTPモードでも暗号通信(HTTPS)のポーリングができます。この場合サーバーが提示する証明書の検証を行わないで応答だけで判断するポーリングになります。HTTPSモードの場合は、サーバーの証明書を検証するので安全でないサーバーはエラーと判断します。
HTTPモードではサーバーとの通信の安全性は確認しないがHTTPSモードでは安全性がない場合は通信しないという違いです。
HTTPポーリング設定
TWSNMP FCでhttpモードのポーリングを行う場合は、
![](https://assets.st-note.com/img/1677266714962-me79ugPorN.png?width=1200)
のように設定します。
パラメータにアクセスするURLを指定します。
種別:
HTTPを選択します。
モード:
空欄の場合は、httpモードです。httpsモードを指定するとサーバー証明書を検証します。
パラメーター:
アクセス先のURLを指定します。
https:/www.twise.co.jp/index.htmlなど
抽出パターン:
応答の文字列から特定の値を検索して取得するための抽出パターン名を指定します。空欄の場合は、データを抽出しません。
判定スクリプト:
HTTPの応答コード、応答時間、検索抽出フィルターで取得した値をJavaSctriptのプログラムで判断して障害判定します。空欄の場合は、
応答の有無で判断します。
抽出パターン
抽出パターンは、「システム設定」ー「抽出パターン」で登録したものから選択します。
![](https://assets.st-note.com/img/1677231450614-9KO1JIgEcy.png?width=1200)
抽出の方法はgrok
を利用しています。自分で編集して登録できます。
の時に作ったhttps://openweathermap.orgの応答から気象情報を取得する抽出パターンをサンプルで組み込んであります。
![](https://assets.st-note.com/img/1677231832908-Q3eYfEXxq6.png?width=1200)
のような定義です。
{"coord":{"lon":139.5577,"lat":35.8578},"weather":[{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03n"}],"base":"stations","main":{"temp":6.49,"feels_like":4.14,"temp_min":2.8,"temp_max":9.41,"pressure":1015,"humidity":84,"sea_level":1015,"grnd_level":1014},"visibility":10000,"wind":{"speed":3.23,"deg":347,"gust":7.78},"clouds":{"all":25},"dt":1677266133,"sys":{"type":2,"id":2044139,"country":"JP","sunrise":1677273497,"sunset":1677313919},"timezone":32400,"id":6940394,"name":"Fujimi","cod":200}%
のような応答から気温などを抽出できます。
これを使ったポーリングの設定は
![](https://assets.st-note.com/img/1677231895701-nG6m6lUaVZ.png?width=1200)
のようになります。これで、気温が35以上になるとノードが赤くなります。
判定スクリプト
検索抽出フィルターを使用しない場合は、判定条件のJavaScriptで次の変数が使用できます。
code
HTTPの応答コード
status
HTTPの応答ステータス文字列
rtt
応答時間
検索抽出フィルターを使用すれば、抽出した変数を利用することができます。先程の気象情報の例だとtempです。
ポーリング結果
単純なWebサーバー監視の場合は、
![](https://assets.st-note.com/img/1677231247615-2qome0ncUv.png?width=1200)
のようなポーリングのログになります。応答時間をグラフ表示すると
![](https://assets.st-note.com/img/1677231295922-PikE5s4nE4.png?width=1200)
のようになります。
検索抽出フィルターを使った気象情報の場合は、
のように、気温や湿度を取得できます。
2023/2/18-2/24の体感気温のグラフは
![](https://assets.st-note.com/img/1677232211229-cqF3npW4TA.png?width=1200)
のように表示できます。温かい日と寒い日がよくわかります。
AI分析もできます。
![](https://assets.st-note.com/img/1677232318460-bAhiGTm5bM.png?width=1200)
応答時間だけでなく気温や湿度なども含めて分析していますが、何を異常と言っているかわかりません。(詳しくみていないという意味です。)
テンプレート
この記事で紹介したポーリングのテンプレートは、
![](https://assets.st-note.com/img/1677232430965-InHKg4RkLB.png?width=1200)
です。
定義は、
{
"Name": "HTTP接続",
"Type": "http",
"Mode": "",
"Params": "URLを指定",
"Level": "low",
"Descr": "HTTP接続監視",
"AutoMode": "80,443,2181,8080,8888"
},
{
"Name": "HTTPS接続",
"Type": "http",
"Mode": "https",
"Params": "URLを指定",
"Level": "low",
"Descr": "HTTPS接続監視",
"AutoMode": "443,2181,8080,8888"
},
{
"Name": "気象情報",
"Type": "http",
"Mode": "https",
"Params": "https://api.openweathermap.org/data/2.5/weather?q=地域,jp&units=metric&APPID=取得したAPIキー",
"Extractor": "OPENWEATHER",
"Script": "temp > 35.0",
"Level": "off",
"Descr": "気象情報の取得のサンプル",
"AutoMode": "disable"
},
気象情報のポーリングに関しては、地域とAPIキーを変更する必要があります。
気象情報のAPIキーの取得は、
を参照してください。
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。