PythonのThreadを使ってサーバの死活監視をしたいです。
| 登録日 | :2024/04/13 05:15 |
|---|---|
| カテゴリ | :Python基礎 |
サーバの死活監視を行うためにPythonのThreadを使用する場合、通常は以下の手順になります:
監視したいサーバに対して、定期的に接続を試みる関数を作成します。
その関数を実行するスレッドを作成し、定期的に実行します。
サーバからの応答を確認し、応答がない場合はサーバがダウンしていると判断します。
以下は、この手法を用いたサーバの死活監視の例です:
import threading
import time
import socket
def check_server(server_address, interval):
while True:
try:
# サーバに接続してみる
with socket.create_connection(server_address, timeout=5) as sock:
print(f"Server {server_address} is UP")
except (socket.timeout, ConnectionRefusedError):
print(f"Server {server_address} is DOWN")
time.sleep(interval)
# 監視対象のサーバと監視間隔を設定
server_address = ("example.com", 80)
interval = 10 # 監視間隔(秒)
# 監視スレッドを開始
t = threading.Thread(target=check_server, args=(server_address, interval))
t.start()
# メインスレッドはここで待機
t.join()
この例では、check_server関数で指定した間隔でサーバに接続を試み、サーバの状態を監視しています。サーバがダウンしている場合はログに出力します。