故障セット---Postgresql+keepalived主備切替故障

3274 ワード

前言:
postgresql+keepalivedを高可用性に導入する場合、keepalivedプロファイルにモニタリングスクリプトを設定してpostgresqlサービスを関連付けるのが一般的ですが、もともとこれも小さな問題で、不注意によるものですが、記録しておきましょう.
クラスタ構成
  • 台のサーバー、したpostgresql主従、同時に2台のサーバーの上でkeepalived主備切替
  • をしました
  • keepalivedプロファイルは以下の通り(もう1台はBACKUP、構成は正常):
  • ! Configuration File for keepalived
    
    global_defs {
       router_id LVS_3
       script_user root
       enable_script_security
    }
    vrrp_script chk_http_port {
        script "/usr/local/bin/check_postgres.sh"
        interval 2
        weight -20
    }
    vrrp_instance VI_PG {
        state MASTER
        interface ens160
        virtual_router_id 50
        priority 101
        advert_int 1
        unicast_src_ip  192.168.230.128
        unicast_peer {
            192.168.230.122
        }
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.230.100
        }
        track_script {
            chk_http_port
        }
    
    }
    
  • check_postgres.sh検出スクリプトは以下の通りである:
  • #!/bin/bash
    
    count=`netstat -an|grep ":5432" | grep LISTEN| wc -l`
    
    if [ "$count" == "0" ]; then
        systemctl stop keepalived
    fi
    
  • crontab周期的実行check_を同時に設定postgres.sh
  • 問題現象:
  • keepalivedが少し起動するとcheck_postgres.shモニタスクリプトが乾く(ただし、プライマリサーバ上のPGサービスは正常)
  • 解決:
  • 不注意なエラーです.keepalivedには周期的な実行スクリプトが設定されており、crontabの周期的なタスクが設定されています.繰り返しトリガによる異常現象のため、crontabの情報を削除すればよい..

  • 小結
  • emmm...プロファイルの各プロファイルの機能と役割を熟知してください.
  • をよく観察する