Βήμα 1: Προσθέστε το αποθετήριο Sensu
Βήμα 2: Εγκαταστήστε τα απαραίτητα πρόσθετα
Βήμα 3: Προσθήκη αρχείων διαμόρφωσης
Βήμα 4: Δώστε δικαιώματα στον χρήστη sensu
Στον οδηγό " Πώς να εγκαταστήσετε και να ρυθμίσετε την παρακολούθηση Sensu στο CentOS 7 ", μάθατε πώς να ρυθμίζετε έναν διακομιστή Sensu. Αυτό το σεμινάριο είναι το δεύτερο μέρος, όπου θα μάθετε πώς να προσθέτετε έναν πελάτη Sensu. Ένας πελάτης Sensu είναι ένας διακομιστής που παρακολουθεί το Sensu.
Υποθέτω ότι ο πελάτης Sensu είναι μια εικονική μηχανή CentOS 7. Συνδεθείτε στο SSH και ακολουθήστε τα παρακάτω βήματα. Δεν θα χρειαστεί να αλλάξετε τίποτα στον διακομιστή Sensu. Εφόσον ο πελάτης Sensu πραγματοποιεί επιτυχή έλεγχο ταυτότητας με τον διακομιστή Sensu, οι έλεγχοι θα εκτελούνται αυτόματα.
Πριν ξεκινήσουμε, βεβαιωθείτε ότι το τείχος προστασίας σας έχει ρυθμιστεί σωστά. Με μια προεπιλεγμένη ρύθμιση, ανοίξτε τις εξερχόμενες θύρες TCP 5671και 5672.
Βήμα 1: Προσθέστε το αποθετήριο Sensu
Το πακέτο sensu-clientδεν βρίσκεται στα προεπιλεγμένα αποθετήρια CentOS. Προσθέστε το αποθετήριο επικολλώντας το ακόλουθο περιεχόμενο στο αρχείο /etc/yum.repos.d/sensu.repo:
[sensu]
name=sensu
baseurl=https://sensu.global.ssl.fastly.net/yum/$releasever/$basearch/
gpgcheck=0
enabled=1
Στη συνέχεια, ενημερώστε yumκαι εγκαταστήστε sensu-client:
yum update
yum install sensu
Όλες οι υπηρεσίες ( sensu-server, sensu-clientκαι sensu-api) θα εγκατασταθούν με την εγκατάσταση του sensuπακέτου. Μπορείτε να αγνοήσετε με ασφάλεια όλες τις υπηρεσίες εκτός από sensu-clientαυτές που θα χρησιμοποιήσουμε. Μην ξεκινήσετε ακόμη την υπηρεσία.
Βήμα 2: Εγκαταστήστε τα απαραίτητα πρόσθετα
Το μοντέλο της Sensu είναι να κατανέμει το φορτίο στους πελάτες που προκύπτει από την εκτέλεση ελέγχων και την προώθηση αποτελεσμάτων ελέγχου. Ως αποτέλεσμα, πρέπει να εγκαταστήσετε προσθήκες Sensu στους ίδιους τους πελάτες και όχι στον διακομιστή Sensu. Ορισμένα πρόσθετα έχουν μεταγλωττιστεί τοπικά, πράγμα που σημαίνει ότι θα χρειαστούμε εργαλεία κατασκευής στους πελάτες:
yum groupinstall "Development tools"
Τα παρακάτω πρόσθετα είναι πολύ δημοφιλή και χρησιμοποιούνται για πολλούς ελέγχους. Εκτελέστε καθεμία από αυτές τις εντολές για να εγκαταστήσετε τα πρόσθετα μόλις εγκατασταθούν τα πακέτα εργαλείων ανάπτυξης. Ανάλογα με το μέγεθος του διακομιστή σας, αυτό μπορεί να διαρκέσει λίγο:
sensu-install -p uptime-checks
sensu-install -p process-checks
sensu-install -p http
sensu-install -p filesystem-checks
sensu-install -p cpu-checks
sensu-install -p memory-checks
sensu-install -p disk-checks
sensu-install -p load-checks
sensu-install -p network-checks
Βήμα 3: Προσθήκη αρχείων διαμόρφωσης
Θα προσθέσουμε τέσσερα αρχεία διαμόρφωσης στον πελάτη Sensu.
/etc/sensu/conf.d/client.json:
Αυτό το αρχείο περιέχει συνδρομές, τη διεύθυνση IP για τον πελάτη Sensu και το όνομα του πελάτη. Αντικαταστήστε τις τιμές ipaddressκαι hostnameμε τιμές που περιγράφουν τον πελάτη που προσθέτετε. Επίσης, καθορίστε τις συνδρομές που ορίζονται στον διακομιστή Sensu ή, εάν δεν έχετε, καταργήστε ολόκληρη την subscriptionsενότητα. Μην ξεχάσετε να αφαιρέσετε το κόμμα αφού nameτο κάνετε:
{
"client": {
"address": "-----ipaddress-----",
"environment": "production",
"name": "-----hostname-----",
"subscriptions": [
"linux"
]
}
}
/etc/sensu/conf.d/transport.json:
Σε αυτό το αρχείο, ορίζουμε τη μεταφορά που χρησιμοποιείται. Από προεπιλογή, η μεταφορά που χρησιμοποιείται είναι RabbitMQ. Επικολλήστε τα παρακάτω περιεχόμενα στο αρχείο. Δεν χρειάζεται αλλαγή τιμών:
{
"transport": {
"name": "rabbitmq",
"reconnect_on_error": true
}
}
/etc/sensu/conf.d/rabbitmq.json:
Ο διακομιστής RabbitMQ και τα διαπιστευτήρια καθορίζονται σε αυτό το αρχείο. Αντικαταστήστε hostnameμε το όνομα DNS. Από προεπιλογή, η θύρα είναι 5672για μη κρυπτογραφημένες συνδέσεις. Ο χρήστης και ο κωδικός πρόσβασης RabbitMQ θα πρέπει επίσης να αντικατασταθούν. Αυτές οι λεπτομέρειες μπορεί να διαφέρουν για κάθε πελάτη Sensu ή να είναι ίδιες για όλους τους πελάτες. Αυτή είναι μια πρακτική απόφαση που λαμβάνεται από τον χρήστη.
Το vhostείναι /από προεπιλογή αλλά συχνά αλλάζει σε /sensu. Εάν δεν είστε σίγουροι ποιο να χρησιμοποιήσετε, δοκιμάστε και τα δύο:
{
"rabbitmq": {
"host": "-----hostname-----",
"password": "-----rabbitmq_password-----",
"port": 5672,
"user": "-----username-----",
"vhost": "/sensu"
}
}
/etc/sensu/conf.d/checks.json:
Το Sensu υποστηρίζει δύο τύπους επιταγών: αυτόνομους ελέγχους και ελέγχους συνδρομής. Οι έλεγχοι συνδρομής ορίζονται στον διακομιστή Sensu και οι συνδρομές ορίζονται στο client.jsonαρχείο ενός πελάτη Sensu. Οι αυτόνομες επιταγές είναι επιταγές που ορίζονται στους ίδιους τους πελάτες Sensu. Αυτοί είναι συνήθως έλεγχοι που ισχύουν μόνο για έναν συγκεκριμένο διακομιστή. Για παράδειγμα, ένας έλεγχος που θα ήταν σε μια συνδρομή είναι ένας έλεγχος για να δείτε εάν ο διακομιστής web εξακολουθεί να εκτελείται. Ένας αυτόνομος έλεγχος θα μπορούσε να είναι ένας έλεγχος για να δείτε εάν ο διακομιστής Α μπορεί να φτάσει στον διακομιστή Β. Κανένας άλλος διακομιστής δεν χρειάζεται αυτόν τον έλεγχο.
Οι αυτόνομοι έλεγχοι ορίζονται σε αυτό το αρχείο. Παρακάτω θα βρείτε ένα παράδειγμα checks.jsonαρχείου με μερικά παραδείγμα��α αυτόνομων ελέγχων:
{
"checks": {
"httpd": {
"command": "sudo check-process.rb -p httpd",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
},
"mysqld": {
"command": "sudo check-process.rb -p mysqld",
"handlers": [
"default",
"pushover"
],
"interval": 180,
"occurences": 3,
"refresh": "1800",
"standalone": true,
"ttl": 1200
}
}
}
Αφού ολοκληρώσετε τη διαμόρφωση του προγράμματος-πελάτη Sensu, αλλάξτε τα δικαιώματα:
chown -R sensu:sensu /etc/sensu/conf.d
Βήμα 4: Δώστε δικαιώματα στον sensuχρήστη
Οι έλεγχοι εκτελούνται ως χρήστης sensu. Φυσικά, αυτός ο χρήστης έχει περιορισμένα δικαιώματα. Ωστόσο, ορισμένοι έλεγχοι χρειάζονται rootδικαιώματα για να εκτελεστούν. Θα επιτρέψουμε στον χρήστη sensuνα εκτελέσει οποιονδήποτε έλεγχο, rootαλλά να περιορίσει τα άλλα δικαιώματά του.
Επικολλήστε τα ακόλουθα περιεχόμενα στο αρχείο /etc/sudoers.d/sensu:
Defaults:sensu
secure_path=/opt/sensu/embedded/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/check*.rb *
sensu ALL=(ALL) NOPASSWD: /opt/sensu/embedded/bin/metrics*.rb *
Οι δύο πρώτες γραμμές ορίζουν την προεπιλεγμένη διαδρομή που σας επιτρέπει να καθορίσετε μόνο το όνομα του σεναρίου στην εντολή ελέγχου και όχι ολόκληρη τη διαδρομή. Για παράδειγμα, η απλή χρήση της εντολής sudo check-process.rb -p mysqldθα λειτουργήσει χωρίς να χρειάζεται να καθορίσετε ολόκληρη τη διαδρομή ( /opt/sensu/embedded/bin/check-process.rb -p mysqld).
Οι άλλες γραμμές επιτρέπουν στο sensuχρήστη να εκτελέσει οποιοδήποτε σενάριο ελέγχου ως root.
Τέλος, ξεκινήστε την sensu-clientυπηρεσία και ξεκινήστε την αυτόματα κατά την εκκίνηση:
systemctl start sensu-client
systemctl enable sensu-client
Εάν έχετε εγκαταστήσει το Uchiwa, ο νέος πελάτης θα πρέπει να εμφανίζεται στη λίστα. Εάν όχι, διορθώστε το sensu-clientεπιθεωρώντας το αρχείο καταγραφής/var/log/sensu/sensu-client.log