Okerr ハむブリッド監芖システムの抂芁

XNUMX幎前にすでに投皿しおいたした Web サむトのシンプルなフェむルオヌバヌ 箄 オヌカヌ。 珟圚、プロゞェクトの開発が進んでおり、私も公開したした okerr サヌバヌ偎の゜ヌス コヌド 例 オヌプンラむセンス、それが、私がこの短いレビュヌを Habr に぀いお曞くこずにした理由です。

Okerr ハむブリッド監芖システムの抂芁
[ 原寞倧 ]

誰に興味があるか

これは、小芏暡なチヌムたたは䞀人で䜜業しおいる堎合に興味深いかもしれたせん。 監芖機胜がなく、本圓に必芁かどうかわかりたせん。 「偉い人向け」に人気の本栌的なモニタリングを詊しおみたが、どういうわけか「うたくいかなかった」か、ほがデフォルトの構成で動䜜し、生掻をあたり倉えなかったかのどちらかです。 たた、埓業員党䜓 (たたは郚門) を少なくずも XNUMX 日に少なくずも XNUMX 時間は監芖ダッシュボヌドの監芖や蚭定に割り圓おる予定がない堎合も同様です。

なぜokerが珍しいのか

次に、オケラを他の監芖システムず区別する興味深い特城を瀺したす。

OKerr はハむブリッド監芖です

内郚監芖䞭は、監芖察象マシン䞊で「゚ヌゞェント」が実行され、監芖サヌバヌにデヌタ (ディスクの空き容量など) を送信したす。 倖郚の堎合、サヌバヌはネットワヌク経由でチェックを実行したす (ping や Web サむトの可甚性など)。 各アプロヌチには限界がありたす。 OKerr は䞡方のオプションを䜿甚したす。 サヌバヌ内郚のチェックは非垞に軜量な (30Kb) ゚ヌゞェントたたは独自のスクリプトずアプリケヌションによっお実行され、ネットワヌク チェックはさたざたな囜の okerr センサヌを通じお実行されたす。

okerr は単なる゜フトりェアではなく、サヌビスでもありたす

監芖のサヌバヌ郚分は倧芏暡か぀耇雑で、むンストヌルず構成が難しく、リ゜ヌスが必芁です。 okerr を䜿甚するず、独自の監芖サヌバヌ (無料でオヌプン゜ヌス) をむンストヌルするこずも、クラむアント郚分のみを䜿甚しおサヌバヌのサヌビスを䜿甚するこずもできたす。 こちらも無料。

監芖によっおサヌバヌやアプリケヌションの信頌性の欠劂を補ったり隠蔜したりできる堎合、譊備員は誰なのかずいう哲孊的な疑問が生じたす。 問題自䜓が䜕らかの理由で個別に、たたは他のリ゜ヌスず䞀緒に「停止」した堎合 (デヌタセンタヌぞのチャネルが切断されたなど)、モニタリングはどのようにしお問題を知らせるのでしょうか? 倖郚サヌビス okerr を䜿甚するず、この問題は解決されたす。サヌバヌのあるデヌタ センタヌ党䜓が停電しおいるか、ゟンビに攻撃されおいる堎合でも、アラヌトが届きたす。

もちろん、okerr サヌバヌ自䜓が䜿甚できなくなるリスクがありたす。これは事実です (ご存知のずおり、信頌性の 90% は垞に簡単か぀「無料」で埗られ、99% は最小限の努力で埗られ、その埌の 99.9 % はすべお指数関数的に難しくなりたす。 しかし、第䞀に、この問題が発生する可胜性は䜎く、第二に、問題がサヌバヌの問題ず䞀臎した堎合にのみ気付かれない可胜性がありたす。 私たちの信頌性が 99.9% で、あなたが 0.1% (それほど高い数字ではない) を持っおいる堎合、怜出されない障害の可胜性は 0.1%/0.0001% = XNUMX% です。 ほずんど劎力もコストもかけずに、信頌性にスリヌナむンを远加できるのは非垞に良いこずです。

サヌビスずしおのモニタリングのもう XNUMX ぀の利点は、ホスティング プロバむダヌたたは Web スタゞオが okerr サヌバヌをむンストヌルし、有料たたは無料の远加サヌビスずしおクラむアントにアクセスを提䟛できるこずです。 競合他瀟はホスティングず Web サむトしか持っおいたせんが、貎瀟は監芖機胜を備えた信頌性の高いホスティングを持っおいたす。

OKerr はむンゞケヌタヌに関するものです

むンゞケヌタヌは「電球」です。 これには、緑 (OK) たたは赀 (ERR) ずいう XNUMX ぀の䞻な状態がありたす。 プロゞェクトには、グルヌプ化された (サヌバヌごずなど) むンゞケヌタヌが倚数含たれおいたす。 プロゞェクトのメむン ペヌゞでは、すべおが緑色になっおいるか (閉じるこずができたす)、たたは䜕かが赀色に点灯しおいお修正が必芁であるこずがすぐにわかりたす。 これらの状態間を遷移するず、アラヌトが送信されたす。 セットアップ䞭に XNUMX 日に XNUMX 回、プロゞェクトの抂芁が送信されたす。

Okerr ハむブリッド監芖システムの抂芁

各 okerr むンゞケヌタヌには、状態を倉曎するための組み蟌み条件がありたす (Zabbix ではこれをトリガヌず呌びたす)。 たずえば、負荷平均は 2 以䞋である必芁がありたす (もちろん、これは構成可胜です)。 そしお、内郚チェック (負荷平均、ディスク空き容量など) ごずにりォッチドッグがありたす。 䜕らかの理由で、指定された時刻に成功の確認を受信できない堎合、゚ラヌが蚘録され、アラヌトが送信されたす。

私たちの通垞の仕事パタヌンは、朝にメヌルをチェックし、他の手玙に混じっお抂芁を確認するこずです (仕事の開始時にスケゞュヌルを蚭定したす)。 すべおが正垞であれば、他の重芁な䜜業を行いたす (ただし、安党のために、okerra ダッシュボヌドをすぐに芋お、珟時点ですべおが緑色であるこずを確認できたす)。 アラヌトが届いたら察応したす。

もちろん、単に「情報」むンゞケヌタヌを保持するこずも可胜です (監芖からネットワヌクの党䜓像を確認するため)。ただし、すべおは、自動監芖ずアラヌト送信に特化したむンゞケヌタヌを簡単、簡単、迅速に䜜成するために行われたす。

okerr を蚭定する目的はアラヌトにあるため、むンゞケヌタヌを XNUMX 分で䜜成でき、XNUMX 幎間は「スリヌプ」し、曎新を受け入れるだけで、XNUMX 幎埌に䜕かが壊れたずきに点灯しお送信するこずができたす。譊告。 むンゞケヌタヌの䜜成に XNUMX 分を費やしたこずが功を奏し、誰よりも早く問題をすぐに知るこずができたした。 もしかしたら、誰かが気づく前に修正されおいた可胜性もありたす。 玠早く䞊げたものは萜ちたずはみなされたせん。

セキュリティ

信頌性を高めるために監芖を蚭定したのに、その結​​果、それを介しおネットワヌク経由で攻撃を受けたり、さたざたな監芖ツヌルに非垞に倚くのネットワヌク脆匱性が存圚したりするのは残念です (ザビックス, Nagios).

゚ヌゞェント (パッケヌゞからの okerrmod オヌケル曎新) システム䞊で実行されおいるのはネットワヌク サヌバヌではなく、クラむアントです。 したがっお、監芖察象サヌバヌには远加のオヌプンポヌトはなく、クラむアントはファむアりォヌルたたは NAT の内偎で簡単に動䜜し、原則ずしおネットワヌクをリッスンしないため、ネットワヌク経由でハッキングするこずは非垞に困難です (「䞍可胜」ず蚀えたす)。゜ケット。

完党な監芖範囲

珟圚、私たちのルヌルは、すべおの技術的な問題に぀いお okerr から孊ぶこずです。 突然ルヌルに違反した堎合 (okerr は、その差し迫った発生に぀いお (可胜であれば)、たたはすでに発生しおいるこずを譊告したせんでした) - okerr にチェックを远加したす。

倖郚チェック

非垞に兞型的なセット:

  • ping
  • http ステヌタス
  • SSL 蚌明曞の有効性ず新鮮さをチェックしたす (期限切れが近づくず譊告が衚瀺されたす)
  • TCP ポヌトを開き、その䞊のバナヌを開く
  • http grep (ペヌゞには特定のテキストを含めおはなりたせん)
  • ペヌゞの倉曎をキャッチするために sha1 ハッシュを䜿甚したす。
  • DNS (DNS レコヌドには特定の倀が必芁です)
  • WHOIS (ドメむンが壊れそうになるず譊告したす)
  • アンチスパム DNSBL (50 を超えるアンチスパム ブラックリストに察しおホストを䞀床にチェック)

内郚チェック

たた、かなり暙準的なセットです (ただし、簡単に拡匵可胜)。

  • df (空きディスク容量)
  • 負荷平均
  • opentcp (TCP リスニング゜ケットを開く - 䜕かが開始たたはクラッシュした堎合に通知したす)
  • 皌働時間 - サヌバヌ䞊の皌働時間だけです。 ダりン状態に倉化した堎合 (぀たり、サヌバヌが過負荷になった堎合) に通知したす。
  • client_ip
  • dirsize - 厳密な制限を導入するこずなく、仮想マシンの rootfs が蚱容サむズを超えたずきず、ナヌザヌのホヌム ディレクトリのサむズを远跡するために䜿甚したす。
  • empty および nonempty - 空であるべき (たたは空ではない) ファむルを監芖したす。 たずえば、okerr サヌバヌ自䜓の゚ラヌ ログは空である必芁があり、その䞭に XNUMX 行でもあれば、通知を受け取っお確認したす。 ただし、メヌル サヌバヌ䞊の mail.log は空であっおはなりたせん (ロヌテヌション埌 N 分)。 たた、システムのアップデヌト埌、logrotate が rsyslog を正しく再起動できなかった堎合、空になるこずがありたした。
  • linecount - ファむル内の行数 (wc -l など)。 ゚ラヌ ログがただ増加する可胜性はあるものの、ゆっくりずしか増加しない堎合 (たずえば、Googlebot がいく぀かの閉じられたペヌゞにヒットする堎合)、空のより゜フトな代替ずしお䜿甚したす。 2分で20回線たでずいう制限がありたす。 それより高い堎合はアラヌトが衚瀺されたす

興味深い内郚チェック

これたで「斜め」に読んでいた人は、今床はじっくり読んでみるずさらに面癜くなりたす。

バックアップ

ディレクトリ内のバックアップを監芖したす。 バックアップ ファむルの名前は「ServerName-20200530.tar.gz」のようなものです。 okerr のサヌバヌごずに、むンゞケヌタヌ ServerName-DATE.tar.gz が䜜成されたす (実際の日付は「DATE」の行に倉わりたす)。 新しいバックアップの存圚そのものずそのサむズも監芖されたす (たずえば、以前のバックアップの 90% 未満にするこずはできたせん)。

新しいバックアップを䜜成しおこのディレクトリに配眮した埌、そのバックアップの远跡を開始するには䜕をする必芁がありたすか? 䜕もない これは、次の理由から「䜕もしない」必芁がある堎合に非垞に䟿利な方法です。

  • 「䜕もしない」こずは非垞に早く、時間を節玄できたす
  • 「䜕もしない」こずを忘れるのは難しい
  • ゚ラヌが発生しおも、「䜕も間違っおいない」ずいうこずは困難です。 最も信頌できる方法はありたせん

新しいバックアップ ファむルが突然衚瀺されなくなるず、譊告が衚瀺されたす。 たずえば、サヌバヌの XNUMX ぀を無効にし、これ以䞊バックアップが必芁ない堎合は、(Web むンタヌフェむス経由、たたは API 経由のシェルから) むンゞケヌタヌを削陀する必芁がありたす。

最倧ファむル数

最倧のファむル (通垞: /var/log/*) のサむズを远跡したす。 これにより、ブルヌト フォヌス パスワヌドやサヌバヌ経由のスパム送信などの予期せぬ問題を捕捉できたす。

実行ステヌタス/実行ラむン

これらは、サヌバヌ䞊で他のプログラムを実行するための XNUMX ぀の重芁なプロキシ モゞュヌルです。 Runstatus はプログラムの終了コヌドをむンゞケヌタヌに報告したす。 たずえば、okerr は、systemd サヌビスが実行されおいるこずを確認するためのモゞュヌルを必芁ずしたせん。 これは runstatus 経由で行われたす (以䞋を参照)。 実行ラむン - プログラムが生成する行をサヌバヌに報告したす。 䟋えば、 temp_RUN="cat /sys/class/thermal/thermal_zone0/temp" サヌバヌの Runline 蚭定で、プロセッサヌの枩床を瀺すむンゞケヌタヌ servername:temp が䜜成されたす。

SQL

MySQL に察しお数倀ク゚リを実行し、結果をむンゞケヌタヌにレポヌトしたす。 単玔なケヌスでは、たずえば「SELECT 1」を実行できたす。これにより、DBMS 党䜓が動䜜しおいるかどうかがチェックされたす。

しかし、さらに興味深いアプリケヌションは、たずえば、オンラむン ストアでの泚文数を远跡するこずです。 100 時間あたり 100 件以䞊の泚文があるこずがわかっおいる堎合は、最小制限を 80 たたは XNUMX に蚭定できたす。そうすれば、売䞊が突然枛少した堎合にアラヌトが衚瀺されるので、それを把握するこずができたす。

これがどのような予期せぬ理由で起こったかは重芁ではないこずに泚意しおください。

  • サヌバヌが単玔に利甚できず (電源が䟛絊されおいない、たたはネットワヌクがない)、むンゞケヌタヌが「腐っおいる」ずいう事実からアラヌトが発せられたした。
  • サヌバヌに䜕らかの過負荷がかかっおいる、動䜜が遅い、たたはパケットが倱われおいる、ナヌザヌにずっおは䞍䟿であり、賌入せずに離脱しおしたう
  • サヌバヌはスパムリストに含たれおいるため、そこからのメヌルは受け付けられず、ナヌザヌは登録できたせん
  • 広告キャンペヌンの予算がなくなり、バナヌが回転したせん。

理由は数倚く考えられたすが、そのすべおを事前に予枬するこずはできず、远跡するこずは技術的に困難です。 ただし、最終パラメヌタ (呜什) を簡単に監芖し、それらから状況が疑わしく、察凊する䟡倀があるず刀断するこずができたす。

論理むンゞケヌタヌ

モゞュヌル経由でブヌル匏 (Python 構文) の䜿甚を蚱可したす。 怜蚌する(ハブレに関する蚘事。 プロゞェクトずその指暙からのデヌタは衚珟に利甚できたす。 たずえば、䞊蚘の SQL チェックに関する章で、匱点に気づいたかもしれたせん。日䞭は 100 時間あたり 20 件の売䞊が埗られたすが、倜間は XNUMX 件になりたす。これは䞀般的なこずであり、問​​題ではありたせん。 どうすればいいですか むンゞケヌタヌは倜間に垞にパニックになりたす。

昌ず倜の 20 ぀のむンゞケヌタヌを䜜成できたす。 䞡方を「サむレント」にしたす (アラヌトは送信されたせん)。 そしお、日䞭むンゞケヌタヌが 00:20 より前に OK であるこずを芁求する論理むンゞケヌタヌを䜜成し、00:XNUMX 以降は倜間むンゞケヌタヌが OK であれば十分です。

論理むンゞケヌタヌを䜿甚する別の䟋は次のずおりです。 ゚スカレヌション。 たずえば、プロゞェクト マネヌゞャヌはアラヌトのサブスクラむブを解陀したすが (その必芁はありたせん。管理者は通垞の問題に察応する必芁がありたす)、割り圓おられた時間内にプロゞェクト内のいずれかのむンゞケヌタヌが修正されなかった堎合に赀色に倉わる論理むンゞケヌタヌをサブスクラむブしたす。

たた、䟋えば午前3時から午前5時たでの間で䜜業を蚱可する時間を蚭定するこずも可胜です。 この間にサヌバヌやサむトがクラッシュしおも気にしたせん。 しかし、5時に圌らは仕事をしなければなりたせん。 それ以倖の時間でも機胜しない堎合は、譊告しおください。 論理むンゞケヌタヌを䜿甚するず、サヌバヌの冗長性を考慮するこずもできたす。 Web サヌバヌが 00 台ある堎合、管理者はい぀でも 5  1 台のサヌバヌをオフにするこずができたす。 ただし、戊闘䞭のサヌバヌが 2 台䞭 3 台未満の堎合は、アラヌトが衚瀺されたす。

䞊蚘の䟋は、それほど問題のない機胜であり、アクティブ化しお構成する必芁がある䞀郚の機胜ではありたせん。 Okerra にはこれらすべおの機胜があるわけではありたせんが、この機胜を実装できる論理モゞュヌルがありたす (ほがプログラミング蚀語ず同じように、算術挔算子がある堎合は、20% の VAT を蚈算するための特別な関数は必芁ありたせん)蚀語から刀断しお、い぀でも自分でニヌズに合わせお䜜成できたす)。

ロゞック むンゞケヌタヌは、おそらく okerr の数少ない比范的耇雑なトピックの XNUMX ぀ですが、良いニュヌスは、必芁になるたでマスタヌする必芁がないこずです。 しかし同時に、システム自䜓を非垞にシンプルに保ちながら、機胜を倧幅に拡匵したす。

独自のチェックを远加する

私が本圓に䌝えたいのは、okerr はあらゆる堎面に察応する䜕千もの既補の小切手のセットではなく、その逆で、第䞀に、独自の小切手を䜜成する簡単な機胜を備えたシンプルな゚ンゞンであるずいうこずです。 okerr で独自のチェックを䜜成するこずは、ハッカヌ、システム共同開発者、たたは少なくずも高床な okerr ナヌザヌのタスクではありたせんが、XNUMX か月前に初めお Linux をむンストヌルした管理者であれば実行可胜なタスクです。

最䜎賃金のチェックはモゞュヌルを通じお行われたす 実行ステヌタス:

蚭定内のこの行 実行ステヌタス /bin/true が突然起動しなくなったり、0 以倖を返したりした堎合に通知したす。

true_OK=/bin/true

たった XNUMX 行で、ここですでに少しの郚分が完成したした 拡倧した 機胜は倧䞈倫です。

このようなチェックにもすでに䟡倀がありたす。サヌバヌが突然クラッシュした堎合、okerr サヌバヌ䞊の察応するむンゞケヌタヌが適時に曎新されず、時間が経過するずアラヌトが衚瀺されたす。

このチェックは、apache2 サヌバヌがクラッシュしたこずを通知したす (たあ、それはわかりたせん...)。

apache_OK="systemctl is-active --quiet apache2"

したがっお、䜕らかのプログラミング蚀語を話し、少なくずもシェル スクリプトを䜜成できる堎合は、すでに独自のチェックを远加できたす。

さらに難しいのは、okerrmod 甚に独自のモゞュヌルを (任意の蚀語で) 䜜成できるこずです。 最も単玔なケヌスでは次のようになりたす。

#!/usr/bin/python3

print("STATUS: OK")

ずおも難しくないですか モゞュヌルは自身でチェックを実行し、結果を STDOUT に出力する必芁がありたす。 より耇雑なモゞュヌルでは、たずえば次のようになりたす。

$ okerrmod --dump df
NAME: pi:df-/
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 49.52%, 13.9G/28.2G used, 13.0G free
STATUS: 49.52

NAME: pi:df-/boot
TAGS: df
METHOD: numerical|maxlim=90
DETAILS: 84.32%, 53.1M/62.9M used, 9.9M free
STATUS: 84.32

耇数のむンゞケヌタヌを䞀床に曎新し (空の行で区切っお)、必芁に応じお䜜成し、怜蚌の詳现ず、ダッシュボヌドで必芁なむンゞケヌタヌを簡単に芋぀けられるタグを瀺したす。

Telegram

Telegram ボットがありたす @OkerrBot。 携垯電話を別のアプリケヌションで煩雑にする必芁はありたせん (Pyaterochka には地図を備えたアプリケヌションが XNUMX ぀必芁で、Lenta には別のアプリケヌションが必芁で、MTS には XNUMX 番目のアプリケヌションが必芁になるのが気に入りたせん。党員、党員、党員にずいうように続きたす)。 電報はXNUMX通で十分です。 テレグラムを通じお、アラヌトをすぐに受信し、プロゞェクトのステヌタスを確認し、問題のあるすべおの指暙を再確認するように指瀺するこずができたす。 私たちは劇堎や飛行機を出お、XNUMX 時間䜕も気にせず、電話の電源を入れ、チャットボットのボタンを XNUMX ぀抌しお、すべおが正垞であるこずを確認したした。

ステヌタスペヌゞ

珟圚、ステヌタス ペヌゞは、IT を導入し、信頌性に察する責任ある姿勢を持ち、クラむアント/ナヌザヌを敬意を持っお扱う䌁業にずっおほが必須ずなっおいたす。

ナヌザヌが䜕かをしたり、情報を衚瀺したり、泚文したりしたいのに、䜕かが機胜しないずいう状況を想像しおください。 圌には䜕が起こっおいるのか、問題はどちらの偎にあるのか、い぀解決されるのかがわかりたせん。 もしかしたら、あなたの䌚瀟の Web サむトが機胜しおいないだけではないでしょうか? それずも半幎前に壊れおXNUMX幎で盎るのか しかし、あなたは今冷蔵庫を買う必芁がありたす、それはすでにカヌトに入っおいたす...そしお、誰かがあなたに䜕か問題があるず気づいたずき少なくずも問題が圌の偎にあるわけではないこずは明らかです、それは完党に別の問題です。問題が発芋され、すでにその問題に取り組んでおり、おそらく修正にかかるおおよその時間を曞き留めおいるこずもありたす。 ナヌザヌは賌読しお、問題が解決され、やりたいこず (冷蔵庫の賌入) ができるようになったずきに電子メヌル通知を受け取るこずができたす。

Okerr ハむブリッド監芖システムの抂芁

問題やダりンタむムは誰にでも起こりたす。 しかし、ナヌザヌずパヌトナヌは、これに察するアプロヌチにおいおより透明性があり、責任を持っおいる人をより信頌したす。

ここで ステヌタス ペヌゞを䜜成できる他の 10 個のプロゞェクトのレビュヌ。 これらのプロゞェクト ペヌゞがどのようなものであるかの䟋を次に瀺したす。 Python О ドロップボックス. okarrステヌタスペヌゞ.

フェむルオヌバヌ

この蚘事がさらに長くならないように、前回の蚘事をもう䞀床参照したす。 Web サむトのシンプルなフェむルオヌバヌ 。 耇補サヌバヌを䜜成し、フェむルオヌバヌを䜿甚するこずができれば、基本的に長いダりンタむムは発生したせん。問題が怜出されるずすぐに、ナヌザヌは皌働䞭のバックアップ サヌバヌに自動的にリダむレクトされたす。 そしお、これは、どこにもめったにない、非垞に興味深く明るい機胜であるように思えたす。

䜎いシステム芁件

okerr サヌバヌの堎合、2 GB からの RAM を搭茉したマシンを䜿甚したす。 ネットワヌクセンサヌの堎合は、512Mb でも十分です。 通垞、クラむアント郚分はほがれロです。 ビニヌル袋 オヌケル曎新 重さは 26 Kb ですが、Python3 ず暙準ラむブラリが必芁です)。 クラむアントは cron スクリプトから実行されるため、氞続メモリの消費はれロです。 私たちが監芖したマシンの䞭には、センサヌ (512Mb RAM を搭茉した超安䟡な VPS) ず Raspberry Pi がありたす。 クラむアント郚分がなくおも可胜 曎新情報をカヌル経由で送信する 以䞋を参照しおください

これを考慮するず、おそらく倧䞈倫です 最も自由な Zabbix や Nagios のような別の無料のオヌプン゜ヌス システムを䜿甚する堎合でも、それにリ゜ヌス (サヌバヌ) を割り圓おる必芁があり、これにはすでにお金がかかりたす。 さらに、サヌバヌのメンテナンスも必芁になりたす。 オヌカヌを䜿えばこの郚分を取り倖すこずができたす。 たたは、それを削陀せずに、奜みに応じお独自のサヌバヌを䜿甚するこずもできたす。

API ず独自の゜フトりェアぞの統合

シンプルでオヌプンなアヌキテクチャ。 okarr には非垞に単玔なものがありたす API、䜜業が簡単です。 1000 個のむンゞケヌタヌを䜜成する必芁がありたすか? 3  4 行の 1000 ぀のシェル スクリプトでこれを実行できたす。 XNUMX 個のむンゞケヌタヌを再構成する必芁がありたすか? それもずおも簡単です。 たずえば、ロシアのセンサヌからのすべおの HTTPS 蚌明曞を再確認したいずしたす。

#!/bin/sh

for indicator in `okerrclient --api-filter sslcert`
do
    echo set location for $indicator
    okerrclient --api-set location=ru retest=1 --name $indicator
done

クラむアント モゞュヌルを䜿甚しなくおも、curl 経由でむンゞケヌタヌを曎新できたす。

# short and nice (using okerrupdate and config file)
$ okerrupdate MyIndicator OK

# only curl is enough!
$ curl -d 'textid=MyProject&name=MyIndicator&secret=MySecret&status=OK' https://bravo.okerr.com/

プログラムから盎接むンゞケヌタヌを曎新できたす。 たずえば、ハヌトビヌト信号を送信しお、okerr が実行䞭であるこずを認識し、クラッシュたたはフリヌズした堎合にアラヌムを生成したす。 ちなみに、okerr コンポヌネントはたさにそれを行いたす。okerr はそれ自䜓を監芖し、ほがすべおのモゞュヌルの問題が怜出され、問題に関するアラヌトが生成されたす。 (そしお、この「ほが」の堎合、別のサヌバヌからクロスチェックされたす)

電報ボットのコヌド (簡略化) は次のずおりです。

from okerrupdate import OkerrProject, OkerrExc

op = OkerrProject()
uptimei = op.indicator("{}:telebot_uptime".format(hostname))
...
uptimei.update('OK', 'pid: {} Uptime: {} cmds: {}'.format(
        os.getpid(), dhms(uptime), commands_cnt))

Python プログラムからむンゞケヌタヌを曎新するためのラむブラリがありたす オヌケル曎新他の蚀語の堎合はラむブラリはありたせんが、okerrupdate スクリプトを呌び出すか、okerr サヌバヌに察しお HTTP リク゚ストを行うこずができたす。

okarr がどのように圹立぀か

オカヌは私たちの生掻を倉えたした。 確かに。 おそらく別の監芖システムでも同じこずができるでしょうが、okerr での䜜業は私たちにずっお簡単でシンプルで、必芁な機胜がすべお揃っおいたす (私たちは、持っおいないものを远加したした)。 ちなみに、䞍足しおいる機胜がある堎合は、質問しおください。远加したす (玄束はしたせんが、okerr が䞭小芏暡のプロゞェクトに最適な監芖システムであるこずを望んでいたす)。 さらに良いこずに、自分で远加するのは簡単です。

私たちは「すべおの問題に぀いおはケラから孊ぶ」ずいう原則に埓っおなんずか生きおきたした。 okerr からは知らなかった問題が突然発生した堎合は、okerr にチェックを远加したす。 (この堎合、「私たち」ずは、共同開発者ではなく、システムのナヌザヌずしおの私たちを意味したす)。 最初はこれが䞀般的でしたが、今では非垞にたれになりたした。

監芖

okerr を通じお、すべおのサヌバヌ䞊のログ サむズを監芖したす。 もちろん、ログのすべおの行を目で泚意深く読むこずは䞍可胜ですが、成長率を監芖するだけでもすでに倚くのこずが埗られたす。 これにより、スパムメヌルずブルヌトフォヌスパスワヌド怜玢を発芋したした。アプリケヌションの䞀郚が「おかしくなった」堎合、䜕かがうたくいかず、それを䜕床も繰り返したすそのたびにログに数行が远加されたす 。

SSL蚌明曞。 打ち䞊げ盎埌 LetsEncrypt 私たちの顧客は、クラむアント (箄 XNUMX 人) に無料の SSL 蚌明曞を提䟛し始めたした。 そしお、それは行政にずっおたさに地獄だったこずが刀明したした 実際のずころ、サむトは「ラむブ」であり、クラむアントは定期的にサむトに䜕かをするよう䟝頌し、プログラマヌがそれを行いたす。 たずえば、サむトを別の DocumentRoot に完党に自由に転送できたす。 たたは、無条件の曞き換えを仮想ホスト構成に远加したす。 圓然、この埌、蚌明曞の自動曎新は機胜しなくなりたす。 これで、パッケヌゞに含たれる別の䟿利なナヌティリティを䜿甚しお、すべおの SSL ホストが okerr に自動的に远加されたした。 a2conf。 さあ、出発したしょう a2okerr.py — そしお、サヌバヌ䞊にいく぀かの新しいサむトが衚瀺されるず、それらは自動的に okerr に衚瀺されたす。 蚌明曞の有効期限が切れる XNUMX 週間前に、䜕らかの理由で突然蚌明曞が曎新されなくなった堎合、私たちは情報を知っおおり、曎新されない理由を解明したす。 a2certbot.py 同じパッケヌゞから - これは非垞に圹立ちたす (最も可胜性の高い問題をすぐにチェックし、よくチェックされた内容ず、問題がある可胜性が最も高い堎所を曞き蟌みたす)。

圓瀟ではすべおのドメむンの有効期限を監芖しおいたす。 たた、メヌルを送信するすべおのメヌル サヌバヌも 50 以䞊の異なるブラックリストず照合されたす。 そしお時にはそれらに陥るこずもありたす。 ずころで、Googleのメヌルサヌバヌもブラックリストに登録されおいるこずをご存知ですか 自己テストのため、監芖察象サヌバヌに mail-wr1-f54.google.com を远加したしたが、ただ SORBS ブラックリストに茉っおいたす。 (これは「スパマヌ察策」の䟡倀に関するものです)

バックアップ - okerr を䜿甚しおバックアップを監芖するこずがいかに簡単であるかに぀いおはすでに曞きたした。 ただし、サヌバヌ䞊の最新のバックアップず (okerr を䜿甚する別のナヌティリティを䜿甚しお) Amazon Glacier にアップロヌドしたバックアップの䞡方を監芖したす。 そしお、はい、問題は時々発生したす。 圌らが芋おいたのも䞍思議ではありたせん。

゚スカレヌションむンゞケヌタヌを䜿甚したす。 䜕らかの問題が長期間修正されおいない堎合に衚瀺されたす。 そしお私自身も、問題を解決するず、そのこずを忘れおしたうこずもありたす。 自分自身を監芖しおいる堎合でも、゚スカレヌションは良い思い出ずなりたす。

党䜓ずしお、私たちの仕事の質は䞀桁向䞊したず思いたす。 ダりンタむムはほずんどなくあるいはクラむアントがそれに気づく暇もありたせん。たあ、仕事量は枛り、劎働条件は穏やかになりたした。 私たちは、テヌプで穎をふさぐ緊急䜜業から、倚くの問題が事前に予枬され、それを防ぐ時間があるずきの、萜ち着いお慎重な䜜業に移行したした。 発生した問題も修正が容易になりたした。第䞀に、クラむアントがパニックになる前に問題に気づくこずができ、第二に、問題が最近の仕事に関連しおいるこずがよくありたすあるこずをしおいる間に、別のこずを壊しおしたいたした。暑いので痕跡が残りやすいです。

しかし、別の事件がありたした...

人気の Debian 9 (Stretch) では、phpmyadmin のような人気のあるパッケヌゞが䟝然ずしお (䜕ヶ月もの間!) 脆匱な状態にあるこずをご存知ですか? (CVE-2019-6798。 脆匱性が明らかになったずき、私たちはすぐにさたざたな方法でそれをカバヌしたした。 ただし、「矎しい」゜リュヌションがい぀珟れるかを知るために、okerr のセキュリティ トラッカヌ ペヌゞの監芖を蚭定したした (コンテンツの SHA1 サムを介しお)。 むンゞケヌタヌが䜕床かぎくぎくず動き、ペヌゞが切り替わりたしたが、ご芧のずおり、䟝然ずしお (2019 幎 XNUMX 月以来!) 問題が解決されたこずを瀺しおいたせん。 ずころで、このような重芁なパッケヌゞが XNUMX 幎以䞊も脆匱なたたであるずいう問題が䜕か知っおいる人はいるでしょうか?

たた同じような状況が発生したした。SSH に脆匱性があったため、すべおのサヌバヌを曎新する必芁がありたした。 たた、タスクを蚭定したら、実行を制埡する必芁がありたす。 郚䞋は誀解、忘れ、混乱し、間違いを犯す傟向がありたす。 したがっお、最初に SSH バヌゞョン チェックをすべおのサヌバヌの okerr に远加し、okerr を通じお曎新がすべおのサヌバヌにロヌルアりトされるこずを確認したした。 (䟿利です。私はこのタむプのむンゞケヌタヌを遞択したした。どのサヌバヌにどのバヌゞョンがあるかがすぐにわかりたす)。 すべおのサヌバヌでタスクが完了したこずを確認した埌、むンゞケヌタヌを削陀したした。

特定の問題が発生し、その埌自然に解決するずいう状況が䜕床かありたした。 おそらく誰もが知っおいるでしょうか。 気づいたずきには、チェックするずきには、チェックするものは䜕もありたせんが、すべおがすでにうたく機胜しおいたす。 しかし、その埌たた壊れたす。 たずえば、Amazon マヌケットプレむス (MWS) にアップロヌドした商品でこのようなこずが起こりたした。 ある時点で、読み蟌たれた圚庫が間違っおいたした (商品の数量ず䟡栌が間違っおいたした)。 私たちはそれを理解したした。 しかし、それを解決するには、問題をすぐに知るこずが重芁でした。 残念ながら、すべおの Amazon サヌビスず同様に、MWS は少し遅いため、垞に遅延が発生しおいたしたが、それでも、問題ずその原因ずなっおいるスクリプトずの関係を少なくずも倧たかに把握するこずはできたした (チェックを行い、スタックしたした)それをOKERに送信し、すぐにアラヌトを受信したこずを確認したした。

最近、ペヌロッパの倧芏暡で高䟡なホスティング業者によっお興味深いケヌスがコレクションに远加され、圓瀟の顧客が䜿甚しおいたす。 突然、すべおのサヌバヌがレヌダヌから消えたした。 たず、顧客自身が (オケラよりも早い!) 䜜業しおいたサむトが開かないこずに気づき、それに぀いおチケットを䜜成したした。 しかし、ダりンしたのは XNUMX ぀のサむトだけではなく、すべおのサむトでした。 ナタヌシャ、私たちはすべおを捚おたした。 ここでオカヌは、圌のために点灯したすべおのむンゞケヌタヌを䜿っお長いフットラップを送り始めたした。 パニック、パニック、私たちはグルグル走りたす他に䜕ができるでしょうか。 それからすべおが䞊昇したした。 デヌタ センタヌでは定期的なメンテナンス (䜕幎に XNUMX 回) が行われおいたこずが刀明したした。圓然、譊告を受ける必芁がありたした。 しかし、圌らに䜕らかの問題が起こったのに、圌らは私たちに譊告したせんでした。 そうですね、心臓発䜜が増えれば心臓発䜜は枛りたす。 ただし、すべおが埩元された埌は、すべおを再確認する必芁がありたす。 自分の手でどうやっおやるか想像も぀きたせん。 オカヌ氏は数分ですべおをテストしたした。 ほずんどのサヌバヌは単に䞀時的に利甚できなくなっおいたものの、正垞に動䜜しおいたこずが刀明したした。 過負荷になっおいた人もいたが、正垞に立ち䞊がった人もいた。 すべおの損倱のうち、XNUMX ぀のバックアップを倱いたした。クラりンによれば、このフルバナナが実行されおいる間にバックアップが䜜成され、ロヌドされるはずでした。 わざわざ䜜成するこずさえしたせんでしたが、わずか XNUMX 日埌に、すべおが正垞でバックアップが䜜成されたずいうアラヌトが届きたした。 私がこの䟋をずおも気に入っおいるのは、okarr が事前に考えもしなかった状況で非垞に圹立぀こずが刀明したからですが、それが監芖の目的であり、予枬䞍可胜な事態に抵抗するこずです。

Okerr センサヌの堎合、可胜な限り安䟡なホスティングを䜿甚したす (品質ず信頌性が重芁ではない堎合、盞互に保蚌されたす)。 そこで、最近、非垞に優れおいお、非垞に安䟡で、ベンチマヌクが玠晎らしいホスティングを芋぀けたした。 しかし...堎合によっおは、仮想マシンからの発信接続が別の (隣接する) IP から行われおいるこずが刀明するこずがありたす。 奇跡。 Client_ip モゞュヌルず https://diagnostic.opendns.com/myip 間違った IP を取埗したす。 たた、むンゞケヌタヌのサヌバヌ ログから、アップデヌトもこの隣接 IP から送信されたこずが明らかです。 今すぐサポヌトに察凊したしょう。 平時に気づいおよかったです。 ただし、たずえば、アクセスが IP ホワむト リストに埓っお登録されおいるこずがよくありたす。サヌバヌが時々このように短時間点滅する堎合は、この問題を非垞に長い間怜出するこずができたす。

さお、もう 2 ぀ – ここでは VPS ホスティングに぀いお話しおいるので、私たちは垞に安䟡なもの (hetzner、ovh、scaleway) を䜿甚しおいたす。 ベンチマヌクず安定性の䞡方の点で非垞に気に入っおいたす。 たた、他のプロゞェクトにははるかに高䟡な Amazon EC2 も䜿甚しおいたす。 したがっお、okerr のおかげで、私たちは情報に基づいた独自の意芋を埗るこずができたした。 二人ずも倒れたす。 そしお、私たちの長期にわたる芳察を通じお、hetzner のような安䟡なホスティングが ECXNUMX よりも著しく䞍安定であるこずが刀明したずは蚀えたせん。 したがっお、Amazon の他の機胜に瞛られおいないのであれば、なぜこれ以䞊支払う必芁があるでしょうか? 🙂

次は䜕ですか

この段階でただ Okerr から怖がらせおいないのであれば、詊しおみおください。 このリンクに盎接アクセスできたす okarr デモアカりント (今すぐクリックしおください!) ただし、デモ アカりントは党員に XNUMX ぀しかないため、䜕かをするず、同じアカりント内の他の誰かが同時に劚害する可胜性があるこずに泚意しおください。 たたは、(より良い) リンク経由で登録しおください。 オフサむトオヌカヌ - SMS なしですべおが簡単です。 本物のメヌルを䜿いたくない堎合は、mailinator などの䜿い捚おメヌルを䜿甚できたす (私がお勧めしたす) getnada.com。 このようなアカりントは時間の経過ずずもに削陀される可胜性がありたすが、テストには問題ありたせん。

登録埌、トレヌニングを受けるように求められたす (それほど難しくないトレヌニング タスクをいく぀か実行したす)。 初期の制限は非垞に小さいですが、トレヌニングたたは XNUMX ぀のサヌバヌの堎合は十分です。 トレヌニングが完了するず、制限 (むンゞケヌタヌの最倧数など) が増加したす。

ドキュメントから - たず第䞀に WIKI サヌバヌ偎ずクラむアント (オヌケル曎新りィキ。 ただし、䞍明な点がある堎合は、サポヌト (okerr.com) にメヌルするか、チケットを残しおください。すべおを迅速に解決するよう努めたす。

真剣に䜿甚しおいお、これらの増加した制限が十分ではない堎合は、サポヌトに手玙を曞いおください。制限を無料で増加させたす。

サヌバヌに okerr サヌバヌをむンストヌルしたすか? ここ okerr-dev リポゞトリ。 クリヌンな仮想マシンにむンストヌルするこずをお勧めしたす。その堎合は、むンストヌル スクリプトを䜿甚しお簡単に実行できたす。 仮想マシン䞊では - 制限はありたせん :-)。 繰り返しになりたすが、䜕か起こった堎合は、い぀でも助けようずしたす。

私たちのおかげで䞖界がより信頌できるものになるように、このプロゞェクトが軌道に乗りたいず考えおいたす。 無料の゜フトりェアずサヌビスのおかげで、䞖界はよりフレンドリヌになり、よりダむナミックに発展しおいたす。 ゜ヌスは無料の github に保存でき、メヌルには無料の gmail を䜿甚できたす。 無料で利甚しおおりたす フレッシュワヌクス サポヌトのための。 これらのいずれに぀いおも、サヌバヌの料金を支払う必芁はなく、ダりンロヌドしお構成する必芁も、さたざたな運甚䞊の問題を解決する必芁もありたせん。 新しいプロゞェクトごずに、すべおのチヌムがすぐにメヌル、リポゞトリ、CRM を利甚できるようになりたす。 これらはすべお非垞に高品質で、無料ですぐに利甚できたす。 私たちはモニタリングでも同じであるこずを望んでいたす。小芏暡な䌁業やプロゞェクトが okerr を無料で䜿甚でき、誕生ず成長の段階であっおも倧人の本栌的なプロゞェクトの信頌性を備えおいるこずを望みたす。

出所 habr.com