Υπηρεσίες παρακολούθησης με xinetd

Σχετικά με το xinetd

Το xinetd (εκτεταμένο daemon υπηρεσιών Internet) εκτελεί την ίδια λειτουργία με το inetd: εκκινεί προγράμματα που παρέχουν υπηρεσίες Internet.

Αντί να υπάρχουν τέτοιοι διακομιστές που ξεκινούν από το χρόνο αρχικοποίησης του συστήματος και είναι αδρανείς μέχρι να φτάσει ένα αίτημα σύνδεσης, το xinetd είναι η μόνη διαδικασία daemon που ξεκίνησε και ακούει σε όλες τις θύρες υπηρεσιών για τις υπηρεσίες που αναφέρονται στο αρχείο διαμόρφωσης.

Όταν εισέρχεται ένα αίτημα, το xinetd ξεκινάει το κατάλληλο σενάριο.

Δείγμα αρχείου ρυθμίσεων xinetd

Ακούστε τις συνδέσεις στη θύρα 9001. Εκτελέστε το σενάριο κελύφους cassandra_status για κάθε νήμα και επιστρέψτε το αποτέλεσμα.
υπηρεσία cassandra_monitor
{
σημαίες = REUSE
socket_type = ροή
θύρα = 9001
περιμένετε = όχι
user = κανείς
server = /home/xinetd/cassandra_status.sh
log_on_failure + = USERID
απενεργοποίηση = όχι
}

Εγκατάσταση του xinetd

Στο FreeBSD:
cd / usr / ports / security / xinetd
κάνε όλα
make install

Στο CentOS:
yum install xinetd

Ρύθμιση των σεναρίων παρακολούθησης

xinetd light weight server makes it easy to test several conditions, before returning a response of “All good” to a third party monitoring script like Pingdom.

Here’s a sample xinetd shell monitoring script that we use to detect if a Cassandra node is running properly.

#! / usr / local / bin / bash
## Ελέγξτε αν η εναλλαγή είναι πάνω 20%

 

SWAP=`top -n | grep Swap | awk ‘{print $ 8 + 0}’`
αν [$ SWAP -ge 20]
τότε
# λάθος εμφανίστηκε, επιστρέψτε http 503
/bin/echo “HTTP/1.1 503 Service Unavailablern”
/bin/echo “rn”
έξοδος
fi # Ελέγξτε αν ήδη εκτελούνται άλλες περιπτώσεις αυτού του σεναρίου, επιτρέποντας το μέγιστο 10 να τρέχει ταυτόχρονα
ALREADY_RUNNING = 'ps auxww' grep bash | grep cassandra_status.sh | wc -l`
εάν [$ ALREADY_RUNNING -ge 10]
τότε
# λάθος εμφανίστηκε, επιστρέψτε http 503
/bin/echo “HTTP/1.1 503 Service Unavailablern”
/bin/echo “rn”
έξοδος
fi # Αποκτήστε το ip μου
MYIP=`dig +noall +answer cassandra-local | awk ‘{print $ 5; nextfile;}’` # Get ring information (to verify we can see the whole ring)
# στη συνέχεια εξαγάγουμε την κατάσταση του κόμβου μας και επαληθεύουμε ότι είναι επάνω
ERROR_MSG=`/home/cassandra/bin/nodetool ring | grep “$ MYIP” | grep Up`if [

 

“$ ERROR_MSG” != “” ]
τότε
# όλα είναι καλά, επιστρέψτε http 200
/bin/echo “HTTP/1.1 200 OKrn”
/bin/echo “rn”
αλλιώς
# λάθος εμφανίστηκε, επιστρέψτε http 503
/bin/echo “HTTP/1.1 503 Service Unavailablern”
/bin/echo “rn”
fi

 

Αφήστε μια απάντηση

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει το spam. Μάθετε πώς επεξεργάζονται τα δεδομένα των σχολίων σας.