Nagios è un sistema di monitoraggio che consente di identificare e risolvere eventuali problematiche di un’infrastruttura IT prima che possano avere conseguenze negative.
Nagios è in grado di monitorare apparati di rete, sistemi e servizi; inoltre il sistema dei plugin lo rende versatile ed adattabile ad ogni esigenza di monitoraggio, infatti è possibile anche scrivere plugin personalizzati.
Esistono una versione enterprise chiamata Nagios XI che offre un sistema di monitoraggio completo e già costruito ed una versione Nagios Core che costituisce la base su cui fondare il proprio sistema di monitoring.
Di seguito vi illustrerò come installare la versione Core di Nagios 3 e la versione 4.1.1 su Raspberry Pi 2.
PRE-REQUISITI
VERSIONE RASPBERRY: Raspberry Pi 2
SISTEMA OPERATIVO: Raspbian
IP RASPBERRY: 192.168.100.18
TIME ZONE: Europe\Rome
DNS: 8.8.8.8 e 8.8.4.4
INSTALLAZIONE LAMP – APACHE WEB SERVER E CORE DEFAULTS
Installiamo Apache con il seguente comando
0 |
apt-get install apache2 |
Installiamo mysql server e mysql client col comando
0 |
apt-get install mysql-server mysql-client |
Installiamo il PHP, Perl e Python vpò comando
0 |
apt-get install php5 php5-mysql perl python-mysqldb |
Per continuare cliccare “S” e attendere il termine dell’installazione
Installiamo le librerie col comando
0 |
apt-get install libdbi-perl libdbd-mysql-perl libapache2-mod-php5 gawk phpmyadmin |
Per continuare cliccare “S” e attendere il termine dell’installazione
Al termine riavviare col seguente comando
0 |
shutdown -r now |
Dopo il riavvio proviamo a richiamare tramite un browser il link
http://192.168.100.18
Se ci appare un immagine come quella sovrastante vuol dire che il web server è ok
Installiamo il server Samba con il comando
0 |
apt-get install samba samba-common samba-common-bin |
Adesso editiamo la configurazione del samba server con il comando
0 |
nano /etc/samba/smb.conf |
Quindi incollare al termine del file le seguenti righe
0 1 2 3 4 5 6 7 |
[WebFiles] comment = Shared Files path = /var/www browseable = Yes writeable = Yes guest ok = yes create mask = 0777 directory mask = 0777 |
Salvare e chiudere il file.
Aggiungiamo l’utenza col comando
0 |
sudo useradd webadmin |
Settare la password dell’utenza
0 |
sudo passwd webadmin |
Quindi inserire la pasword desiderata
Riavviamo il server Samba per applicare la configurazione col comando
0 |
sudo /etc/init.d/samba reload |
Settiamo i permessi della share appena creata
0 |
chmod 0777 /var/www |
Riavviamo il servizio samba con il comando
0 |
/etc/init.d/samba restart |
Installiamo il server FTP
0 |
sudo apt-get install ftp |
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
*************************************************************** ** bash script example *************************************************************** USRID = change_this_to_ftp_user USRPASS = change_this_to_ftp_password FILNAME = change_this_to_file.extension ftp -v -n www.????????.com <<END_OF_SESSION user $USRID $USRPASS prompt off binary put /var/www/$FILNAME $FILNAME bye END_OF_SESSION *************************************************************** |
Se vogliamo fare il backup e il restore del database installiamo il comando pv
0 |
apt-get install pv |
Per fare il backup lanciamo il seguente comando
0 |
mysqldump -uroot -password DATABASENAME > /var/www/DATABASENAME.sql |
Per fare il restore usiamo il comando
0 |
pv /var/www/DATABASENAME.sql | mysql -uroot -pabc123! DATABASENAME |
Se si desidera trovare i dispositivi nella propria rete eseguiamo i comandi
0 1 2 3 4 |
cd /home/pi/Downloads wget http://vanheusden.com/java/ScanToNag/ScanToNag-0.2.jar java -jar ScanToNag-0.2.jar --range 192.168.100.0/24 --emit-templates --timeout 50 --contacts unix-admins --hosts-file myhosts.conf --services-file myservices.conf --skip-reserved |
Attendere qualche istante fino al termine della scansione dei device presenti nella rete che abbiamo indicato
Per vedere tutti i dispositivi trovati nella rete eseguiamo il comando
0 |
nano myhosts.conf |
Per la lista dei servizi trovati nella rete eseguire
0 |
nano myservices.conf |
INSTALLAZIONE DI NAGIOS 3
Se vogliamo installare Nagios con nconf eseguiamo il comando
0 |
apt-get install nagios3 nagios-plugins nagios-nrpe-plugin |
Per continuare cliccare “S” e attendere il termine dell’installazione
Settare la password di Amministrazione di Nagios Web e cliccare OK
Confermare la password e cliccare OK
Eseguire in sequenza i comandi per la creazione delle cartelle di sistema di Nagios
0 1 2 3 4 5 6 |
sudo mkdir /etc/nagios3/import sudo mkdir /etc/nagios3/global sudo mkdir /etc/nagios3/Default_collector sudo cp -r /etc/nagios3 /etc/nagios3.backup |
Editiamo il file di configurazione
0 |
nano /etc/nagios3/nagios.cfg |
Individuiamo la riga
0 |
cfg_file=/etc/nagios3/commands.cfg |
e sostituiamola con
0 |
cfg_dir=/etc/nagios3/Default_collector |
Individuiamo la riga
0 |
cfg_dir=/etc/nagios-plugins/config |
e sostituiamola con
0 |
cfg_dir=/etc/nagios3/global |
Riavviamo il raspberry
0 |
shutdown -r now |
Accediamo con l’utente root e lanciamo il comando
0 1 2 3 4 5 6 7 8 |
mkdir /download cd /download wget http://downloads.sourceforge.net/project/nconf/nconf/1.3.0-0/nconf-1.3.0-0.tgz sudo tar zxvf nconf-1.3.0-0.tgz -C /var/www/ sudo chown -R www-data:www-data /var/www/nconf |
Accedere al PHPmyAdmin richiamando il link
http://192.168.100.18/phpmyadmin/
Accediamo con l’utenza root
Cliccare su Utenti come mostrato in figura sovrastante
Cliccare Aggiungi Utente
A questo punto inserire i paramentri come mostrato nella figura sovrastante:
User Name: nconf
Host: localhost
Password: inserire una password
Re-type: reinserire la password
Selezionare l’opzione Crea un database con lo stesso nome e concedi tutti i privilegi
Selezionare l’opzione Privilegi Globali quindi Seleziona tutti
Cliccare Esegui in fondo a destra per creare l’utenza e il database
Se è tutto corretto dovremmo vedere una schermata come nel’immagine sovrastante con il database e il nuovo utente
Ritorniamo alla sessione SSH ed eseguiamo i comandi
0 1 2 3 |
cd /var/www chmod 777 nconf -R sudo chown -R www-data:www-data /var/www/nconf shutdown -r now |
Accediamo con l’utente root e spostiamo la cartella nconf in html con il comando
0 |
mv /var/www/nconf/ /var/www/html/ |
Apriamo un browser e richiamiamo il link
http://192.168.100.18/nconf
Quindi clicchiamo su click here per far partire l’installazione
Se è tutto OK come mostrato nell’immagine sovrastante clicchiamo su Next
Impostare la configurazione del Database:
DBHOST: localhost
DBNAME: nconf
DBUSER: nconf
DBPASSWORD: inserire la password settata in fase di creazione dell’utente
Clicchiamo Next per procedere con la configurazione
Se è tutto corretto dovremmo vedere una schermata con tutti OK. Clicchiamo su Next
Cambiare solo il parametro NAGIOS_BIN impostando il path /usr/sbin/nagios3
Cliccare Next per procedere
Impostare i parametri come mostrato nell’immagine sovrastante
AUTH_ENABLED: TRUE
AUTH_TYPE: file
file_admin_password: Inserire la pasword di admin
Cliccare Next per procedere
Se è tutto OK dovremmo vedere una schermata come nell’immagine sovrastante
Cliccare Finish per terminare l’installazione
Installazione terminata. Questo mesaggio ci ricorda di eliminare i seguenti file
INSTALL
INSTALL.php
UPDATE
UPDATE.php
Dalla console SSH lanciamo il comando
0 1 |
cd /var/www/html/nconf rm -rf INSTALL INSTALL.php UPDATE UPDATE.php |
Lanciamo il comando
0 |
nano /var/www/html/nconf/ADD-ONS/deploy_local.sh |
Sostituiamo le righe
0 1 2 |
NAGIOS_DIR="/usr/local/nagios/etc/" /etc/init.d/nagios reload |
con
0 1 2 |
NAGIOS_DIR="/etc/nagios3/" /etc/init.d/nagios3 reload |
Salviamo il file di configurazione e chiudiamolo
0 1 2 |
chmod +x /var/www/html/nconf/ADD-ONS/deploy_local.sh /etc/init.d/nagios3 reload |
Scheduliamo il file deploy_local.sh
0 |
sudo crontab -e |
selezionare l’opzione 2
alla fine del file inserire la riga
0 |
* * * * * /var/www/html/nconf/ADD-ONS/deploy_local.sh |
Salvare il file di configurazione e chiuderlo
Riavviare con il comando
0 |
shutdown -r now |
Richiamare da un browser i seguenti link per vedere se è tutto OK
http://192.168.100.18/nconf
admin
password
http://192.168.100.18/nagios3
nagiosadmin
password settata
INSTALLAZIONE NAGIOS 4.1.1
Creare un gruppo per consentire comandi esterni tramite l’interfaccia utente WEB e quindi aggiungere ad esso sia Nagios che Apache.
0 1 2 |
/usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd www-data |
Scaricare Nagios Core e i Plugins dal sito di Nagios /tmp directory. L’ultima versione disponibile è Nagios 4.1.1 & Nagios Plugins 2.1.1
Creare una cartella per scaricare Nagios
0 1 2 |
cd /tmp wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz |
Unzippare i file scaricati con i seguenti comandi
0 1 |
tar zxvf nagios-4.1.1.tar.gz tar zxvf nagios-plugins-2.1.1.tar.gz |
Dovremmo avere quindi due cartelle con i seguenti nomi “nagios-4.1.1” & “nagios-plugins-2.1.1”
In primo luogo inizieremo con Nagios Core Install.
Cambiare il nome della directory in Nagios 4.1.1
0 |
cd /tmp/nagios-4.1.1 |
Compilare la sorgente e installarlo. Dovremmo trovare tutti i files nel path “/usr/local/nagios/”
0 1 2 3 4 5 |
./configure --with-command-group=nagcmd make all make install make install-init make install-config make install-commandmode |
Lanciare questo comando per installare correttamente il webconf.
0 1 2 |
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-enabled/nagios.conf make install-webconf |
Creiamo un utente per accedere all’interfaccia utente WEB Nagios.
0 |
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin |
Una volta fatto questo occorre riavviare il servizio Apache.
0 |
/etc/init.d/apache2 reload |
Ora abbiamo bisogno di installare i plugin per Nagios
Rinominare la directory in nagios-plugins-2.1.1
0 |
cd /tmp/nagios-plugins-2.1.1 |
Compilare e installare i plugin
0 1 2 |
./configure --with-nagios-user=nagios --with-nagios-group=nagios make make install |
Assicurarsi quindi che il servizio Nagios parta all’avvio del sistema.
0 |
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios |
Verificare l’installazione per eventuali errori
0 |
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg |
Ora creiamo nagios.service con il seguente comando
0 |
vi /etc/systemd/system/nagios.service |
ed inseriamo il seguente contenuto
0 1 2 3 4 5 6 7 8 9 10 11 |
[Unit] Description=Nagios BindTo=network.target [Install] WantedBy=multi-user.target [Service] User=nagios Group=nagios Type=simple ExecStart=/usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg |
0 1 2 |
systemctl enable /etc/systemd/system/nagios.service systemctl start nagios systemctl status nagios |
Output:
root@rasst:~# systemctl status nagios
? nagios.service – Nagios
Loaded: loaded (/etc/systemd/system/nagios.service; enabled)
Active: active (running) since Mon 2016-02-22 15:45:27 GMT; 19min ago
Main PID: 16450 (nagios)
CGroup: /system.slice/nagios.service
+-16450 /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
+-16451 /usr/local/nagios/bin/nagios –worker /usr/local/nagios/var/rw/nagios.qh
+-16452 /usr/local/nagios/bin/nagios –worker /usr/local/nagios/var/rw/nagios.qh
+-16453 /usr/local/nagios/bin/nagios –worker /usr/local/nagios/var/rw/nagios.qh
+-16454 /usr/local/nagios/bin/nagios –worker /usr/local/nagios/var/rw/nagios.qh
+-16455 /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16451;pid=16451
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16452;pid=16452
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16453;pid=16453
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16454;pid=16454
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16451;pid=16451
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16452;pid=16452
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16453;pid=16453
May 13 13:42:33 rasst.vh.local nagios[16450]: wproc: Registry request: name=Core Worker 16454;pid=16454
May 13 13:42:33 rasst.vh.local nagios[16450]: Successfully launched command file worker with pid 16455
May 13 13:42:33 rasst.vh.local nagios[16450]: Successfully launched command file worker with pid 16455
Ora siamo pronti per l’accesso a Nagios via Web Interface tramite il browser (E’ raccomandato usare Firefox)
http://nagios-server-URL/nagios
*Utilizzare l’indirizzo IP del raspberry o il nome host seguito da /nagios.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
Ciao, ottima guida ! Grazie sei stato di aiuto !
use php7.0
php5 is not available
sudo apt install php php-mysql perl python-mysqldb
Poi ho provato ad andare avanti senza creare il database ed ho provato ad avviare la pagina di nconf, si apre tranquillamente ma quando clicco su Setup required. To install NConf click here non mi appare la schermata di welcome, non ci sono dati inerenti al tipo di mysql installato ecc, praticamente la pagina è bianca… sembra qualcosa legato al php.
Ciao sono riuscito ad andare avanti finalmente, mi sono bloccato sulla schermata di phpmyadmin non mi fa loggare con le credenziali di root appre questo:
#1698 – Access denied for user ‘root’@’localhost’
mysqli_real_connect(): (HY000/1698): Access denied for user ‘root’@’localhost’
Il comando corretto è apt-get install php7.0 php7.0-mysql perl python-mysqldb….. la versione è la 7 ma devo scrivere 7.0
Ciao ho eseguito questo comando ma da sempre errore:
apt-get install php7 php7-mysql perl python-mysqldb
Lettura elenco dei pacchetti… Fatto
Generazione albero delle dipendenze
Lettura informazioni sullo stato… Fatto
E: Impossibile trovare il pacchetto php7
E: Impossibile trovare il pacchetto php7-mysql
avevo seguito altre strade ma phpmyadmin non mi permette di loggarmi.
Si corretto
quindi devo sostituire 5 con 7?
http://Ftp... non è niente altro che il link o L IP address del server FTP. Ciao
Molto probabilmente devi lanciare i comandi per installare il php7 dato che il 5 è superato. Ciao
TEST SU RASPBERRY PI3 B
Ciao ho seguito sue volte la guida, purtroppo ci si ferma già all’immissione della password di phpmyadmin,
inoltre quando di prova ad avviare l’installazione di nagios e si clicca su Setup required. To install NConf click here non appare nessun campo in cui inserire i dati di installazione.
anche l’installazione di lamp da errore questo comando per esempio da errore: apt-get install php5 php5-mysql perl python-mysqldb
Bella guida grazie.
Non ho capito cosa si fa al passaggio quando hai scritto
***************************************************************
** bash script example
***************************************************************
USRID = change_this_to_ftp_user
USRPASS = change_this_to_ftp_password
FILNAME = change_this_to_file.extension
ftp -v -n http://www.????????.com <<END_OF_SESSION
user $USRID $USRPASS
prompt off
binary
put /var/www/$FILNAME $FILNAME
bye
END_OF_SESSION
***************************************************************