LinuxFanClub Wiki

Υπηρεσίες, Προγραμματισμός, Εκπαίδευση ..

User Tools

Site Tools


el:linux:debian:server:nagios

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

Πηγές

el/linux/debian/server/nagios.txt · Last modified: Y/m/d H:i (external edit)