Software di monitoraggio Open Source Monitoring di sistemi e di applicazioni http://it.linkedin.com/in/robimassa blogs.sysadmin.it/robimassa http://it.linkedin.com/in/robimassa
Zenoss Basato su Zope, Python, Net-SNMP, RRDtool, MySQL, Twisted Nato nel 2002 Zenoss Basato su Zope, Python, Net-SNMP, RRDtool, MySQL, Twisted Versione Core gratuita basata su GPL v2 RPM per Redhat o Centos Appliance per VMWARE ZenPacks plug-in sviluppati dalla community per monitoring di specifici workloads (device, software) Versione commerciale Enterprise basata sulla Core (supporto + features+certificazione per monitoring SQL e Exchange)
Zenoss: configurazione SNMP Impostazione servizio SNMP su host Win Impostazione file SNMPD.CONF su host Linux #################################################### Access Control com2sec local localhost monitoring com2sec zenoss_host 10.10.1.71/32 monitoring com2sec robipc 10.10.1.70/32 monitoring group MyRWGroup any local group MyROGroup any mynetwork robipc view all included .1 80 view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc access MyROGroup "" any noauth 0 all none none # System contact information syslocation Sala Server syscontact assistenza@dominio.it trapsink cnslsrv.scroce.loc servers
Zenoss: raccolta dati Traffico di rete tramite SNMP n° sessioni RDP tramite WMI
NAGIOS Versione gratuita basata su GPL v2 Nato nel 1996 NAGIOS Versione gratuita basata su GPL v2 Plug-in sviluppati dalla community (shell scripts, C++, Perl, Ruby, Python, PHP, C#, etc..) per monitoring di specifici workloads (device, software) Nagios Agents NRPE (plug-in remoto) NRDP (HTT/S, XML) NSClient++ (client remoto su TCP 1248) Versione commerciale Nagios XI™ con features ulteriori e maggiore automazione
Nagios: modalità di monitoraggio Agent less Agente remoto (NRPE)
Nagios dichiarazione di un servizio define service { service_description Controllo servizio ORACLE Cluster Takover use generic-service host_name cluster.dominio.locale is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groups cluster_takeover notification_options w,u,c,r notification_interval 960 notification_period 24x7 check_command check_nrpe!check_rhcluster_status } Comando lato server Nagios Comando lato host monitorato con NRPE command[check_rhcluster_status]= /usr/lib64/nagios/plugins/check_rhcluster_status servizio_in_cluster nodo1 nodo2
Nagios implementazione di un plug-in #!/bin/bash # Plugin di controllo stato servizi in Cluster Robi Massa vrs. 1.0 2011 # ./controllo_servizi_cluster 1 2 3 # N.B. il comando viene eseguito con il demone NRPE che normalmente ha privilegi ridotti rispetto a root, in alcune versioni di RHCLUSTER il comando CLUSTAT # non funziona se non lanciato da root e' necessario quindi eseguire il comando chmod u+s /usr/sbin/clustat per consentire il funzionamento corretto PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^[^\\/]*$,,'` . $PROGPATH/utils.sh STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 #Parametri NORMALE=condizione in cui il servizio gira sul nodo designato, SERVIZIO =nome servizio da controllare SERVIZIO=$1 NORMALE=$2 VARSERVICE=service: #usata per costruire la parte invariabile della stringa di confronto VARSTARTED=started #usata per costruire la parte invariabile della stringa di confronto #Estrazione output comando clustat relativo alla riga del servizio monitorato eliminando gli spazi (senza formattazione vi sono caratteri che falsano il confronto) RETVAL=$(/usr/sbin/clustat |grep -w $SERVIZIO | sed 's/ //g') # costruzione stringa confronto nel modo in cui dovrebbe essere presentata se il servizio fosse sul nodo corretto CONFRONTO=$VARSERVICE$SERVIZIO$NORMALE$VARSTARTED if [[ "$RETVAL" == "$CONFRONTO" ]] ; then echo "OK il servizio $SERVIZIO e' sul nodo $NORMALE" exit $STATE_OK elif [[ "$RETVAL" != "$CONFRONTO" ]] ; then echo "ATTENZIONE il servizio $SERVIZIO non e' sul nodo $NORMALE" exit $STATE_WARNING else echo "controllo dello stato del servizio $SERVIZIO impossibile verificare lo stato possibile BLOCCO" exit $STATE_CRITICAL fi
Zenoss vs Nagios Buona integrazione con WMI Configurabile tramite interfaccia WEB Nasce per raccogliere dati e presentarli graficamente Molto flessibile Configurazione poco amichevole (tramite file di testo)* Nasce per eseguire il test delle stato di attività e visualizzarlo graficamente *Esistono progetti che prevedono utilità di configurazione grafiche del Nagios p.es NagiosQL