Shinken è un framework open source per il monitoraggio di computer e reti scritto in Python e compatibile con Nagios. Shinken può essere utilizzato su tutti i sistemi operativi in grado di eseguire applicazioni Python come Linux, Unix e Windows. Shinken è stato scritto da Jean Gabes come prova del concetto per una nuova architettura Nagios, ma è stata rifiutata dall'autore di Nagios ed è diventata uno strumento indipendente di monitoraggio della rete e del sistema che rimane compatibile con Nagios.
In questo tutorial, ti mostrerò come installare Shinken dal sorgente e aggiungere un host Linux al sistema di monitoraggio. Userò Ubuntu 16.04 Xenial Xerus come sistema operativo per il server Shinken e l'host monitorato.
Passaggio 1 - Installa Shinken Server
Shinken è un framework python, possiamo installarlo con pip o installarlo dal sorgente. In questo passaggio, installeremo Shinken dal sorgente.
Ci sono alcune attività che devono essere completate prima di iniziare l'installazione di Shinken.
Installa alcuni nuovi pacchetti Python e crea un utente Linux con il nome "shinken":
sudo apt-get install python-setuptools python-pip python-pycurl
useradd -m -s /bin/bash shinken
Scarica il sorgente Shinken dal repository GitHub:
git clone https://github.com/naparuba/shinken.git
cd shinken/
Quindi installa Shinken con il comando seguente:
git checkout 2.4.3
python setup.py install
Successivamente, per risultati migliori, dobbiamo installare 'python-cherrypy3' dal repository di Ubuntu:
sudo apt-get install python-cherrypy3
Ora Shinken è installato, quindi aggiungiamo Shinken per avviarlo all'avvio e avviarlo:
update-rc.d shinken defaults
systemctl start shinken
Fase 2 - Installa Shinken Webui2
Webui2 è l'interfaccia web di Shinken disponibile da shinken.io. Il modo più semplice per installare Sshinken webui2 è utilizzare shinken Comando CLI (che deve essere eseguito come utente shinken).
Accedi all'utente Shinken:
su - shinken
Inizializza il file di configurazione shinken - Il comando creerà una nuova configurazione .shinken.ini:
shinken --init
E installa webui2 con questo comando CLI shinken:
shinken install webui2
Webui2 è installato, ma è necessario installare MongoDB e un altro pacchetto Python con pip. Esegui il comando di seguito come root:
sudo apt-get install mongodb
pip install pymongo>=3.0.3 requests arrow bottle==0.12.8
Quindi, vai alla directory shinken e aggiungi il nuovo modulo webui2 modificando il file 'broker-master.cfg':
cd /etc/shinken/brokers/
vim broker-master.cfg
Aggiungi una nuova opzione all'interno del modulo alla riga 40:
modules webui2
Salva il file ed esci dall'editor.
Ora vai nella directory dei contatti e modifica il file 'admin.cfg' per la configurazione dell'amministratore.
cd /etc/shinken/contacts/
vim admin.cfg
Modifica i valori mostrati di seguito:
contact_name admin # Username 'admin'
password yourpass # Pass 'mypass'
Salva ed esci.
Fase 3:installa Nagios-plugins e pacchetti Shinken
In questo passaggio, installeremo Nagios-plugin e alcuni moduli Perl. Quindi installa ulteriori pacchetti shinken da shinken.io per eseguire il monitoraggio.
Installa Nagios-plugins e cpanminus necessari per la creazione e l'installazione dei moduli Perl:
sudo apt-get install nagios-plugins* cpanminus
Installa questi moduli Perl con il comando cpanm:
cpanm Net::SNMP
cpanm Time::HiRes
cpanm DBI
Ora crea un nuovo collegamento per il file utils.pm per nascondere la directory e creare una nuova directory per Log_File_Health:
chmod u+s /usr/lib/nagios/plugins/check_icmp
ln -s /usr/lib/nagios/plugins/utils.pm /var/lib/shinken/libexec/
mkdir -p /var/log/rhosts/
touch /var/log/rhosts/remote-hosts.log
Quindi, installa i pacchetti shinken ssh e linux-snmp per il monitoraggio di sorgenti SSH e SNMP da shinken.io:
su - shinken
shinken install ssh
shinken install linux-snmp
Passaggio 4:aggiungi un nuovo host/host-one Linux
Aggiungeremo un nuovo host Linux che verrà monitorato utilizzando un server Ubuntu 16.04 con indirizzo IP 192.168.1.121 e nome host 'host-one'.
Connettiti all'host Linux:
ssh [email protected]
Installa i pacchetti snmp e snmpd dal repository di Ubuntu:
sudo apt-get install snmp snmpd
Quindi, modifica il file di configurazione 'snmpd.conf' con vim:
vim /etc/snmp/snmpd.conf
Commenta la riga 15 e decommenta la riga 17:
#agentAddress udp:127.0.0.1:161
agentAddress udp:161,udp6:[::1]:161
Commenta le righe 51 e 53, quindi aggiungi una nuova configurazione di riga di seguito:
#rocommunity mypass default -V systemonly
#rocommunity6 mypass default -V systemonly
rocommunity mypass
Salva ed esci.
Ora avvia snmpd servizio con il comando systemctl:
systemctl start snmpd
Vai al server shinken e definisci il nuovo host creando un nuovo file nella directory 'hosts'.
cd /etc/shinken/hosts/
vim host-one.cfg
Incolla la configurazione di seguito:
define host{
use generic-host,linux-snmp,ssh
contact_groups admins
host_name host-one
address 192.168.1.121
_SNMPCOMMUNITY mypass # SNMP Pass Config on snmpd.conf
}
Salva ed esci.
Modifica la configurazione SNMP sul server Shinken:
vim /etc/shinken/resource.d/snmp.cfg
Cambia 'pubblico' in 'mypass' - deve essere la stessa password che hai usato nel file di configurazione snmpd sul client host-one.
$SNMPCOMMUNITYREAD$=mypass
Salva ed esci.
Ora riavvia entrambi i server:il server Shinken e l'host Linux monitorato:
reboot
Il nuovo host Linux è stato aggiunto con successo al server Shinken.
Fase 5:accedi a Shinken Webui2
Visita lo Shinken webui2 sulla porta 7677 (sostituisci l'IP nell'URL con il tuo IP):
http://192.168.1.120:7767
Accedi con l'utente admin e la tua password (quella che hai impostato nel file di configurazione admin.cfg).
Dashboard Shinken in Webui2.
I nostri 2 server sono monitorati con Shinken.
Elenca tutti i servizi monitorati con linux-snmp.
Stato di tutti gli host e servizi.
Fase 6 - Problemi comuni con Shinken
- Problemi con il server NTP
Quando ricevi questo errore con NTP.
TimeSync - CRITICAL ( NTP CRITICAL: No response from the NTP server)
TimeSync - CRITICAL ( NTP CRITICAL: Offset unknown )
Per risolvere questo problema, installa ntp su tutti gli host Linux.
sudo apt-get install ntp ntpdate
Modifica la configurazione ntp:
vim /etc/ntp.conf
Commenta tutti i pool e sostituiscilo con:
#pool 0.ubuntu.pool.ntp.org iburst
#pool 1.ubuntu.pool.ntp.org iburst
#pool 2.ubuntu.pool.ntp.org iburst
#pool 3.ubuntu.pool.ntp.org iburst
pool 0.id.pool.ntp.org
pool 1.asia.pool.ntp.org
pool 0.asia.pool.ntp.org
Quindi, aggiungi una nuova riga all'interno di restrizioni:
# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict 192.168.1.120 #shinken server IP address
restrict ::1
NOTA :192.168.1.120 è l'indirizzo IP del server Shinken.
Salva ed esci.
Avvia ntp e controlla la dashboard di Shinken:
ntpd
- Problema check_netint.pl non trovato
Scarica il sorgente dal repository github nella directory shinken lib:
cd /var/lib/shinken/libexec/
wget https://raw.githubusercontent.com/Sysnove/shinken-plugins/master/check_netint.pl
chmod +x check_netint.pl
chown shinken:shinken check_netint.pl
- Problema con NetworkUsage
C'è un messaggio di errore:
ERROR : Unknown interface eth\d+
Controlla la tua interfaccia di rete e modifica il modello linux-snmp.
Sul mio server Ubuntu, l'interfaccia di rete è "enp0s8", non eth0, quindi ho ricevuto questo errore.
Modifica i pacchetti di modelli linux-snmp con vim:
vim /etc/shinken/packs/linux-snmp/templates.cfg
Aggiungi l'interfaccia di rete alla riga 24:
_NET_IFACES eth\d+|em\d+|enp0s8
Salva ed esci.
Riferimenti
- http://shinken.readthedocs.io/en/latest/
- http://www.roblayton.com/search/label/monitoring