MySQL Enterprise Monitor e' un ambiente di controllo e monitoraggio
per i database MySQL. Si tratta di un prodotto commerciale e che
richiede quindi l'acquisto di una licenza da MySQL AB
ma fornisce funzionalita'
aggiuntive rispetto ad altri strumenti distribuiti con licenza Open Source.
Il monitor fornisce una semplice ma ricca interfaccia grafica ai DBA
con lo stato di tutti i database MySQL monitorati.
La dashboard, che e' altamente personalizzabile,
presenta i grafici dei principali parametri
prestazionali e di utilizzo del sistema, una tabella riassuntiva
con stato di ogni server ed il sommario di tutti gli eventi occorsi, ...
Le funzionalita' dell'Enterprise Monitor sono molte ma particolarmente semplice ed utile
e' la generazione di grafici sui valori di sistema.
Piu' complessi, ma in compenso molto sofisticati, sono gli Advisor che controllano
i parametri di configurazione delle basi dati e l'utilizzo dei sistemi per consigliare
le configurazioni ottimali.
Dal punto di vista architetturale il Monitor e' un'applicazione Java
che utilizza un Tomcat ed un DB (ovviamente MySQL :-) come supporto.
Il Monitor realizza un'interfaccia utente chiamata Dashboard,
permette la configurazione degli allarmi e dei controlli e
riceve le informazioni dagli Agent.
I Service Agent, installati su ogni server che ospita istanze MySQL,
inviano al Monitor lo stato del DB e tutte le informazioni sulle
attivita' correnti.
Gli agent sono eseguibili realizzati in C e dialogano con il monitor
in SOA (in pratica scambiano messaggi XML con il monitor utilizzando la
porta su cui Tomcat dialoga in HTTP con gli utenti).
Il monitor e' automaticamente aggiornato ed e' altamente
personalizzabile.
Tra i componenti parametrizzabili piu' interessanti vi sono gli Advisor.
Gli Advisor controllano la presenza di specifiche condizioni
sulla base dati ed utilizzano un'intelligenza nella loro analisi
determinando le cause di eventuali problemi ed indicando le corrette
operative per risolverli.
Oltre agli advisor e' possibile definire regole, utenti, notifiche
automatiche, ...
Tutti i dati raccolti dal Monitor vengono salvati su una base dati che
consente la generazione di statistiche. Naturalmente si tratta di una base dati
MySQL... La BASEDIR e' install_dir/enterprise/monitor/mysql,
l'utente principale e' service_manager (la cui password viene impostata
durante l'installazione), la porta utilizzata e' la 13306,
il database e' chiamato mem e contiene una sessantina di tabelle InnoDB.
La dimensione dipende dalla politica di ritenzione e dal numero di server MySQL,
come indicazione si puo' dare 1GB a server (basta ed avanza).
Nel seguito sono riportate informazioni di maggior dettaglio su
utilizzo,
amministrazione,
installazione,
configurazioni complesse,
...
Questo documento e' stato preparato utilizzando la versione 1.2
di MySQL Enterprise Monitor con server MySQL 5.0.32-E/5.0.45-E
su Linux Red Hat AS 4 (Update 4)
ma e', mutatis mutandis, valido anche per le altre versioni ed ambienti.
Lo scopo di questa pagina e' quella di introdurre le funzionalita'
e caratteristiche di MySQL Enterprise Monitor, maggiori dettagli
su MySQL si possono
trovare su questo documento o sul ricchissimo
sito ufficiale MySQL
(quest'ultimo ovviamente in inglese).
L'utilizzo della MySQL dashboard e' molto semplice... prooova!
Come molte GUI e' molto piu' facile da utilizzare che da spiegare a parole.
Basta collegarsi con un browser all'indirizzo:
http://MonitorServer:18080/merlin/Monitor.action
ed disporre di una user/password.
Semplicemente cliccando sui diversi tab vengono visualizzati grafici, regole,
eventi, ... e si accede ai form di configurazione.
Tutti i dati raccolti dal Monitor vengono salvati su una base dati che
consente la generazione di statistiche.
Attenzione: nella configurazione di default, i dati statistici
non vengono mai cancellati!
Particolarmente semplice ed utile
e' la generazione di grafici sui valori di sistema.
Naturalmente i grafici possono riguardare la situazione dell'ultima ora,
come tipicamente riportato nella Home Page, o un qualsiasi intervallo di
tempo.
Gli Advisor vengono eseguiti ad intervalli periodici su tutte le basi dati. Tutti gli eventi occorsi vengono registrati ed e' quindi molto semplice effettuare analisi ed approfondimenti a fronte di problemi.
L'amministrazione e' molto semplice. L'unica operativa prevista e' quella
di attivare/disattivare agenti e monitor.
La procedura di installazione
crea gli script mysql-enterprise-monitor
e mysql-service-agent
nella directory /etc/init.d che e' possibile
lanciare con i parametri [start|stop|status].
Ad esempio:
# /etc/init.d/mysql-service-agent status MySQL Enterprise agent is running
Analogamente possono essere attivato, disattivato e controllato il Monitor.
Su Linux l'installazione e' semplice ed utilizza procedure di installazione binarie che possono essere eseguite in modalita' testuale o grafica. E' sufficiente scaricare gli eseguibili corretti dal sito MySQL. In una configurazione tipica sono necessari un Enterprise Monitor, da installare sul server utilizzato per i controlli, e tanti Service Agent quanti sono i sistemi su cui sono installati i server MySQL. E' inoltre possibile scaricare direttamente sul server che ospita il Monitor gli script di Advisor relativi al tipo di supporto scelto (eg. Gold) e la chiave d'attivazione.
File | Descrizione |
mysqlmonitor-version.bin | MySQL Enterprise Monitor |
mysqlserviceagente-version.bin | Service Agent |
AdvisorScript-Support_level-version.jar | Script di Advisor |
mysql_monitoring_service.key.txt | Chiave di attivazione del prodotto |
Scaricato il software, per effettuare l'installazione basta lanciare l'eseguibile e rispondere ad alcune semplici domande su dove installare il SW e quali porte utilizzare (i default vanno bene nella maggior parte dei casi):
[root@saturn tmp]# ./mysqlmonitor-1.2.0.7879-linux-x86-installer.bin ---------------------------------------------------------------------------- Welcome to the setup wizard for the MySQL Enterprise Monitor ---------------------------------------------------------------------------- Please specify the directory where the MySQL Enterprise Monitor will be installed Installation directory [/opt/mysql/enterprise/monitor]: ---------------------------------------------------------------------------- Tomcat Server Options Please specify the following parameters for the bundled Tomcat Server Tomcat Server Port [18080]: Tomcat Shutdown Port [18005]: Tomcat SSL Port [18443]: ---------------------------------------------------------------------------- Repository Configuration Please specify the following parameters for the bundled MySQL server Repository Username [service_manager]: Password : ****** Re-enter : ****** Bundled MySQL Database Port [13306]: ---------------------------------------------------------------------------- Configuration Report ... Press [Enter] to continue : ---------------------------------------------------------------------------- Setup is now ready to install MySQL Enterprise Monitor on your computer. Do you want to continue? [Y/n]: ---------------------------------------------------------------------------- Please wait while Setup installs MySQL Enterprise Monitor on your computer. Installing 0% ______________ 50% ______________ 100% ######################################### ---------------------------------------------------------------------------- Completed installing files ... Info: To configure the MySQL Enterprise Monitor please visit the following page: http://localhost:18080/merlin/Auth.action Press [Enter] to continue :
Terminata l'installazione con un browser ci si collega all'indirizzo indicato e si compilano le ultime informazioni necessarie all'attivazione del server (si puo' fare anche una connessione da remoto sostituendo localhost con il nome del server) :
In pochi minuti anche l'attivazione e' conclusa, i servizi attivi (DB e Tomcat) e MySQL Monitor e' in grado di raccogliere le informazioni dagli Agent.
Per installare l'Agent la procedura e' analoga. In questo caso andranno indicati gli estremi del database da controllare e del Monitor appena configurato:
[root@titan tmp]# ./mysqlserviceagent-1.2.0.7879-linux-x86-glibc2.3-installer.bin ---------------------------------------------------------------------------- Welcome to the MySQL Enterprise Service Agent Setup Wizard. ---------------------------------------------------------------------------- Please specify the directory where MySQL Enterprise Service Agent will be installed Installation directory [/opt/mysql/enterprise/agent]: ---------------------------------------------------------------------------- Monitored Database Information MySQL hostname or IP address [127.0.0.1]: Validate MySQL hostname or IP address [Y/n]: Hostname to display []: titan MySQL Port [3306]: MySQL Username []: root MySQL Password : ****** Re-enter : ****** ---------------------------------------------------------------------------- MySQL Enterprise Monitor Options Hostname or IP address []: saturn.xenialab.it Port [18080]: Agent Username [agent]: Agent Password : ****** Re-enter : ****** ---------------------------------------------------------------------------- Configuration Report ... Press [Enter] to continue : ---------------------------------------------------------------------------- Setup is now ready to begin installing MySQL Enterprise Service Agent on your computer. Do you want to continue? [Y/n]: ---------------------------------------------------------------------------- Please wait while Setup installs MySQL Enterprise Service Agent on your computer. Installing 0% ______________ 50% ______________ 100% ######################################### ---------------------------------------------------------------------------- Start MySQL Enterprise Service Agent Info to start MySQL Enterprise Service Agent The MySQL Service Agent was successfully installed. To start the MySQL Agent please invoke: /mydata1/agent/etc/init.d/mysql-service-agent start Press [Enter] to continue : ---------------------------------------------------------------------------- Setup has finished installing MySQL Enterprise Service Agent on your computer.
Lanciato l'Agent con il comando indicato questo diventera' immediatamente presente sulla dashboard del monitor ed iniziera' ad inviare dati sulle prestazioni e sull'utilizzo della base dati.
Sono possibili alcune installazioni particolari... nessuna tuttavia e' complessa. Nel seguito sono riportati alcuni casi piuttosto comuni quali la presenza di piu' server MySQL sullo stesso sistema e l'utilizzo di servizi in cluster.
Nel caso in cui siano presenti piu' server MySQL ospitati sullo stesso sistema non e' necessario installare piu' agenti. E' necessaria una sola installazione e la configurazione manuale dei server.
# /agent_install_dir/bin/mysql-service-agent -u uuid = 9c02d102-873e-44e8-bd80-23c69928196f
Utilizzando configurazioni analoghe e' possibile porre sotto monitor tutti i server MySQL di interesse. MySQL Monitor opera correttamente con le diverse versioni MySQL sia Enterprise che Community, sia in locale che in remoto... attenzione solo ad usare correttamente le licenze! Il numero di host su cui e' possibile installare gli agent e' definito dalla licenza.
La nuova versione di EM introduce ulteriori controlli sulle basi dati e consente l'analisi delle query attive. Per disporre dei dati delle query e' necessario utilizzare il proxy oppure configurare in modo opportuno i connettori JDBC.
La versione 2 di EM consente una gestione completa anche dei servizi DB in un failover cluster. Per una corretta configurazione e' necessario definire in modo univoco il parametro agent-host-id nel file .../enterprise/agent/etcmysql-monitor-agent.ini La tabella mysql.inventory va eventualmente troncata da eventuali contenuti.
Quando si utilizzano cluster Active-Passive la configurazione degli Agent e del Monitor e' analoga a quella gia' vista, tenendo pero' in conto che va utilizzato il nome del servizio e non il nome del server. Naturalmente gli script di attivazione dovranno essere poi lanciati all'avvio del servizio e non al bootstrap del sistema.
Testo: MySQL Enterprise Monitor
Data: 1 Novembre 2007
Versione: 1.0.4 - 14 Febbraio 2011
Autore: mail@meo.bogliolo.name