Webシナリオ監視がページ内の文字列を監視できない
【当方の環境】CentOS6.7
zabbix 2.4.6
いつもお世話になっております。
ZabbixのWebシナリオ監視で、特定のスパムブラックリストLookupサイトを監視して、このサイトで当方
のメールサーバIPアドレスがブラックリストに登録された場合に検知したいと考えております。
監視する設定として、シナリオのステップ設定に以下の設定を行ってみましたが、検索結果に表示される
「OK」または「Listed!」文字列を要求文字列に指定しても検出できません。
このLookupサイトのタイトルにある「NOTE: We just offer this free lookup service to you. We can not
remove you from any list. 」
を要求文字列に指定すると正常にこの文字列を検知できております。
試しに検索処理後にリスト表示されるブラックリストサイトのURLを以下の通り要求文字列として記載して
も、検出できません。
動的に作成されるページの文字列は検出できないなどの制限があるのでしょうか?
それともそもそも監視設定が誤っているのでしょうか?
ご教授お願い致します。
URL: http://www.blacklistalert.org/
POST: {q}=218.219.125.32&{check}=check
※WebページのソースからPOSTに必要な要素を調べて記載しています
リダイレクトをたどる:チェックあり
ヘッダーのみを取得:チェックなし
要求文字列: b.barracudacentral.org
※試しにリスト表示されるサイトのアドレスを文字列として指定
要求ステータスコード: 200
TNK - 投稿数: 4769
ZabbixのWeb監視で記載されていた情報のみを設定すると、Webブラ
ウザで見たときの、「DNS-Status of」以下の各チェック結果が応
答として返却されていないように見受けられます。
つまり、ご紹介頂いたサイトに最初にアクセスした時と同じ応答が
返却されているようです。
そこで、記載頂いた情報を良く見させて頂くとPOSTの所に、
{q}=218.219.125.32=check
と記載されているようですが、
q=218.219.125.32&check=check
と変更してみてください。
あと、10秒くらいかかるようなので、タイムアウトも長めにした方
が良いかもしれません。
misaki - 投稿数: 69
TNKさん
ありがとうございます。
タイムアウトを15秒にしていたところを長め(50秒)に設定したところ取得できるようになりました。
>{q}=218.219.125.32&{check}=check
についてはANDが投稿内容で表示できてませんでした。設定ではご指摘の内容になっておりました。
続けて申し訳ありませんが、「https://mxtoolbox.com/blacklists.aspx」のサイトでも同じく監視を行いたい
のですが、検索結果で表示される文字列がご指摘の通りタイムアウトを長め(50秒)に設定しても取得する
ことが出来ません。
【設定】
URL: https://mxtoolbox.com/blacklists.aspx
POST: {ctl00$ContentPlaceHolder1$txtToolInput}=218.219.125.32&{ctl00$ContentPlaceHolder1$btnAction}=Blacklist Check
※WebページのソースからPOSTに必要な要素を調べて記載しています
リダイレクトをたどる:チェックあり
ヘッダーのみを取得:チェックなし
タイムアウト:50秒
要求文字列: LISTED
※試しにリスト表示されるサイトのアドレスを文字列として指定
要求ステータスコード: 200
このサイトの検索結果は、ブラウザのソースの表示にて内容を確認したのですが、表示されている文字列
例えば「LISTED」や、ブラックサイトのURLなどがソースに存在しません。
力不足でこのソースを良く読み解けないのですが、このようなサイトの場合、シナリオ監視では文字列の
取得ができないのでしょうか?
TNK - 投稿数: 4769
HTTPのリクエストに対して結果の応答内にチェックしたい文字列が
含まれるようなものであれば監視できます。
新たにご質問頂いたサイトのページのソースは確認されたとおり、
チェック結果のリストは、ページのソース内には含まれていません。
恐らく、JavaScriptやAjaxなどを使用してページが構成されている
のでしょう。
そのようなWebページの場合は、そのJavaScriptで呼び出している
URLにアクセスするようなリクエストを監視の設定として記述する
ことが必要になると思います。
ブラックリストのチェックに関しては、別の方法として以下のよう
なスクリプトなどを使用する方法もあるようですのでご紹介してお
きます。
Check if my public ip is blaklisted
https://www.zabbix.com/forum/showthread.php?t=49917
ZBX-RBLCHECK
https://github.com/jjmartres/Zabbix/tree/master/zbx-templates/zbx-rblcheck
https://github.com/jjmartres/Zabbix/tree/master/zbx-scripts/rbl.check
misaki - 投稿数: 69
TNKさん
応答内に文字列が存在しない場合は監視できないんですね、ありがとうございます。
また、ご紹介頂いたブラックリストのチェック方法についても参考にさせて頂きます。
大変参考になる情報までありがとうございました。