Keepalived çoklu durum TCP_CHECK


0

İki tane korunmuş sunucu altında birkaç web sunucum var ve gerçek bir web sunucusunun sağlığını kontrol etmek için bu korunmuş yapılandırma parçasını kullanıyorum

      TCP_CHECK # healthchecker: HTTP_GET | SSL_GET | TCP_CHECK | SMTP_CHECK | MISC_CHECK
      {
         connect_timeout 3 # Zaman aşımı bağlantısı, sn
         nb_get_retry 3 # yeniden deneme sayısı
         delay_before_retry 3
         connect_port 80
         }

Ancak apache dışında, bu sunucuda mongoların çalışıp çalışmadığını da kontrol etmem gerekiyor ve bu uygulamalardan biri uygun değilse, sunucuyu gerçek sunucular listesinden çıkarmam gerekiyor mu? Öyleyse keepalived's config içine mantıksal ifadeleri nasıl ekleyebilirim?


1
Sanırım bu sorunun cevabını ServerFault
MariusMatutiae

Yanıtlar:


1

MISC_CHECK kullanın:

MISC_CHECK {
   misc_path "/etc/keepalived/servicecheck.sh"
} 

/Etc/keepalived/servicecheck.sh sizin için tüm yararlı kontrolleri yapan bir kabuk betiği olduğunda:

#!/bin/sh

# Check if mongo is running
mongo --eval "db.stats()"
RESULT=$?   # returns 0 if mongo eval succeeds

if [ $RESULT -ne 0 ]; then
    echo "mongodb not running"
    exit 1
else
    echo "mongodb running!"
fi

# Check if apache is running
ps auxw | grep apache2 | grep -v grep > /dev/null

if [ $? != 0 ]
then
        exit 1
fi

Bu sadece bir örnek. Komut dosyanızda istediğiniz miktarda mantık oluşturabilirsiniz. 1 'in herhangi bir iade durumu sunucunun hizmet dışı kalmasına neden olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.