背景
小さな工場、小さなサーバールーム(2x4メートル)、多数のラックマウントサーバー、ストレージ、UPS。 24時間体制で動作するエアコン。
平和、労働、5月1日午前7時、工場からの電話、警備員:「サーバールームの火災警報器は作動し、ドアは熱く、燃えるような臭いはありません。」 「近くに立つ消火器で武装し、ドアを開けて行く」と指示を出します。ベルが道路に沿って鳴りました。
最初の電話から30分後、サーバールームの近くにいます。 本当に暑い。 サーバーはクーラーにうるさいです。 エアコンがオフになっています。 スイッチで、私はエアコンをオフにし、待って、再びオンにします、「ピーク」、しかしそれは冷めません。 私たちは、私たちの組織にサービスを提供するエアコンを呼び出し、エアコンのガス圧をチェックします。ガスがありますが、圧力が小さいので、ガスを追加して冷却します。 ドアを閉めて、待って、入って、涼しく、サーバーはクーラーに心地よくうるさいです。 リークの検索に同意します。 分岐します。 バーベキュー。 5月1日、労働。 世界。
さらに猫の下。
挑戦する
サーバールームの温度を監視します。
1.あらゆる種類の追加センサー、通知はどこにでも。
工場には火災やあらゆる種類のアラームを扱う組織があり、わかりやすいものを提供できませんでした。
2.バルブ、ファン、フィルターを使用した強制換気。
サーバーの場所は、プロジェクトがなく、これに接続しない限り、さまざまなタイプのサービスでこれを行うことはできません。 もちろん機会はありますが、これらのサービスの欲求はゼロになります。 「自分でやる」
3.既存のハードウェアのセンサー。
監視テストと少なくとも何らかの警告のために私はこれをやめました。
デノウメント
サーバールームには、たくさんのカラフルな鉄があります。 そして、それらはすべてセンサーを含んでいます、それは事実です。 しかし、選択はMikrotik RouterBoard 2011UAS-RMで決まりました。 理由を説明します。
1.彼はエアコンを吹く最初の人です。
2.彼にはクーラーがありません。
3.温度センサーの存在。
4.ラックの上部にあります。
5. Linux。
6.独自のスクリプト言語。
7. SMBボールの可用性。
8.電子メールを送信する機能。SMSは使用しません。
あなたがする必要があるのは、その温度をチェックすることだけです。 メールで通知します。 セキュリティポストに通知します。 温度が目的の値を超える場合。
チュートリアル
1. Mikrotikには、正常に機能するように構成されたインターネット電子メール送信があります。
2.温度を確認し、測定値を電子メールに送信するためのスクリプトを作成します。
:global temp1 :set temp1 30 :global temp2 [/system health get temperature] :if ($temp2 > $temp1) do= {/tool e-mail send to=email@email.ru subject=Warning_Temperature body="Warning!!! Room temperature - $temp2 Degrees"}
:global temp1
みましょう
:global temp1
温度しきい値の
:global temp1
変数
:set temp1 30
温度しきい値
:global temp2 [/system health get temperature]
を取得して変数に入れる
:if ($temp2 > $temp1) do= {/tool e-mail send to=email@email.ru subject=Warning_Temperature body="Warning!!! Room temperature - $temp2 Degrees"}
温度がしきい値を超えていれば、メールで通知を送信するのは簡単です。 他のスクリプトのグローバル変数。
スケジューラのデータスクリプト。30分ごとに1回実行されますが、同時に好きなときに実行できます。
3.ポストでセキュリティを警告します。 サーバーとセキュリティポストは異なるフロアにありますが、ネットワークは1フロアです。 また、投稿には、Windowsマシンに接続されたカメラ付きの大型テレビがあります。
だから:
Mikrotik / ip smbでボールをオンにします。 ユーザーを作成し、// mikrotik / pubへのアクセス権を付与します。
スクリプトを書いています。
:global t :set t 1 :global f :set f 0 /file set pub/temp.txt contents=$f :if ($temp2 > $temp1) do= {/file set pub/temp.txt contents=$t}
分析します。 温度が悪い場合の変数
:global t
ユニットに変数を割り当てる
:set t 1
温度が良い場合
:set t 1
変数を
:set t 0
する
:set t 0
変数をゼロに割り当てる
:set t 0
を
:set t 0
するpub / temp.txt“ 0”
/file set pub/temp.txt contents=$f
温度を確認します
:if ($temp2 > $temp1) do= {/file set pub/temp.txt contents=$t}
温度がファイルpub / temp.txt 0の基準を超えている場合、1ずつ変更します。
スケジューラのデータスクリプト。30分ごとに1回実行されますが、同時に好きなときに実行できます。
4.ガードポストでWindowsマシンに警告します。
必要なのは、// mikrotik / pub / temp.txtファイルを定期的に読み取ることだけです。 ファイル0で何も行われず、1である場合、画面(私の場合はTV)に、問題の解決に役立つ警告とその他の情報を大きな赤い文字で表示します。 このプログラムは、何でも簡単に作成できます。 手元にはDelphiがあり、書いていました。
はい、あなたは集団農場とそのすべてを言いますが、これまでのところそのような決定。 セキュリティは気にする必要はありませんでしたが。