keepalived: il secondo VRRP_Script non sembra mai funzionare

Sto cercando di implementare il keepalived su 3 scatole di mongodb, l'idea è che se il mongod su una delle caselle scende o dobbiamo spostare il nodo primario in un altro sistema per qualche motivo la nostra applicazione non deve essere riconfigurata.

Il keepalived.conf è abbastanza diretto, ci sono 2 VRRP_scripts, uno per controllare che mongod è in esecuzione e l'altro che è inteso per eseguire uno script bash che controlla se l'istanza locale mongod è il nodo primario.

keepalived.conf

!Configuration File for keepalived # Global definitions global_defs { notification_email { myemail@myserver.com } notification_email_from mongodbtest@myserver.com smtp_server smtprelay.penton.com smtp_connect_timeout 30 } # Check to see if mongod is running vrrp_script chk_mongod { script "killall -0 mongod" # verify the pid exists interval 2 # check every 2 seconds # weight 2 # add 2 points if OK } # Check to see if this node is the primary vrrp_script chk_mongod_primary { script "/usr/local/bin/chk_mongo_primary.sh" interval 2 # weight 2 } # Virtual interface configuration vrrp_instance VI_1 { state MASTER interface eth0 #interface to monitor virtual_router_id 51 priority 101 # 101 on mater, 100 on backup virtual_ipaddress { 192.168.122.99 } track_script { chk_mongod chk_mongo_primary } } 

Se chiudo il servizio mongod su un nodo, l'IP fluttuante si sposta in un'altra casella come mi aspetto che vedo l'output come questo in / var / log / messages

 Jul 17 16:23:34 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Script(chk_mongod) failed Jul 17 16:23:35 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) Entering FAULT STATE Jul 17 16:23:35 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) removing protocol VIPs. Jul 17 16:23:35 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) Now in FAULT state Jul 17 16:23:35 mongodbtest01 Keepalived_healthcheckers[30303]: Netlink reflector reports IP 192.168.122.99 removed 

Se mi portno il back-up del mongod, il IP passa di nuovo a quella casella (dato che ha priorità).

 Jul 17 16:27:42 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Script(chk_mongod) succeeded Jul 17 16:27:43 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) prio is higher than received advert Jul 17 16:27:43 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) Transition to MASTER STATE Jul 17 16:27:44 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) Entering MASTER STATE Jul 17 16:27:44 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) setting protocol VIPs. Jul 17 16:27:44 mongodbtest01 Keepalived_vrrp[30304]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.122.99 

Nota VRRP_Script (chk_mongod) in each output di registro quando il mongod scende e viene eseguito il backup. Se tuttavia riconfigurare l'insieme di replica in modo tale che questo nodo non sia più primario, non vedo mai che le mie correzioni eseguite con nome VRRP_Script chk_mongod_primary riescano o non riescono. Ho provato lo script dalla row di command e restituisco each volta il risultato atteso ma non sembra mai essere eseguito da collectd.

Questo è ciò che /usr/local/bin/chk_mongo_primary.sh sembra:

 #!/bin/bash # Check to see if this node is master result=$(mongo --eval "printjson(db.isMaster().ismaster)" 2>&1) m_status=`echo $result | cut -d' ' -f 8` if [ "$m_status" == "true" ] ; then echo "I am primary" exit 0 else echo "I am secondary" exit 1 fi 

Ho provato diverse cose e ho guardato altre configurazioni conservate per vedere se posso capire where sto andando male ma questo mi ha stompato.

Qualcuno può fornire indizi su where andavo storto?

Grazie in anticipo.

  • Perchè ottengo differenti checksum SHA-1 per il catrame di backup identici di mongodump?
  • Installare mongodb come servizio in Windows 8
  • Replica-set di MongoDB con ritardo di replica su un solo nodo
  • Imansible installare MongoDB 3.4 su Debian stretch
  • replica mongodb: nessuna scelta primaria
  • È / home un buon posto per mettere il mio (enorme) file di dati MongoDB?
  • Modo consigliato per installare mongoDB
  • Come sintonizzare le impostazioni di sistema per mongoDB su Linux?
  • One Solution collect form web for “keepalived: il secondo VRRP_Script non sembra mai funzionare”

    Questo è stato risolto, il problema era un nome di script danneggiato con grasso nella sezione track_script del file conf. Questo è stato risolto eseguendo keepalived –dump-conf che analizzava il file di configuration e pubblica i risultati. Ho seguito il command / var / log / messages e ho trovato un errore relativo a uno script di traccia mancante.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.