正式な本番環境では、私たちはしばしば、我々はそれを監視する方法をリアルタイム監視ツールのこのタイプは、その後のpythonを使用しZABBIX、多くの場合、我々はNagiosのように使用する、同社のビジネス全体の正常な動作を保証するために、サーバの状態を監視する必要がありますか?ここでは、サーバのメモリ、ディスクを監視するためのpython3コールpsutilとyagmail二つのモジュールを使用し、CPUの状態(と私たちはApacheの実行状態は、ソケットモジュールを使用監視)
メモリ、ディスク、CPUを監視
輸入 psutil
デフ MEM():
MEM = psutil.virtual_memory()
返す MEMを[2]
デフディスク():
ディスク= psutil.disk_usage('/ルート')
リターン・ディスク[3]
デフ CPU():
CPU = psutil.cpu_percent(60)
リターン CPU
= MEM()
B =ディスク()
C = CPU()
輸入 yagmail
YAG = yagmail.SMTP(ユーザー= '[email protected]' 、パスワード= 'cxboscylplifgadd' 、ホスト= 'smtp.qq.com' )
もし > 80:
(=へyag.send '[email protected]'、=件名'メモリアラーム'、内容= 'できるだけ早くメモリの80%以上を実行してください。'、CC = '[email protected]' )
yag.close()
もし B> 70:
yag.send(=に「[email protected]」、件名= 「警報システムディスク」、目次= 「ディスクシステムは、できるだけ早く70%以上を作る」、CC = 「[email protected]」)
yag.close()
もし C> 90:
yag.send(=に'[email protected]' 、件名= 'CPUアラーム'、内容= 'できるだけ早くしてください90%以上のCPU'、CC = '[email protected]' )
yag.close()
監視Webサービス(アラーム)
輸入ソケット、yagmail
ホスト= [ '192.168.8.137:80'、 '192.168.8.15:88' ]
socket.setdefaulttimeout(5)
以下のためのホストでホスト:
IP = host.split(':')[0]
ポート= host.split(':')[1]
サーバー= socket.socket()
server.connect_exの= RES((IP、INT(ポート))) #は、の値を返す 0 の代表、[OK]をない 0 失敗の
もし解像度== 0:
パス
他:
YAG = yagmail.SMTP(ユーザー= '[email protected]' 、パスワード= 'cxboscylplifgadd' 、ホスト= 'smtp.qq.com' )
(=へyag.send '[email protected]' 、件名= '警告'、目次= 'httpdサービス切断要求検出%のS' %のIPを、CC = '[email protected]' )
yag.close()
ように私たちの監視スクリプトのPythonスクリプトが完了し、そして今、あなただけの行に定期的にタスクを実行するサーバーを取得する必要があります。今、私たちはそれを検出する必要があります。
定期的なタスクについて編集
、私たちは、ディスク30を決定するために私たちの価値の検証を容易にするために、実際には、我々は40%を使用している、これら二つの文書の上と2.py 1.pyを書かれた2つのスクリプトを記述しますので、あなたは直接警察を呼ぶことができます2 Apacheサーバのポート80と通常の動作状態です。
私たちは、ちょっと待って。。。。。。。
我々は、それは非常に便利ではありません、2つの警告メッセージを受け取りましたか?