130 likes | 216 Views
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. Nato nel 2002. Zenoss. Basato su Zope , Python , Net-SNMP, RRDtool , MySQL , Twisted
E N D
Software di monitoraggio Open Source Monitoring di sistemi e di applicazioni http://it.linkedin.com/in/robimassablogs.sysadmin.it/robimassa http://it.linkedin.com/in/robimassa
Nato nel2002 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 SNMPsu hostWin Impostazione file SNMPD.CONFsu host Linux #################################################### Access Control #################################################### com2sec locallocalhostmonitoring com2sec zenoss_host10.10.1.71/32 monitoring com2sec robipc10.10.1.70/32 monitoring groupMyRWGroupanylocal groupMyROGroupanymynetworkrobipc viewallincluded .1 80 viewmib2 included .iso.org.dod.internet.mgmt.mib-2 fc accessMyROGroup "" anynoauth 0 all none none #################################################### # System contact information #################################################### syslocationSala Server syscontactassistenza@dominio.it trapsinkcnslsrv.scroce.locservers
Zenoss: raccolta dati Traffico di retetramite SNMP n° sessioni RDPtramite WMI
Nato nel1996 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 commercialeNagios XI™ con features ulteriori e maggiore automazione
Nagios: modalità di monitoraggio Agent less Agente remoto (NRPE)
Nagios dichiarazione di un servizio Comando lato server Nagios define service { service_description Controllo servizio ORACLE Cluster Takover use generic-service host_namecluster.dominio.locale is_volatile 0 check_period 24x7 max_check_attempts 4 normal_check_interval 5 retry_check_interval 1 contact_groupscluster_takeover notification_optionsw,u,c,r notification_interval 960 notification_period 24x7 check_commandcheck_nrpe!check_rhcluster_status} Comando lato host monitorato con NRPE command[check_rhcluster_status]=/usr/lib64/nagios/plugins/check_rhcluster_statusservizio_in_cluster nodo1 nodo2
Nagiosimplementazione 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 roote' necessario quindi eseguire il comando chmodu+s /usr/sbin/clustat per consentire il funzionamento corretto PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^[^\\/]*$,,'`. $PROGPATH/utils.shSTATE_OK=0STATE_WARNING=1STATE_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 clustatrelativo 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 • Molto flessibile • Configurazione poco amichevole (tramite file di testo)* • Nasce per eseguire il test delle stato di attività e visualizzarlo graficamente • Buona integrazione con WMI • Configurabile tramite interfaccia WEB • Nasce per raccogliere dati e presentarli graficamente *Esistono progetti che prevedono utilità di configurazione grafiche del Nagios p.es NagiosQL