アクションスクリプトキープアライブの最適化モードを実行します

ブログ基づいて最適化準備環境
「迅速キープアライブサービスの可用性を切り替えるには、スクリプトキープアライブモード、デュアルメインコンフィギュレーション実行」のスクリプトキープアライブの方法のやり方で実行を

実行モードは、スクリプトを使用する場合は、次のように、スクリプトの設定は次のとおりです。

[root@lb01 script]# cat /server/script/web_check.sh 
#!/bin/bash 
	   web_info=$(ps -ef|grep -v grep|grep -c nginx) 
	   if  [ $web_info -lt 2 ]
	   then 
	       systemctl stop keepalived 
	   fi

このアプローチの欠点は、(キープアライブサービスが停止されたため)nginxの修理まあ場合は、キープアライブサービスリソースが戻って急いではないということです

あなたが重みの方法を使用する場合は、VIPを作るために停止し、キープアライブの方法でサービスを維持することができます。

重量値と優先順位を使用する方法(この方法では、我々は未来を防ぐことができ、自分自身に良いを停止nginxの算術んが、サービスが、それは後でnginxの停止であれば、キープアライブ方法の切り替えを停止しないで、自分のキープアライブの問題を開始しません体重、バックアップサーバーを与えるによると、それはときnginxのサービスに復元することが可能で、自動的にリソースを奪う、重み値を計算します)
ケース1:時計重みの設定が正の数の情報である
スクリプトを実行成功をロードする:スクリプトは戻り値を完了0実際の優先=重量値+セット優先事項である
スクリプトが失敗し、負荷B:スクリプトは非ゼロ本当の優先順位の戻り値を完了します=設定された優先度の
アプリケーション备服务器上(増加重量値)

ケース2:重量負情報セットにフォーカスか
負荷が成功スクリプトの実行:スクリプトを実行すると、0 =実際の優先セット優先順位の値を返し
スクリプト完了値=非ゼロの実際の優先度設定の優先順位を返す:bは負荷スクリプトに失敗し-重み値を
適用主服务器上(軽量値)

しかし、我々はここにいる効果は、私たちがちょうどリストの1番出口を設定して、後でnginxの停止を利用することが私たちの優先順位を減らすことです。我々は0で終了について話しているが、ここでは以下である。一方で 我々は、構成テーブル缶に唯一の方法であるため、

私はここでの主なキープアライブで設定する方法を持って、否定的な方法を採用します

調製思路
マスターキープアライブサーバnginxの------通常の優先度の変更(メイン装置100の初期設定150)
キープアライブブロックオフNGINプライマリサーバが、戻り値が非0の場合--- ---- ----優先度(-100)を減少- 50となる
アドレスVIPキープアライブスタンバイサーバを漂流達成します。

nginxのの主なサービスは、再び起動した場合、戻り値は0〜優先度定数(150)---- VIPキープアライブアドレスとメインサーバに漂流。

キープアライブのメインの設定ファイル:

[root@lb01 conf.d]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   router_id lb01
}
vrrp_script check_web {
    script "/server/script/web_check.sh"
    interval 2
    weight -100 
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      10.0.0.3
    }
    track_script {
     check_web
}
}

注意:あなたが知っていることはありませんので、我々は、デュアルマスター構成を設定する最後の時間は、唯一の方法、10.0.0.3非存在準備キープアライブ設定では、このものconfigureメイン設定の時間(VIPアドレスを監視する際に、キープアライブとから風と共に去りぬサーバ、nginxのは)状況が発生し起動しません

エラー次のようにヒントがあります:

[root@lb01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] bind() to 10.0.0.3:80 failed (99: Cannot assign requested address)
nginx: configuration file /etc/nginx/nginx.conf test failed

ソリューション

[root@lb01 conf.d]# echo 'net.ipv4.ip_nonlocal_bind = 1' >>/etc/sysctl.conf
[root@lb01 conf.d]# sysctl -p
net.ipv4.ip_nonlocal_bind = 1

情報のマスターの設定スクリプト

[root@lb01 conf.d]# cat /server/script/web_check.sh
#!/bin/bash 
	   web_info=$(ps -ef|grep -v grep|grep -c nginx) 
	   if  [ $web_info -lt 2 ]
	   then 
              exit 1
           else
              exit 0
	   fi

Backupサーバーの設定ファイル(备服务器不必编写判断脚本!)
の前提は、すでにVIPアドレス10.0.0.3を設定されていないがある場合に監視することができます

[root@lb02 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server smtp.162.com
   smtp_connect_timeout 30
   router_id lb02
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
      10.0.0.3
    }
}

実験は、nginxのは、メインサーバの後に優れた修復を達成し、自動的にキープアライブの資源を奪うことができ、あなたがキープアライブ人間のサービスを開始することはできません表示されます。

しかし、是出现一点问题あること、後に最初に構成された、無目的の効果は、特に私は何かが何であるかは変更されませんでした(時間の期間を試運転した後に、達成することができ起こる、私が送信され、これらの構成は、私がスタート構成と今日を押し下げています設定なしの違いを、なぜ今の成功、何の成功を開始しません。)

彼は183元の記事を発表 ウォン称賛17 ビュー30000 +

おすすめ

転載: blog.csdn.net/weixin_42506599/article/details/104420584