Nagios携帯電話のバランス監視

それは何のためですか?



家族の携帯電話の数が3台を超えると、残高を監視し、残高が重要なポイントに近づいたときに警告するという問題が発生します。 天びんを監視するためのツールはたくさんありますが、なぜ必要なNagiosを手元に置いているのに庭に悩まされるのですか(私が自宅に自分の監視サーバーを持っているのは、たまたまそうです、その主なタスクは、私が時間後に管理する組織サーバーのステータスを監視することです) このソリューションは、企業の個人アカウントの残高を監視するのにも適しています。



小さな余談



私たちは、モバイル事業者のサーバーへのhttp / httpsリクエストを介して監視します。 このためには、curlライブラリが接続されたphpが必要です。 Nagiosは監視に、Mrtgはグラフに使用されます。 このバージョンでは、MTSとBeelineの2つのモバイルオペレーターで作業が実装されます。 奇妙なことに、Beelineの問題は最も少ないことが判明しました。承認要求を作成し、次に残高要求を作成し、HTML出力を解析します。 MTSでは、地域ごとに独自のドメイン名「インターネットアシスタント」を使用しているため、アルゴリズムに計画外のアクションがいくつか追加されることがわかりました。 この問題は、電話番号のプレフィックス、テレフォニーオペレータープレフィックスのデータベースへのアクセスを提供するMTTインターネットリソースによって地域を計算することで解決しました。 リージョンを受け取った後、MTS WebサイトからJavaスクリプトを解析し、HTML出力の承認と解析を行うことにより、「インターネットアシスタント」のドメイン名を取得します。 ここでメガホンをねじ留めすることもできますが、まだ取り付けられていません。



だから、理論から実践へ



Nagiosの設定に集中するつもりはありません。Habrの住民はこれに問題はないと思うし、いわば、最もおいしいものに移ります。 ここから最新のスクリプトダウンロードし、解凍します。 3つのファイル、mobile-api.php、nagios-check-mobile-balance.php、mrtg-mobile-balance.phpを取得します。 名前から、ファイルの割り当て、Nagiosプラグイン、MRTGスクリプト、およびバランスを取得するための関数を含むファイルは明確です(可能な限りコメントを外そうとしました)。



ファイルを所定の場所にコピーして権利を割り当てる



cp ./mobile-balance-api.php /usr/local/lib/ cp ./nagios-check-mobile-balance.php /usr/lib/nagios/plugins/check_mobile_balance.php cp ./mrtg-check-mobile-balance.php /usr/lib/mrtg2/check_mobile_balance.php chmod +x /usr/lib/nagios/plugins/check_mobile_balance.php chmod +x /usr/lib/mrtg2/check_mobile_balance.php
      
      







パフォーマンスを確認する



まず、/ usr / local / lib / mobile-balance-api.phpの定数を修正する必要があります

 DEFINE("CACHE_PATH", "/var/cache/balance"); #     DEFINE("COOKIE_FILE_NAME", CACHE_PATH . "/cookie.txt"); #     cookie DEFINE("OPERATOR_AUTO_DETECT", True); #    DEFINE("AUTO_SAVE_DATA", True); #        DEFINE("BAD_ATTEMPTS_COUNT", 3); #   ,   
      
      





次に、ファイル/usr/lib/nagios/plugins/check_mobile_balance.phpの定数「MOBILE_API」のパスを修正する必要があります

 DEFINE("MOBILE_API", "/usr/local/lib/mobile-balance-api.php");
      
      





「インターネットアシスタント」にアクセスするためのパスワードをまだお持ちでない場合は、次の手順を実行してください。



テスト実行スクリプト

 /usr/lib/nagios/plugins/check_mobile_balance.php -w 20 -c 10 -n 9128141111 -p 123456
      
      





答え

BALANCE OK- +79128141111 = 55 rub





パスワードが正しくない場合、またはMTSホストがダウンしている場合(これは非常に頻繁に発生するため、Beelineの方が優れています)、スクリプトは0番目の残高を返します。



Nagiosをカスタマイズする



ファイル/etc/nagios/objects/commands.cfgを編集し、新しいコマンド「check_mobile_balance」を追加します

define command{

command_name check_mobile_balance

command_line $USER1$/check_mobile_balance.php -w 30 -c 10 -n $ARG1$ -p $ARG2$

}






-w 30はルーブルの警告しきい値です

-c 10はルーブルの重要なしきい値です



次に/etc/nagios/objects/localhost.cfgを編集してチェックを追加します

define service{

use local-service

host_name localhost

service_description Balance +79128141111

check_command check_mobile_balance!9128141111!123456

}






9128141111は電話番号、123456はモバイルアシスタントのパスワードです。



次に、Nagiosの設定を再読み込みします: service nagios reload



と結果を楽しむためにWebインターフェイスに移動します:





グラフ



プロットには、MRTGを使用することを好みます。 これは、軽量で構成が簡単なアプリケーションです。 MRTGがインストールされ、構成され、動作していることを前提としています。 ファイル/usr/lib/nagios/plugins/check_mobile_balance.phpの定数「MOBILE_API」を確認します。 /etc/mrtg/mrtg.cfgを編集して、次の行を追加します。

Target[mb]: `/usr/lib/mrtg2/check_mobile_balance.php 9128141111 123456`

MaxBytes[mb]: 500

MaxBytes2[mb]: 75

Title[mb]: Mobile balance +79218141111

Options[mb]: unknaszero,gauge,growright,nopercent,transparent,noborder,pngdate,noinfo

AbsMax[mb]: 500

YLegend[mb]: Rub

ShortLegend[mb]: R

Legend1[mb]: Rub

Legend2[mb]: Rub

LegendI[mb]: Rub

LegendO[mb]: Rub

PageTop[mb]: Mobile balance +79218141111






envのテスト
 LANG=C mrtg /etc/mrtg/mrtg.cfg --logging /var/log/mrtg.log > /dev/null 2>&1
      
      





何が起こったのか見てみましょう。





多くの行があるので、スクリプトをリストするのは意味がないと思います。 念のため、 ここにそれらへのリンクを複製します



合計



実際、このスクリプトは普遍的なソリューションであり、携帯電話のバランスだけでなく、たとえばrutrackerの評価やHabréのカルマも監視できます。



Habréでカルマを監視する



Habrでカルマを監視するには、/ usr / local / lib / mobile-balance-api.phpファイルの$ manual_detect変数にユーザー「habrahabr.carma.yozhiks」(招待者に敬意を表すためにユーザーyozhiksがランダムに選択されなかった)を明示的に登録する必要があります。例えば:

 $manual_detect = array ( "9128141111" => array("url" => "https://ihelper.ural.mts.ru/SelfCarePda/Security.mvc/LogOn", "operator" => "mts"), "9061971111" => array("url" => "https://uslugi.beeline.ru/loginPage.do|https://uslugi.beeline.ru/vip/prepaid/refreshedPrepaidBalance.jsp", "operator" => "beeline"), "habrahabr.carma.yozhiks" => array("url" => "http://yozhiks.habrahabr.ru", "operator" => "habrahabr.carma") );
      
      





「habrahabr.carma」演算子を$演算子変数に追加します。

 $operators = array( "mts" => array("name" => ' " "', "result" => "<br/>: <strong><strong>|</strong> .< /strong>"), "beeline" => array("name" => ' "-"', "result" => '<td class="tabred">|& nbsp;'), "habrahabr.carma" => array("name" => ' ', "result" => '< span class="mark"><span>|</span></span>') );
      
      





チェック:
 /usr/lib/nagios/plugins/nagios-check-mobile-balance.php -w 30 -c 10 -n habrahabr.carma.yozhiks -p 1
      
      





回答: BALANCE OK- +7habrahabr.carma.yozhiks = 58 rub





もちろん、このような監視を行うには、スクリプトをわずかに変更する必要がありますが、全体的にはかなりうまくいきました。



ご清聴ありがとうございました。



PS今日、スクリプトのテスト時に、MTT Webサイトの問題が特定されました。 問題を回避するには、テンプレートによって番号設定を$ manual_detect変数に手動で書き込みます。



PPS Nano MRTG HowTo for Windows

ダウンロード:

windows.php.net/download - php 5.3.5

www.activestate.com/store/activeperl/download - perl 5.12.3

oss.oetiker.ch/mrtg/pub - mrtg 2.17








インストール/アンパック:

perl c:\perl

mrtg c:\mrtg

php5 c:\php

mobile-balance-api.php mrtg-check-mobile-balance.php c:\mrtg\bin\








php.iniのエラー出力をオンにしますdisplay_errors = On



およびerror_reporting = E_ALL & ~E_NOTICE



for every fireman。



定数を修正します。

mobile-balance-api.php

DEFINE( "CACHE_PATH"、 "c:\ Tmp");

mrtg-check-mobile-balance.php

DEFINE( "MOBILE_API"、 "c:\ mrtg \ bin \ mobile-balance-api.php");



私たちはチェックします:

c:\php\php c:\mrtg\bin\mrtg-check-mobile-balance.php 9128141111 123456







エラーがある場合は、それを調べます。



MRTGを構成します。

mkdir c:\mrtg\www





cの編集/作成:\ mrtg \ mrtg.cfg

EnableIPv6: no

WorkDir: c:\mrtg\www

Target[mb]: `c:\php\php c:\mrtg\bin\mrtg-check-mobile-balance.php 9128141111 123456`

MaxBytes[mb]: 500

MaxBytes2[mb]: 75

Title[mb]: Mobile balance +79218141111

Options[mb]: unknaszero,gauge,growright,nopercent,transparent,noborder,pngdate,noinfo

AbsMax[mb]: 500

YLegend[mb]: Rub

ShortLegend[mb]: R

Legend1[mb]: Rub

Legend2[mb]: Rub

LegendI[mb]: Rub

LegendO[mb]: Rub

PageTop[mb]: Mobile balance +79218141111








私たちはチェックします:

c:\perl\bin\perl c:\mrtg\bin\mrtg c:\mrtg\bin\mrtg.cfg





mb * .pngおよびmb.htmlファイルがc:\ mrtg \ wwwディレクトリに表示されます。 c:\perl\bin\perl c:\mrtg\bin\mrtg c:\mrtg\bin\mrtg.cfg



タスクスケジューラのc:\perl\bin\perl c:\mrtg\bin\mrtg c:\mrtg\bin\mrtg.cfg



。 それだけです



私のカルマのPPPSグラフとMRTGの評価。 青は評価、緑はカルマです。

画像







All Articles