実際のシステム管理者の主な動作品質は怠であるという意見があります。 システム管理者がサーバーを持っており、このサーバーがサービスを提供している場合-通常、管理者はこのサービスを監視します-すべてがサービスで正常であることを知るために、ガードオールゴーンオールブレイク数を見つけるために何かが起こった場合、アラートは不快なボスの鐘ではなく、彼を目覚めさせることを知って、最初に平和に眠ります。
しかし、サーバーとサービスが独自のものではなく、他のものである場合はどうでしょうか? 結局のところ、そのような状況は常に起こります。 典型的な小規模組織:1つまたは2つのホスティングサイト(料金を支払う必要があり、料金が変更されているかどうかを確認することも多い)、ドメイン名の束(期限内に支払う必要がある、または失う可能性がある)、次に、携帯電話の数(残高を追跡したい)、都市のテレフォニープロバイダー、VOIPプロバイダー、最終的にはオフィスのインターネットプロバイダーとの契約(およびそれに応じて、会計および相互決済)。
通常、システム管理者はこのすべてにお金を払うことはありませんが、主に残高を補充するためのリマインダーの手紙を受け取り、支払いをする人に思い出させるのを忘れると最後のリマインダーになります。 あなたの人生で少なくとも一度はそのようなものを支払うことを忘れていなかったので(例えば、リマインダーレターがスパムになったため)、コミュニケーションなし、ウェブサイトなし、ドメインなし、ボーナス
は実際には簡単に開きますが、大体言うかもしれません。 ほとんどすべての監視システム(Nagios、Zabbix、Remstats、Ganglia、Zenosでテスト済み-これが発生しなかったシステムはほとんど想像できません)外部プログラムを実行する機会とその実行の結果(データを収集する場合、終了ステータス、いいえ»または、stdoutへの出力)モニタリングのパラメータの値として登録します。
携帯電話が接続されているとします。MMM、たとえばMTS-この電話の残高を確認するには、インターネットのみを自由に使用できますか? 非常に簡単です-サイトmts.ruにアクセスし、 そこにインターネットアシスタントを見つけ、そこからより軽いPDAバージョンに移動します。
電話番号はありますが、このすばらしい「インターネットアシスタント」のパスワードを設定する必要があります-* 111 * 25#をダイヤルしてパスワードを設定します。 電話番号とパスワードをフォームに入力すると、次のページで目的の番号が表示されます。
サーバーにこの簡単な手順を教え、これを1日に数回繰り返すように彼に伝えることは今でも残っています。
私たちのお気に入りのHTMLおよびHTTPトラフィック分析ツールを装備して、すぐに次のことを認識します。
- ユーザーがログインフォームを開くと、特定のCookieが与えられます-明らかに、セッションを識別するために
- ユーザーはフォームにユーザー名(電話番号)とパスワードを入力し、「Enter」をクリックします-受信したCookieが送信され、2つの完成したフォームパラメーター-
username
とpassword
。 - 巧妙なリダイレクトと空想のシステムの後、ユーザーは最終的に「Balance:」という単語と目的の番号があるページを取得します。
request() { wget \ --load-cookies cookies.txt \ --save-cookies cookies.txt \ --keep-session-cookies \ --quiet \ $@ } request -O 1.html \ 'https://ihelper.mts.ru/SELFCAREPDA/Security.mvc/LogOn' request -O 2.html \ --post-data="username=$LOGIN&password=$PASSWORD" \ 'https://ihelper.mts.ru/SELFCAREPDA/Security.mvc/LogOn' sed -ne '/<br\/>:/ { s,.*>\([0-9.]*\)</.*$,\1,; p }' <2.html
あまり美しくはなく、一時ファイルが散らばっていますが、動作します:
$ LOGIN=9161234567 PASSWORD=012345 ./monitor 1234.56
今、あなたはそれをわずかに改良する必要があり、お好みの監視システムに接続することができます。 携帯電話のバランスチャートは、記事を開いた写真に示されているもののようになります。スローダウン(残高に対する資金の段階的な支出、月額料金の償却)およびピーク(チャージ-資金の預け入れ)です。
このような簡単な方法で-実際、ウェブインターフェースで読み値を入力して読む際の人の行動をシミュレートすると、多くの外部サービスを自動的に監視できます。 次に、別の監視システムのもう少し一般的な例を示します。今回はZabbixに基づいています。
インターネットプロバイダーでの支払い期間の終了までの日数は次のとおりです。 期間終了の5日前に、トリガーがトリガーされ、1日後に2番目のアラームが送信され、優先度が高くなります。 もちろん、スケジュールは携帯電話のバランスよりも予測可能ですが、それにもかかわらず、トリガーに関するこれらのリマインダーは、個人的に多数の神経細胞を繰り返し保存しました。
余波
そのようなスクリプトをゼロ以外の量で蓄積し始めました-そして私は-誰もが自分でそれらを書いて毎回30分を費やす理由-なぜそのようなスクリプトを収集する何らかの種類のフリーソフトウェアリポジトリを作成しないのかスクリプト? 私は、おそらく何かが既に存在しているように見えました-私が見つけた最も近いものは、Android用のBalanceRobotプロジェクトです-モバイルオペレータの残高を監視する同様のプログラム(独自のものであり、閉鎖されています) -githubでSPMonプロジェクトを作成しました 。現在、彼は比較的控えめなサービスセットを維持する方法を知っています 。
- モスクワメガホン -バランスチェック
- MTS-残高チェック
- インターネットプロバイダーNetByNetの大規模なコングロマリット -期日前の日数の確認
- Skypeインターネットテレフォニー-バランスチェック
- SIPインターネットテレフォニーSIPNET-バランスチェック
- 「ウォレットワン」W1-ウォレットアカウントの残高を確認する
services
ディレクトリがあります。 通常、スクリプトはシェルで記述され、3〜4行で構成され、
_spmon_init
ファイルにある共通部分を
_spmon_init
用に接続します。 この作業用ファイルは、現在のディレクトリ、1つ上のレベルのディレクトリ、または(PATH内の)パブリックな場所に配置できます。
1つのMakefileの形式の単純なテストインフラストラクチャがあります(残念ながら、明らかな理由で共有できません)。これを時々実行し、上記のすべてのサービスをバイパスし、個人のログインとパスワードを置き換えて、起動の結果を確認します。スクリプトがまだ機能していること。
他のインターネットサービスを監視する方法をコミュニティと共有したいすべての人-私は招待します:)
PSしばらく前に、 zuskinは 、 PHPの スクリプトを使用してそのようなスクリプトをNagiosに接続する問題をすでに検討していました。 Nagios、Zabbix、Remstatsなどに同様に接続する、より一般的で最小限のソリューションを提供します。