それは何のためですか?
家族の携帯電話の数が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");
「インターネットアシスタント」にアクセスするためのパスワードをまだお持ちでない場合は、次の手順を実行してください。
- MTSユーザーの場合:携帯電話(またはMTS-Connectプログラム)からダイヤル:* 111 * 25#または111 5(ホームネットワーク上にいる場合)を呼び出し、自動通知の指示に従います。
- Beelineユーザーの場合:電話からフリーダイヤル番号* 110 * 9#に電話し、システムへのパスワードを含むSMSを受信します。
テスト実行スクリプト
/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の評価。 青は評価、緑はカルマです。