![]() |
This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introduzione
Checkmk ti permette di monitorare in modo completo MySQL e i cluster Galera per MySQL. Puoi trovare un elenco completo delle opzioni di monitoraggio nel nostro Catalogo dei plug-in di controllo. Tra le altre cose, Checkmk può monitorare i seguenti aspetti:
Per poter monitorare i database, oltre all'agente Checkmk è necessario solo il plug-in dell'agente sul server database. Non sono necessari altri software né sul server Checkmk né sul database.
Di seguito descriveremo l'impostazione del monitoraggio di MySQL per gli host Linux e Windows, mentre in seguito ci occuperemo dell'impostazione tramite l'agent bakery.
2. Impostazione del monitoraggio
2.1. Creazione di un utente
Linux e Windows
L'unico requisito per impostare il monitoraggio all'interno di MySQL è la disponibilità di un utente del database e della relativa password. Questo utente deve avere solo i diritti di lettura delle istanze MySQL. Se tale utente non esiste ancora, crealo nelle istanze da monitorare. A tal fine, accedi a MySQL con un utente con diritti di accesso sufficienti e poi crea un nuovo utente del database:
mysql> CREATE USER 'checkmk'@'localhost' IDENTIFIED BY 'MyPassword';
Questo utente appena creato deve essere autorizzato a leggere le istanze. Pertanto, verifica che l'utente abbia i permessi necessari o aggiungili con il seguente comando. L'esempio seguente esegue questa operazione per l'utente checkmk
:
mysql> GRANT SELECT, SHOW DATABASES ON *.* TO 'checkmk'@'localhost';
Se utilizzi la replica di MySQL, l'utente deve avere almeno il diritto REPLICATION CLIENT per monitorare il server di replica:
mysql> GRANT REPLICATION CLIENT ON *.* TO 'checkmk'@'localhost';
2.2. Installazione del plug-in
Linux
Il plug-in mk_mysql
richiesto si trova sul tuo server Checkmk nella directory~/share/check_mk/agents/plugins/
. Come primo passo, copia questo plug-in nella directory dei plug-in dell'agentesull'host da monitorare. La directory dei plug-in è solitamente/usr/lib/check_mk_agent/plugins/
. Non appena lo script si trova nella directory specificata, rendilo eseguibile:
root@linux# chmod 700 mk_mysql
Naturalmente questo plug-in può essere eseguito anche in modo asincrono, se necessario.
Windows
L'Agente per Windows viene fornito con una serie di plug-in standard. Per questo motivo, dopo l'installazione dell'Agente, troverai anche il plug-in per il monitoraggio di MySQL sul tuo host. È sufficiente copiarlo nella directory corretta per utilizzarlo.
PS> copy "c:\Program Files (x86)\checkmk\service\plugins\mk_mysql.vbs" c:\ProgramData\checkmk\agent\plugins\
2.3. Creare il file di configurazione
Il file di configurazione che crei di seguito - o tramite l'agent bakery - viene utilizzato come unica fonte per le impostazioni dell'agente di monitoraggio MySQL. Qualsiasi altra configurazione esistente a livello locale non viene presa in considerazione da Checkmk.
Linux
Crea quindi un file con il nome mysql.cfg
nelladirectory di configurazione (normale:/etc/check_mk/
) per l'agente Checkmk sull'host di destinazione.
L'agente può recuperare le informazioni desiderate dall'istanza di MySQL utilizzando i dati dell'utente inseriti. Sebbene l'indicazione di un utente del database sia facoltativa, la consigliamo in quanto l'agente di solito esegue il plug-in come utente di sistema root. Se non viene specificato il nome dell'utente del database, il client MySQL tenta di accedere al database con il nome dell'utente di sistema in esecuzione senza utilizzare una password o utilizzando la password archiviata in .mylogin.cnf
. Ulteriori informazioni sono disponibili, ad esempio, nella documentazione di MySQL.
Il formato dei file di configurazione di MySQL è il solito:
[client]
user=checkmk
password=MyPassword
Il salvataggio dei dati di accesso con il seguente comando protegge dagli accessi non autorizzati:
root@linux# chmod 400 mysql.cfg
Windows
Su un host Windows, crea un file chiamato mysql.ini
nella directory seguente:
[client]
user=checkmk
password=MyPassword
Se sull'host sono presenti più istanze MySQL con nomi utente e password diversi, è sufficiente creare un file .ini
per ogni istanza utilizzando il seguente schema di denominazione: mysql_INSTANCE-ID.ini
2.4. Creare i servizi
Ora che hai installato e configurato il plug-in, puoi eseguire unascoperta del servizio per questo host. La seguente schermata mostra solo una selezione dei servizi che possono essere trovati:

3. Configurazione avanzata
3.1. Eseguire un plug-in in modo asincrono
Il plug-in per il monitoraggio di MySQL, come molti altri, può essere eseguito in modo asincrono, ad esempio per tenere conto di tempi di esecuzione più lunghi per istanze MySQL di grandi dimensioni.
Linux
Su un host Linux, il plug-in viene spostato solo in una sottodirectory della directory plug-in. Ad esempio, se vuoi eseguire il plug-in solo ogni 5 minuti, sposta semplicemente lo script mk_mysql
in una sottodirectory chiamata 300
. Istruzioni dettagliate per l'esecuzione asincrona dei plug-in sono disponibili nell'articolo sull'agente Linux.
Windows
Per eseguire il plug-in dell'agente in modo asincrono in Windows, regola la configurazione dell'agente ed espandi la sezione execution
sotto plugins
con la seguente voce:
plugins:
execution:
- pattern: mk_mysql.vbs
cache_age: 300
async: yes
Puoi trovare istruzioni dettagliate per l'esecuzione asincrona dei plug-in dell'agente su un host Windows nell'articolo sugliagenti Windows.
3.2. Opzioni aggiuntive per i file di configurazione
Impostazione della comunicazione con MySQL tramite socket
Invece di permettere all'agente Checkmk di comunicare con MySQL tramite TCP, puoi indicare all'agente Checkmk di indirizzare il socket. Per fare ciò, è sufficiente definire la variabile socket
nel file mysql.cfg
. Ecco un esempio di file di configurazione per Windows:
[client]
user=checkmk
password=MyPassword
*socket=/var/run/mysqld/mysqld.sock*
Definire gli host manualmente
Inoltre, è possibile impostare manualmente l'host di MySQL tramite i file di configurazione. La variabile corrispondente si chiama semplicemente host
. Anche in questo caso, facciamo l'esempio di Windows:
[client]
user=checkmk
password=MyPassword
*host=127.0.0.1*
3.3. Configurazione delle soglie
Monitoraggio delle sessioni
Alcuni dei controlli impostati in questo modo non hanno valori di threshold preimpostati. Di solito questo accade perché non esistono valori predefiniti ragionevoli che siano sufficienti nella maggior parte dei casi. Tuttavia, è possibile configurarli con pochi e semplici passaggi. Ad esempio, puoi trovare la regola MySQL Sessions & Connectionstramite il noto Host & Service Parameters. Questa regola può essere utilizzata per definire dei valori soglia significativi per il servizio MySQL sessions, utili per la tua istanza MySQL.

Monitoraggio delle connessioni
Non abbiamo specificato alcun valore soglia per l'utilizzo del numero massimo di connessioni simultanee specificate da MySQL, poiché queste dipendono molto di più dalla struttura della tua istanza MySQL rispetto ad altri servizi. La definizione dei valori di soglia corrispondenti può essere effettuata in un attimo con un set di regole del sito MySQL Connections. Lo stesso vale per la quantità di connessioni aperte.

Monitoraggio delle dimensioni dei database
Le dimensioni dei singoli database di MySQL sono monitorate dal plug-in MySQL: I valori di soglia per questo plug-in di controllo possono essere determinati con la regola Size of MySQL databases.

3.4. Monitoraggio dei file di log
Con l'aiuto del plug-in di controllo Logwatch puoi anche monitorare i file di log generati da MySQL per verificare la presenza di errori. Dopo aver configurato il plug-in, controlla innanzitutto dove si trovano i file di log corrispondenti nella tua istanza MySQL. La loro posizione esatta si trova nel file .ini
o .cnf
della tua istanza.
Puoi inserire i log che ti interessano nel file di configurazione di logwatch e inserire le seguenti voci, ad esempio su un host Linux:
/var/log/mysql/error.log
W Can't create/write to file
C [ERROR] Can't start server
C mysqld_safe mysqld from pid file /var/run/mysql/mysqld.pid ended
4. Configurazioni con l'Agent bakery
L'installazione è molto semplificata con l'Agent bakery, in quanto si evitano errori di sintassi nei file di configurazione e si possono facilmente effettuare adattamenti ad ambienti in continua evoluzione. La differenza principale rispetto a un'installazione manuale è che solo per le configurazioni speciali specifiche di MySQL devi lavorare sull'host MySQL alla sua riga di comando.
Per la configurazione iniziale, è sufficienteimpostare l'utente del database sull'host MySQL e creare una regola corrispondente nella bakery. Il set di regole si trova sotto Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules. Puoi quindi cercare MySQL
nel campo di ricerca:

Inserisci l'ID utente e la password per il nuovo utente del database. Con il campo seguente puoi impostare l'agente Checkmk per gli host Linux in modo che non stabilisca la connessione a MySQL tramite TCP, bensì tramite socket. A seconda delle dimensioni e dell'utilizzo, questo può contribuire a migliorare le prestazioni.
Con questo set di regole è possibile definire anche una versione asincrona del plug-in MySQL. Questo può essere utile per tenere conto di tempi di esecuzione più lunghi con istanze MySQL di grandi dimensioni o se i dati di stato non sono richiesti ogni minuto.

5. Opzioni di diagnostica
Se, ad esempio, si verificano comportamenti inaspettati o problemi durante l'impostazione del monitoraggio, è consigliabile effettuare un controllo direttamente su un host interessato. Poiché i plug-in dell'agente per il monitoraggio di MySQL sia per Linux che per Windows sono script shell o Visual Basic, possono essere facilmente eseguiti senza l'agente. Indipendentemente dal sistema operativo utilizzato, è sufficiente rendere nota alla shell o alla riga di comando la directory di configurazione pertinente.
5.1. Opzioni di diagnostica con Linux
Per prima cosa controlla le directory applicabili al tuo host.
user@host:~$ grep 'export MK' /usr/bin/check_mk_agent
export MK_LIBDIR='/usr/lib/check_mk_agent'
export MK_CONFDIR='/etc/check_mk'
Ora usa il comando export per creare le variabili d'ambiente MK_CONFDIR
eMK_LIBDIR
. Personalizza i comandi in base alle tue directory attuali.
root@linux# export MK_CONFDIR="/etc/check_mk/"
root@linux# export MK_LIBDIR="/usr/lib/check_mk_agent"
Importante: queste variabili d'ambiente esistono solo nella shell attualmente aperta e scompaiono non appena la chiudi.
Potrai quindi eseguire lo script mk_mysql
direttamente nella directory dei plug-in dell'agente Checkmk.
root@linux# $MK_LIBDIR/plugins/mk_mysql
Se tutti i diritti sono stati concessi correttamente all'utente del database, dovresti vedere diverse centinaia di righe di output anche in un ambiente MySQL piccolo e di pertinenza.
5.2. Opzioni di diagnostica in Windows
Per poter eseguire manualmente il plug-in di controllo su un host Windows, apri innanzitutto una linea di comando con diritti di amministratore. Imposta la variabile d'ambiente MK_CONFDIR
in questa riga di comando: è necessaria affinché il plug-in possa trovare i tuoi file di configurazione.
PS> set MK_CONFDIR=c:\ProgramData\checkmk\agent\config
Importante: anche in questo caso la variabile d'ambiente impostata non è permanente, ma esiste solo finché la riga di comando è aperta.
Durante l'esecuzione vera e propria del plug-in, è consigliabile reindirizzare l'output alla linea di comando. Windows mette a disposizione lo strumento cscript
per questo scopo.
PS> cscript c:\ProgramData\checkmk\agent\plugins\mk_mysql.vbs
5.3. Possibili errori e messaggi di errore
mysqladmin: connessione al server di xyz fallita
Il messaggio di errore connect to server at xyz failed
indica che l'utente specificato nel file di configurazione non ha accesso a MySQL. Per prima cosa controlla che non si siano verificati errori di trasmissione durante la creazione del file di configurazione (mysql.cfg
o mysql.ini
).
Se il nome utente o la password specificati nel file di configurazione non sono corretti, riceverai un messaggio di errore simile al seguente:
Access denied for user checkmk
Le dimensioni del database non vengono emesse
Se in Checkmk vedi tutta una serie di dati provenienti dalla tua istanza MySQL, ma non c'è nessun servizio che monitora le dimensioni dei database in essa contenuti, questo indica che l'utente del database non ha il diritto di SELECT.
Controlla l'utente del database in MySQL con il seguente comando:
mysql> show grants for 'checkmk'@'localhost';
+--------------------------------------------------------------------------+
| Grants for checkmk@localhost |
+--------------------------------------------------------------------------+
| GRANT SELECT, SHOW DATABASES ON *.* TO `checkmk`@`localhost` |
+--------------------------------------------------------------------------+
Se nell'output manca la keyword SELECT, concedi all'utente del database i diritti appropriati come specificato nel capitolo sullaconfigurazione degli utenti.
6. File e directory
6.1. Sull'host MySQL
Linux
Percorso dei file | Funzione |
---|---|
|
L'agente che raccoglie tutti i dati sull'host. |
|
La directory in cui vengono archiviati i plug-in. |
|
Il file di configurazione del plug-in MySQL. |
|
File di configurazione aggiuntivo per specificare i socket specifici dell'host. |
Windows
Percorso del file | Funzione |
---|---|
|
La solita directory dei plug-in. |
|
La solita directory di configurazione. |
|
La directory di configurazione abituale fino alla versione di Checkmk. 1.6.0 |
|
La solita directory dei plug-in fino alla versione Checkmk. 1.6.0 |
6.2. Sul server Checkmk
Percorso del file | Funzione |
---|---|
|
Il plug-in che recupera i dati dall'host MySQL. |