Linux で高可用性ロード バランサー監視を構成する方法

王林
リリース: 2023-07-06 23:37:38
オリジナル
1221 人が閲覧しました

Linux で高可用性ロード バランサー監視を構成する方法

最新のインターネット アプリケーション アーキテクチャでは、ロード バランサーは重要なコンポーネントであり、アクセス要求を複数のサーバーに分散して全体的なパフォーマンスと使いやすさを向上させることができます。ただし、ロード バランサー自体がシステム内の単一障害点になる可能性があります。この問題を解決するには、高可用性テクノロジーを使用してロード バランサーの可用性を確保します。この記事では、Linux 上で高可用性ロード バランサーの監視を構成する方法を紹介し、関連するコード例を示します。

  1. ロード バランサーのインストールと構成

まず、適切なロード バランサー ソフトウェアを選択する必要があります。 Linux で一般的に使用されるロード バランサー ソフトウェアには、Nginx、HAProxy、Keepalived などがあります。この記事では、例として Keepalived を使用して構成します。

次のコマンドを使用して Linux に Keepalived をインストールします:

$ sudo apt-get install keepalived
ログイン後にコピー

インストールが完了したら、高可用性を有効にするために Keepalived を構成する必要があります。 /etc/keepalived/ ディレクトリに keepalived.conf という名前のファイルを作成し、次の設定内容をファイルに追加します。

# 只在主节点上运行
vrrp_script check_http {
        script "/usr/local/bin/check_http.sh"
        interval 2
}
vrrp_instance VI_1 {
        state MASTER
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
                auth_type PASS
                auth_pass example
        }
        virtual_ipaddress {
                10.0.0.1/24
        }
        track_script {
                check_http
        }
}
ログイン後にコピー

このうち、check_http.sh は、バックエンド サーバーの可用性を確認するためのカスタマイズされたスクリプトです。ロードバランサーが存在する場所。実際のニーズに応じてスクリプトを作成できます。

  1. ロード バランサー監視の構成

Keepalived の構成が完了したら、他のツールを使用してロード バランサーの実行ステータスを監視できます。この記事では、単純な Python スクリプトを使用してロード バランサーの可用性を監視します。

まず、Python のリクエスト モジュールをインストールする必要があります:

$ sudo pip install requests
ログイン後にコピー

次に、check_lb.py という名前の Python スクリプトを作成し、次のコードをファイルに追加します:

import requests

def check_lb():
    try:
        response = requests.get('http://10.0.0.1')
        if response.status_code == 200:
            print('负载均衡器正常运行')
        else:
            print('负载均衡器故障')
    except requests.exceptions.RequestException as e:
        print('负载均衡器故障')

if __name__ == '__main__':
    check_lb()
ログイン後にコピー

In上記のコードでは、リクエスト ライブラリを使用して HTTP リクエストを送信し、返されたステータス コードを確認します。ステータス コードが 200 の場合はロード バランサが正常に動作していることを意味し、それ以外の場合はロード バランサに障害があることを意味します。

  1. 自動実行監視スクリプトのセットアップ

監視スクリプトを定期的に実行するには、cron タスクを使用してスクリプトを定期的に実行します。ターミナルを開き、次のコマンドを入力します。

$ crontab -e
ログイン後にコピー

開いた cron タスク エディタで、次の行を追加します。

*/5 * * * * /usr/bin/python /path/to/check_lb.py
ログイン後にコピー

上記の設定では、監視スクリプトが 5 分ごとに実行されます。この時間間隔は、実際のニーズに応じて変更できます。

  1. 監視とアラーム

監視スクリプトでは、check_lb() 関数を変更し、アラーム ロジックを追加できます。たとえば、ロード バランサーに障害が発生した場合に電子メールを送信したり、モバイル アプリケーションにメッセージを送信したりします。

これは簡単な例であり、電子メールを送信するためのコード スニペットです:

import smtplib
from email.mime.text import MIMEText

def send_email():
    sender = 'your_email@example.com'
    receiver = 'recipient@example.com'
    subject = '负载均衡器故障'
    message = '负载均衡器无法访问'

    msg = MIMEText(message)
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = receiver

    try:
        smtp_obj = smtplib.SMTP('localhost')
        smtp_obj.sendmail(sender, receiver, msg.as_string())
        smtp_obj.quit()
        print('邮件已发送')
    except smtplib.SMTPException:
        print('邮件发送失败')
ログイン後にコピー

上記のコードでは、smtplib ライブラリを使用して電子メールを送信しています。まず、送信者と受信者の電子メール アドレスを設定し、次に MIMEText オブジェクトを作成し、送信メッセージと件名をオブジェクトに追加し、SMTP サーバーを使用して電子メールを送信する必要があります。

check_lb() 関数では、ロード バランサに障害が発生した場合に、send_email() 関数を呼び出してアラーム電子メールを送信できます。

概要:

この記事では、Linux 上で高可用性ロード バランサー監視を構成する方法を紹介しました。 Keepalived を使用してロード バランサーの高可用性を提供し、Python スクリプトと cron タスクを使用してロード バランサーの実行ステータスを定期的に監視します。さらに、ロード バランサーに障害が発生した場合に電子メール アラートを送信する方法の簡単な例も示します。これらの手順を実行すると、ロード バランサーの監視およびアラート システムを簡単にセットアップし、アプリケーションの高可用性を確保できます。

以上がLinux で高可用性ロード バランサー監視を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート