Table of Contents
Nagios - Παρακολούθηση Υπηρεσιών
Εγκατάσταση
aptitude install nagios3
Frontends
Θα συνδεθούμε στο βασικό web-interface του nagios
Δημιουργούμε ένα νέο αρχείο htpasswd.users με έναν νέο χρήστη nagiosadmin
htpasswd -c /etc/nagios3/htpasswd.users nagiosadmin
Aνοίγουμε την ιστοσελίδα http://localhost/nagios3/ και εισάγουμε το παραπάνω όνομα χρήστη και τον κωδικό που επιλέξαμε
Ρυθμίσεις
Ορισμός hosts
Δημιουργούμε ένα νέο αρχείο host στον φάκελο /etc/nagios3/conf.d/ π.χ. my-host_nagios2.cfg, ως εξής
define host{
use generic-host ; Inherit default values from a template
host_name remotehost ; The name we're giving to this host
alias Some Remote Host ; A longer name associated with the host
address 192.168.1.50 ; IP address of the host
hostgroups http-servers ; Host groups this host is associated with
}
Ορισμός services
Θα ορίσουμε τα services που θα παρακολουθούμε στο ίδιο αρχείο my-host_nagios2.cfg
HTTP
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description HTTP
check_command check_http
}
SSH
Για να ελέγξουμε την υπηρεσία ssh
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH
check_command check_ssh
}
Για να ελέγξουμε την υπηρεσία ssh σε άλλη θύρα π.χ. 1111 χρησιμοποιούμε την εντολή ως check_ssh_port (όπως έχει οριστεί στο αρχείο ρυθμίσεων plugins /etc/nagios-plugins/config/ssh.cfg). Τροποποιούμε λοιπόν ως εξής
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description SSH
check_command check_ssh_port!1111
}
FTP
Για να ελέγξουμε την υπηρεσία ftp
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description FTP
check_command check_ftp
}
Για να ελέγξουμε την υπηρεσία ftp σε άλλη θύρα π.χ. 1111 τροποποιούμε το αρχείο ρυθμίσεων plugins /etc/nagios-plugins/config/ftp.cfg αρχικά ως εξής
@@define command{
@@ command_name check_ftp
-- command_line /usr/lib/nagios/plugins/check_ftp -H '$HOSTADDRESS$'
++ command_line /usr/lib/nagios/plugins/check_ftp -H '$HOSTADDRESS$' '$ARG1$'
}
Στην συνέχεια τροποποιούμε το αρχειο ρυθμίσεων του host (π.χ. my-host_nagios2.cfg)
define service{
use generic-service ; Inherit default values from a template
host_name remotehost
service_description FTP
check_command check_ftp!-p 1111
}
SMTP
define service{
use generic-service ; Inherit default values from a template host_name remotehost service_description SMTP check_command check_smtp }
POP
define service{
use generic-service ; Inherit default values from a template host_name remotehost service_description POP3 check_command check_pop }
Hostgroups
Εάν έχουμε παραπάνω από έναν servers (π.χ. s1,s2) που τρέχουν όμοιες υπηρεσίες, μπορούμε να ορίσουμε ένα hosτgroup
Ορισμός hostgroup και hosts σε αυτό
Στο αρχείο /etc/nagios3/conf.d/hostgroups_nagios2.cfg. Π.χ.
# A list of your servers
define hostgroup {
hostgroup_name my-servers
alias my servers
members s1,s2
}
Στην συνέχεια ορίζουμε το αρχείο my-servers-hosts_nagios2.cfg και εισάγουμε π.χ. define host{
use generic-host ; Inherit default values from a template host_name s2 ; The name we're giving to this host alias Some Remote Host ; A longer name associated with the host address s2.mydomain.gr ; IP address of the host check_command check_http }
define host{ use generic-host ; Inherit default values from a template
host_name s1 ; The name we're giving to this host alias Some Remote Host ; A longer name associated with the host address s1.mydomain.gr ; IP address of the host check_command check_http }
Κοινές υπηρεσίες
Τέλος ορίζουμε το αρχείο my-servers-services_nagios2.cfg με τις κοινές υπηρεσίες. Π.χ.
define service{
use generic-service ; Inherit default values from a template
hostgroup_name my-servers
service_description HTTP
check_command check_http
}
== Εξαίρεση hosts από hostgroup == .. Εάν έχουμε κάποιο hostgroup που εφαρμόζεται σε όλους τους hosts π.χ. all αλλά δεν θέλουμε την εφαρμογή του σε συγκεκριμένους hosts (π.χ. s1,s2), τους εξαιρούμε ως εξής
# A simple wildcard hostgroup
define hostgroup {
hostgroup_name all
alias All Servers
members *,!s1,!s2
}
Στατιστικά
Διαγραφή
Για να διαγράψουμε τα στατιστικά που έχουν καταγραφεί διαγράφουμε (ή μετακινούμε σε έναν φάκελο backup για πιο σίγουρα) το αρχείο retention.dat και τα παλιά logs
/etc/init.d/nagios3 stop mkdir /var/lib/nagios3/backup mv /var/lib/nagios3/retention.dat /var/lib/nagios3/backup/ mv /var/log/nagios3/archives/ /var/lib/nagios3/backup /etc/init.d/nagios3 start
Αντιμετώπιση προβλημάτων
Ο host δείχνει down γιατί δεν απαντάει σε ping για λόγους ασφαλείας
Στο αρχείο ρυθμίσεων του host π.χ. /etc/nagios3/conf.d/my-host_nagios2.cfg προσθέτουμε στο define host την παρακάτω γραμμή ώστε να μην γίνεται έλεγχος ping αλλά π.χ. http
check_command check_http
TODO
- Να στείλω ερώτηση σε bug-forum του debian γιατί με τον ορισμό check_ssh check_ftp στο /etc/nagios-plugins/config/ ξεφεύγει από το official documentation χωρίς να βοηθάει αντίστοιχα
- Όταν θα στήσω σε server να ελέγξω τοπικά check_mailq_postfix (βλ. /etc/nagios-plugins/config/mail.cfg
- Ο έλεγχος ssmtp δεν δούλεψε, να το διερευνήσω
- Να βρω έναν έλεγχο και για mysql
- Να καταγράψω τις αλλαγές για webmin,usermin (παρόμοιες με ftp)
- Υπο συνθήκη έλεγχος. Ώστε η μη διαθεσιμότητα του υπολογιστή που κάνει τον έλεγχο να μην επηρεάσει την καταγραφή της διαθεσιμότητας των απομακρυσμένων υπηρεσιών
laptop scp command
scp /mnt/hda2/sync/nagios.txt s2://home/linuxfanclub/public_html/dokuwiki/data/pages/el/linux/debian/server/nagios.txt
Πηγές
- file:///usr/share/nagios3/htdocs/index.html
- official : http://www.nagios.org/support/
- howto debian :
- howto gentoo : http://gentoo-wiki.com/HOWTO_Install_Nagios
- book : http://www.nagiosbook.org
- wiki :
- frontends :
- 10 web-frontends : http://www.ducea.com/2008/01/16/10-nagios-web-frontends/
- secondary server :
- Official documentation in section
- Redundant and Failover Network Monitoring
- Determining Status and Reachability of Network Hosts
- Passive Host State Translation
