KnowHow

技術的なメモを中心にまとめます。
検索にて調べることができます。

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関数で指定した間隔でサーバに接続を試み、サーバの状態を監視しています。サーバがダウンしている場合はログに出力します。