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 i cluster MySQL e Galera per MySQL. Puoi trovare un elenco completo delle opzioni di monitoraggio nel nostro catalogo dei plugin per i controlli. Tra le altre cose, Checkmk può monitorare quanto segue:
Per poter effettuare il monitoraggio dei database, oltre all'agente Checkmk ti serve solo il plug-in dell'agente sul server del database. Non è richiesto alcun software aggiuntivo né su Checkmk, né sul server del database.
Di seguito descriveremo come configurare il monitoraggio di MySQL per host Linux e Windows. Più avanti vedremo come configurarlo utilizzando l'agent bakery.
2. Configurazione del monitoraggio
2.1. Creazione di un utente
L'unico requisito per configurare il monitoraggio in MySQL è che siano disponibili un utente del database e la relativa password. A questo utente servono solo i diritti di lettura sulle istanze MySQL. Se un utente del genere non esiste ancora, crealo nelle istanze da monitorare. Per farlo, accedi a MySQL con un utente dotato di diritti di accesso sufficienti, quindi crea un nuovo utente del database:
Questo utente appena creato ha bisogno del permesso per leggere le istanze.
Controlla quindi se l'utente dispone dei permessi necessari oppure aggiungili con il seguente comando.
L'esempio seguente lo fa per l'utente checkmk:
Se utilizzi la replica MySQL, l'utente deve disporre almeno del permesso REPLICATION CLIENT per effettuare il monitoraggio del server di replica:
2.2. Installazione del plug-in
- Linux
Il plug-in richiesto, denominato "
mk_mysql", è disponibile sul tuo server Checkmk all'indirizzo Setup > Linux, Solaris, AIX files > Plugins oppure nella directory~/share/check_mk/agents/plugins/.Come primo passo, copia questo plug-in nella directory dei plug-in dell'agente sull'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:Questo plug-in può ovviamente essere eseguito anche in modo asincrono, se necessario.
- Windows
L'agente per Windows include di serie una serie di plug-in. Ecco perché, dopo aver installato l'agente, troverai anche il plug-in per il monitoraggio di MySQL sul tuo host. Basta copiarlo nella directory corretta per utilizzarlo.
2.3. Creazione del file di configurazione
Il file di configurazione che creerai qui sotto – o tramite agent bakery – viene utilizzato come unica fonte per le impostazioni di monitoraggio di MySQL. Eventuali altre impostazioni di configurazione presenti localmente non vengono prese in considerazione da Checkmk.
- Linux
Crea quindi un file con il nome
mysql.cfgnella directory di configurazione (di solito:/etc/check_mk/) per l'agente Checkmk sull'host di destinazione.L'agente può recuperare le informazioni desiderate dalla tua istanza MySQL utilizzando i dati dell'utente inseriti nel file. Sebbene la specificazione di un utente del database sia facoltativa, te la consigliamo poiché l'agente di solito esegue il plug-in come utente di sistema
root. Se non viene specificato alcun nome utente del database, il client MySQL tenta di accedere al database con il nome utente dell'utente di sistema che esegue il programma senza utilizzare una password, oppure utilizzando la password memorizzata in.mylogin.cnf. Ulteriori informazioni sono disponibili, ad esempio, nella documentazione di MySQL.Questo viene fatto nel formato usuale per i file di configurazione di MySQL:
Salvare i dati di accesso con il seguente comando protegge da accessi non autorizzati:
- Windows
Su un host Windows, crea un file denominato
mysql.ininella directory seguente:Se sull'host esegui più istanze di MySQL con nomi utente e password diversi, basta creare un file
.iniper ogni istanza usando il seguente schema di denominazione:mysql_INSTANCE-ID.ini
2.4. Creazione dei servizi
Ora che hai installato e configurato il plug-in, puoi eseguire la scoperta del servizio per questo host. La schermata seguente mostra solo una selezione dei servizi che è possibile trovare:

3. Configurazione avanzata
3.1. Esecuzione asincrona di un plug-in
Il plug-in per il monitoraggio di MySQL, come molti altri, può essere eseguito in modo asincrono, ad esempio per tenere conto dei tempi di esecuzione più lunghi delle istanze MySQL di grandi dimensioni.
- Linux
Su un host Linux, il plug-in viene semplicemente spostato in una sottodirectory della directory dei plug-in. Ad esempio, se vuoi eseguire il plug-in solo ogni 5 minuti, basta spostare lo script
mk_mysqlin una sottodirectory chiamata300. Istruzioni dettagliate per l'esecuzione asincrona dei plug-in sono disponibili nell'articolo sull'agente Linux.- Windows
3.2. Opzioni aggiuntive per i file di configurazione
Configurazione della comunicazione con MySQL tramite socket
Invece di lasciare che l'agente comunichi con MySQL tramite TCP, puoi indicare a Checkmk di utilizzare il socket.
Per farlo, basta definire la variabile socket nel file mysql.cfg.
Ecco un esempio del file di configurazione per Windows:
Definizione manuale degli host
Inoltre, è anche possibile impostare manualmente l'host MySQL tramite i file di configurazione.
La variabile corrispondente si chiama semplicemente host.
Anche in questo caso, usando l'esempio di Windows:
3.3. Configurazione delle soglie
Sessioni di monitoraggio
Alcuni dei controlli configurati in questo modo non hanno valori di threshold predefiniti. Questo accade solitamente perché non esistono valori predefiniti ragionevoli che siano sufficienti nella maggior parte dei casi. Tuttavia, è possibile impostarli in pochi semplici passaggi.
Ad esempio, nell'Service monitoring rulese puoi trovare la regola MySQL sessions & connections. Questa può essere utilizzata per definire valori di threshold significativi per il servizio MySQL sessions della tua istanza MySQL.

Monitoraggio delle connessioni
Non abbiamo specificato alcun valore di threshold per l'utilizzo del numero massimo di connessioni simultanee specificato da MySQL, poiché questi dipendono molto più dalla struttura della tua istanza MySQL che da altri servizi.
L'impostazione dei valori di threshold corrispondenti può essere effettuata in un attimo con una regola del set di regole MySQL connections. Lo stesso vale per il numero di connessioni aperte.

Monitoraggio delle dimensioni dei database
La dimensione dei singoli database in MySQL viene monitorata dal plug-in di controllo MySQL: Capacity check. I valori di threshold per questo plug-in possono essere determinati con la regola MySQL database sizes.

3.4. Monitoraggio dei file di log
Con l’aiuto del plug-in logwatch puoi anche effettuare il monitoraggio dei file di log generati da MySQL alla ricerca di errori.
Dopo aver configurato il plug-in, verifica innanzitutto dove si trovano i file di log corrispondenti nella tua istanza MySQL.
La loro posizione esatta è riportata nel file .ini o .cnf della tua istanza.
Puoi inserire i log che ti interessano nel file di configurazione di logwatch e inserire, ad esempio, le seguenti voci 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 ended4. Configurazioni con agent bakery
La configurazione è molto semplificata con Agent Bakery, poiché si evitano errori di sintassi nei file di configurazione
e si possono facilmente apportare modifiche per adattarsi a ambienti in evoluzione.
La differenza principale rispetto a un'installazione manuale è che solo per configurazioni specifiche di MySQL devi lavorare sull'host MySQL dalla sua riga di comando.
Per la configurazione iniziale, è sufficiente impostare l'utente del database sull'host MySQL e creare una regola corrispondente in agent bakery.
Puoi trovare il set di regole in 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, ma tramite il socket. A seconda delle dimensioni e dell'utilizzo, questo può contribuire a migliorare la performance.
Con questo set di regole è possibile definire anche una versione asincrona del plug-in MySQL. Ciò può essere utile per tenere conto di tempi di esecuzione più lunghi con istanze MySQL di grandi dimensioni, oppure se i dati di stato non sono semplicemente necessari ogni minuto.

5. Opzioni di diagnostica
Se, ad esempio, si verificano comportamenti imprevisti o problemi durante la configurazione del monitoraggio, ti consigliamo di controllare direttamente sull'host interessato. Poiché i plug-in 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 indicare alla shell o alla riga di comando la directory di configurazione pertinente.
- Linux
Check prima le directory applicabili per il tuo host.
Ora usa il comando export per creare le variabili d'ambiente
MK_CONFDIReMK_LIBDIR. Personalizza i comandi in base alle tue directory effettive.
Queste variabili d'ambiente esistono solo nella shell attualmente aperta e scompaiono non appena la chiudi.
Puoi quindi eseguire lo script
mk_mysqldirettamente nella directory dei plug-in dell'agente Checkmk.Se tutti i permessi sono stati concessi correttamente all'utente del database, dovresti ora vedere diverse centinaia di righe di output anche in un ambiente MySQL piccolo e nuovo.
- Windows
Per poter eseguire manualmente il plug-in di controllo su un host Windows, apri prima una riga di comando con diritti di amministratore. Ora imposta la variabile d'ambiente
MK_CONFDIRin questa riga di comando. Questo è necessario affinché il plug-in possa trovare i tuoi file di configurazione.
Anche in questo caso, una variabile d'ambiente impostata qui non è permanente, ma esiste solo finché questa riga di comando rimane aperta.
Durante l'effettiva esecuzione del plug-in, è consigliabile reindirizzare l'output alla riga di comando. Windows fornisce lo strumento integrato
cscripta questo scopo.
5.1. Possibili errori e messaggi di errore
Il messaggio di errore connect to server at xyz failed indica che l'utente specificato nel file di configurazione non ha accesso a MySQL.
Check innanzitutto 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 checkmkSe in Checkmk vedi un'intera serie di dati provenienti dalla tua istanza MySQL, ma non c'è alcun servizio che effettua il monitoraggio della dimensione dei database in essa contenuti,
questo indica che l'utente del database non dispone del permesso "SELECT".
Controlla il tuo utente del database in MySQL con il seguente comando:
Se nella tua output manca la keyword SELECT, concedi all'utente del database i diritti appropriati come specificato nella sezione di Setup dell'utente.
6. File e directory
6.1. Sull'host MySQL
- Linux
Percorso del file Funzione /usr/bin/check_mk_agentL'agente che raccoglie tutti i dati relativi all'host.
/usr/lib/check_mk/plugins/La directory in cui di solito vengono memorizzati i plug-in.
/etc/check_mk/mysql.cfgIl file di configurazione per il plug-in MySQL.
/etc/check_mk/mysql.local.cfgFile di configurazione aggiuntivo per specificare socket specifici dell'host.
- Windows
Percorso del file Funzione C:\ProgramData\checkmk\agent\plugins\La directory in cui di solito vengono memorizzati i plug-in.
C:\ProgramData\checkmk\agent\config\La directory di configurazione standard.
6.2. Sul server Checkmk
| Percorso del file | Funzione |
|---|---|
|
Il plug-in che recupera i dati dall'host MySQL. |
