giovedì 20 ottobre 2011

ntro: Java Monitoraggio webapp con Hyperic HQ + Come Alert troppi errori nel log


Questo post spiega come impostare il Java-based open source strumento di monitoraggio Hyperic HQ di vigilare sull'applicazione log di errore del server e inviare un unico avvertimento e-mail quando ci sono più di loro di una soglia. Nel post precedente Aggregazione log degli errori per inviare un e-mail di avviso quando troppi di loro - Log4j, Stat4j, SMTPAppender abbiamo visto come il raggiungimento di tale programatically mentre questa soluzione si tratta solo di configurazione. Vedremo anche un po 'che altro (un sacco!) Hyperic può fare per voi e ciò che le impressioni dopo una breve sperimentazione con esso sono.
Sarò con Tomcat come "application server", ma funziona sicuramente per altri AS comune.

Panoramica di Hyperic HQ

Hyperic HQ 4.6 (e la sua edizione commerciale, chiamata VMware vFabric Hyperic) in punti:
  • Sviluppato da SpringSource / VMware
  • Molto probabilmente il migliore disponibile open-source di monitoraggio SW (credo che in diretta concorrenza con Nagios, ma sostiene la superiorità in alcune zone e io suppongo che sia la soluzione migliore per il mondo Java come si è scritto in Java)
  • Open-source, la versione enterprise ha alcune caratteristiche utili, ma non sostanziali come l'integrazione LDAP, cruscotti personalizzati per i ruoli, multi-azione avvisi (che sarebbe utile, ma è open-source e si può DIY) - vedere la x OSS Enteprise confronto
  • È necessario installare il server di monitoraggio Hyperic HQ su un computer, un agente di Hyperic su ogni macchina per monitorare e, se necessario, attivare le funzionalità di monitoraggio nel SW (ad esempio JMX in Tomcat)
  • Per gli agenti e il server di comunicare è necessario aprire una porta su ogni macchina (i file. Enterp versione supporta anche la comunicazione unidirection avviata sempre da parte dell'agente)
  • Il server è un pacchetto unico contenente un JBoss embedded e PostgreSQL
  • E ' di monitoraggio ("risorsa") plugin per molte popolari sistemi operativi, DB, AS, framework (Spring, JEE ...), HTTP server ecc e l'integrazione con altre tecnologie come JMX e software come Nagios e (enterpr. solo) OpenNMS
Hyperic HQ è molto facile da installare e l'agente in grado di rilevare molte risorse / servizi per conto suo e se il SW obiettivo ha bisogno di qualche configurazione da monitorabile allora il server Hyperic vi informerà su di esso e (almeno nel mio caso) fornire le istruzioni che da fare.
Scarica il Hyperic HQ Open Source Edition. (Si noti che Hyperic HQ è usato per riferirsi alla versione open-source mentrevFabric Hyperic si riferisce alla Enterprise Edition.)

Termini chiave

Per utilizzare Hyperic dovete sapere che una "piattaforma" è una macchina / OS, un "server" è un SW in esecuzione c'è come un DB o un AS, e "servizio" è st. monitorabile in esecuzione sul server, come il servizio di "Apache Tomcat 6.0 Pool di thread". Ognuno di questi livelli ha alcuni parametri (utilizzo della CPU x dimensione heap JVM x le discussioni numero attivo).

Chiave di interfaccia utente Sezioni

La pagina iniziale / scheda è Dashboard , dove è possibile aggiungere "portlet", come il visualizzatore di metriche per ottenere una rapida panoramica dei vostri sistemi. Nella scheda successiva è Risorse , dove è possibile cercare le piattaforme monitorato / servers / servizi per mostrare il loro metriche dettagliate, grafici ecc, configurare il monitoraggio e avvisi, e così via. L' Analisi scheda fornisce una panoramica di eventi e allarmi e Amministrazione consente per esempio di aggiungere utenti e di cambiare ciò che le metriche sono raccolti e mostrati di default (cioè come indicatori) per ciascun tipo di risorsa.
Quando si visualizza una risorsa come il server Tomcat, hai 4 schede aggiuntive: Monitor (metriche, grafici), Inventario(configurazione e sub-risorse), Avvisi (vedi sotto), controllo (definire le azioni di controllo sulla risorsa come riavviare il computer), Visto (Live Exec per eseguire comandi di monitoraggio operativo;? EE solo).

Procediamo

Si consiglia di sfogliare le immagini e poco testo in quattro Nuovo Hyperic HQ articoli si fa riferimento alla fine di questo post per avere una buona panoramica di ciò che l'utente sembra e come viene utilizzato.

Configurazione Hyperic per inviare e-mail quando troppi errori nel log

Vedremo come installare Hyperic, lo usano per monitorare un locale (o remoto, sarebbe quasi la stessa) installazione di Tomcat e come per avvisare via e-mail quando il numero di errori nei log del Tomcat supera una soglia.

Installazione di Hyperic HQ 4,6 Server e Agente

  1. Scarica l'iperico-hq-installer-* per la propria piattaforma o iperico-hq-installer-*- noJRE.zip, scompattarlo ed eseguire il suo setup.sh / .bat. Si noti che può essere utilizzato per installare l'agente solo, solo il server o entrambi.
    • Nota: eseguire setup.sh-pieno per ottenere insieme completo di opzioni come che DB da usare (default = PostgreSQL incorporato, per uso in produzione si raccomanda un autonomo Oracle o MySQL e PostgreSQL supporta anche una stand-alone)
  2. Seguire le istruzioni - sceglie di installare server e agente (a meno che non si desidera installare l'agente su un'altra macchina), fornire il nome di una directory esistente (installazione creerà sottodirectory per server e agente), ecc
    • Di default il Hyperic interfaccia utente Web Server viene eseguito sulla porta 7080 (https su 7443)
    • Successivamente si può verificare <installer> / installer / log / HQ-install.log [. Verbose]
  3. Configurare ed eseguire l'agente - esecuzione <Hyperic installazione root> / agent-4.6/bin/hq-agent.sh inizio
    • Si chiederà la IP e HTTP [e https] porta del server di monitoraggio, le credenziali del server admin e l'IP e la porta (di default: 2144) il server deve utilizzare per contattare l'agente
    • Si può controllare dir> <agent / log / agent.log per vedere i risultati del rilevamento automatico dei servizi locali
  4. Avviare il server (se non fatto automaticamente): <Hyperic avviare l'installazione root> / bin / HQ-server.sh

L'attivazione di un monitoraggio Tomcat

Accedi al tuo Hyperic HQ , la Dashboard verrà visualizzata. Se il vostro agente ha iniziato con successo allora si dovrebbe vedere la sua macchina (p.es. "YourDomainName (MacOSX)") nel aggiunti di recente portlet o sulla scheda Risorse in piattaforme (se non poi controllare il registro dell'agente).
Clicca sul nome della piattaforma o andare a Risorse - Server. Si dovrebbe vedere il Tomcat, a condizione che non vi è stato avviato, st. come "YourDomainName Apache Tomcat 6.0" (se non poi controllare il registro dell'agente). Molto probabilmente nella colonna disponibilità vedrete un icona grigia significa che HQ non è in grado di ottenere dati di monitoraggio da esso. Se si fa clic sul suo nome si dovrebbe essere informata del problema e ha fornito con le istruzioni per abilitare il monitoraggio JMX sul Tomcat (o mettere tutto su una riga di rimuovere il '\' o assicurarsi che non vi è spazio, ecc seguenti il backslash ). Fatelo e riavviare Tomcat. L'icona grigia dovrebbe diventare verde.
(Credo che Hyperic dovrebbe essere in grado di monitorare il w / o registri di accendere JMX, ma non hanno verificato che.)

Abilita monitoraggio dei log di Tomcat

Vai a Risorse - Server e fare clic sul Tomcat, passare alla scheda inventario e scorrere fino alla Proprietà di configurazione e assicuratevi di avere lì server.log_track.enable errore vero e server.log_track.level, se non fare clic su Modifica in in basso a sinistra e cambiarlo. (Si noti che è anche possibile specificare un pattern match registro e di una posizione alternativa del file di log.) Dovreste avere st. come:
Si può effettivamente impostare un livello di registro più basso, come è anche possibile specificare quali severità per tenere traccia in allerta.

Impostazione di un avviso

Noi ora dirà Hyperic per produrre una sola volta di allarme quando il numero di errori nel registro negli ultimi 10 minuti superiore a 3. Gli avvisi vengono visualizzati nell'interfaccia utente e può essere anche inviare via email a qualsiasi utente registrato HQ o praticamente qualsiasi indirizzo e-mail.
Vai alla risorsa server Tomcat (come sopra) e selezionare l'allarme sotto-scheda di Monitor | Inventario | Alert | Controllo | Visualizza. Fare clic su [Configura] e [Nuovo ...] e compilarlo come indicato di seguito:
In fondo (non visibile in figura) è possibile fare clic su Notifica altri destinatari di aggiungere un indirizzo e-mail dove inviare gli avvisi.

Fuoco l'allarme

Fai la tua Tomcat log tre eccezioni e quando tornare all'interfaccia utente Hyperic o rinfrescante che si dovrebbe vedere l'avviso in testa d'albero e anche sul cruscotto nel recente Avvisi portlet. Se avete configurato il SMTP correttamente e si sedette l'avviso da inviare via e-mail allora si dovrebbe anche ottenere alla vostra casella.
È possibile utilizzare i recenti avvisi portlet per segnare una segnalazione fissa in modo che se la situazione di ri-occures poi un nuovo avviso verrà generato (non dimenticate che abbiamo detto HQ di non generare avvisi ulteriormente fino a fisso).

Impressioni da Hyperic HQ 4,6

La mia esperienza con Hyperic HQ è estremamente breve, quindi non posso fornire una valutazione ben fondata, solo un mucchio di impressioni.
E 'certamente molto potente per quanto riguarda quello che può monitorare, abbastanza facile da installare, intuitivo e moderatamente. L'interfaccia utente è po 'vecchio stile ma ops / sviluppatori gente vengono usati per queste cose e non hanno bisogno di tutto per essere come GMail o GitHub. La configurabilità del cruscotto è abbastanza deludente (vista metrico solo in una colonna, non è possibile combinare più metriche in una vista, un sacco di spazio sprecato, ecc), soprattutto rispetto a quello che mi ci sono abituato in Jazz di IBM Rational. Ma è possibile ottenere i dati tramite un webservice per cui si potrebbe essere in grado di costruire la vostra visualizzazione. Sarebbe bello avere più condizionali avvisi e le azioni script nelle edizioni open source ma è gratuito, dopo tutto.
Per provare:
  • Passare da Vista Mostra elenco e Grafico Mostra vista sulla scheda Risorse
  • Definire un gruppo personalizzato di risorse relative a rendere più facile per mostrare tutti in una volta ecc (Risorse - nuovo gruppo e poi Menu Strumenti - Aggiungi al gruppo)
  • Script di servizio: eseguire uno script personalizzato di misura su base programmata e salvare le metriche nel database Hyperic con plug-riferito metriche (Google)
  • Per impostazione predefinita, HQ raccoglie un piccolo sottoinsieme delle metriche disponibili. È possibile modificare che in Amministrazione - Defaults Monitoraggio - Fare clic su Modelli Modifica metrico della risorsa, controllare i parametri che si desidera e se mostrare loro per impostazione predefinita (= indicatori), immettere un intervallo di raccolta e il pulsante accanto ad essa
  • Citazione: "Anche se lo sviluppo di Hyperic HQ plugin ha un costo iniziale, abbiamo familiarità con essa e sviluppato molte MBeans JMX + associato plugins Hyperic" - disponibile presso Google Code / Xebia

Conclusione

Hyperic HQ sembra davvero buono (come uno strumento, non l'interfaccia utente). Da qualche parte, può essere difficile ottenere una porta sul server e la macchina aperta monitorati e si deve assolutamente usare un DB esterno ed essere consapevoli della sua crescita rapida possibile, se si raccolgono molti dati di monitoraggio e non eliminare i più grandi in qualche modo. La sua funzionalità è abbastanza buona sia per quanto riguarda ciò che può essere monitorato e che cosa potete fare con i dati nell'interfaccia utente, e se questo non è sufficiente allora si ha il webservice HQAPI e il codice sorgente completo del quartier generale a vostra disposizione. Sono sicuramente impaziente di provarlo sul mio prossimo progetto.

Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.