Il plug-in MS SQL di nuova generazione, rilasciato con Checkmk 2.3, offre una serie di funzionalità e miglioramenti che era quasi impensabile implementare nella vecchia versione. La necessità di aggiornare il plug-in esistente è cresciuta negli ultimi anni per diverse ragioni, che affronteremo nella descrizione delle modifiche implementate. Il codice è stato completamente aggiornato senza sacrificare le funzionalità esistenti. Il plug-in di nuova generazione è una delle novità più importanti della versione 2.3.
Il vecchio plug-in ha funzionato molto bene per anni, ma non è stato sviluppato per la vasta infrastruttura cloud e ibrida di oggi quando è stato introdotto per la prima volta 12 anni fa. Era necessaria una revisione completa per migliorarne le prestazioni, compreso il supporto per le configurazioni complesse basate sul cloud e, a causa della deprecazione di VBScript da parte di Microsoft, il linguaggio in cui era stato scritto il plug-in.
Rilevamento del database
Il nuovo plug-in rappresenta un notevole miglioramento in molte aree. Il rilevamento delle istanze di database on-premises è ancora valido, ma ora è disponibile anche il supporto per il rilevamento in ambienti cloud. Attualmente il plug-in supporta il monitoraggio delle istanze di database basate su Windows da sistemi Windows o Linux, a condizione che i metodi di autenticazione di Windows e del database siano supportati. Il rilevamento dei database è automatico, è sufficiente eseguire un'individuazione del servizio.
Prestazioni
L'output del monitoraggio può essere incapsulato su più database per consentire tempi di cache diversi per ogni database. Ciò si accompagna alla nuova esecuzione parallela delle chiamate: Ora è necessario attendere solo il tempo del database più lento. Con il vecchio plug-in, si era costretti ad aspettare la somma di tutte le chiamate, il che limitava il vantaggio dei database veloci rispetto a quelli lenti. L'esecuzione delle chiamate SQL è stata migliorata ed è ora più veloce, rendendo il monitoraggio del database un'esperienza più rapida.
Supporto per i database
Abbiamo anche migliorato il supporto per i database MS SQL, compresi quelli di Azure. Il precedente plug-in copriva solo i database Windows che si trovavano sullo stesso server dell'agente di monitoraggio. Il nuovo plug-in aggiunge il supporto per il monitoraggio dei database cloud e dei database LAN/WAN. Il monitoraggio di Azure SQL è il caso d'uso principale e il suo monitoraggio è già approfondito quanto necessario per la maggior parte dei casi. Il plug-in può monitorare qualsiasi database compatibile con le query MS SQL.
Inoltre, il nuovo plug-in non si limita al monitoraggio da un sistema Windows: i database MS SQL possono essere monitorati anche da un computer Linux, utilizzando la stessa base di codice e le stesse funzioni. Si tratta di un miglioramento gradito a molti.
Addio VBScript, benvenuto Rust
A proposito di codice, l'abbandono di VBScript è stato imposto dalla sua deprecazione e si è deciso di riscrivere il plug-in in Rust. Questo ha portato una serie di vantaggi. In primo luogo, il plug-in non è mai stato così veloce, poiché il codice Rust può essere più performante di VBScript. In secondo luogo, il plug-in può essere compilato in modo incrociato su più piattaforme, velocizzando i test e lo sviluppo. Infine, trattandosi di un singolo file eseguibile, non è necessario preinstallare alcuna dipendenza sul sistema di monitoraggio. Tutte le dipendenze sono raggruppate nell'eseguibile. Per gli amministratori di sistema è molto più facile distribuire il plug-in.
Passando a VBScript, abbiamo anche lavorato alla revisione della configurazione del plug-in. Quello precedente utilizzava file ini, comuni nei sistemi Windows. Ora il plug-in dispone di nuove funzionalità, più portabili rispetto ad altri plug-in di monitoraggio dei database, e di un formato di configurazione ben supportato su tutte le piattaforme. La scelta è caduta su YAML, in quanto comunemente compreso dalla maggior parte degli amministratori e degli sviluppatori e già utilizzato da Checkmk in altri ambiti. YAML si è rivelato molto vantaggioso grazie alla sua struttura gerarchica di configurazione, che permette di dividere facilmente le opzioni dei singoli database da quelle standard. È un formato ben noto e la sua adozione non dovrebbe creare difficoltà agli amministratori di sistema e agli sviluppatori.
Come utilizzare il nuovo plug-in di monitoraggio MS SQL
Per monitorare i database MS SQL, è necessario disporre degli accessi giusti. Il nuovo plug-in supporta due metodi di autenticazione: Windows e misto Windows e SQL.
L'agente Checkmk viene eseguito su Windows come utente di sistema. Se questo utente ha privilegi sufficienti, che nel nostro caso con il database MS SQL sono view server state
, connect SQL
, e, facoltativamente, connect any database
, allora funzionerà subito.
Se l'uso del normale utente di sistema di Windows è indesiderato o impossibile, ad esempio per motivi di sicurezza o a causa di politiche interne, è possibile utilizzare un utente specifico che ha accesso ai database che vogliamo monitorare. Questo utente ha bisogno degli stessi privilegi descritti sopra.
L'installazione e la configurazione del plug-in sono molto semplificate grazie all'Agent Bakery presente nelle edizioni commerciali di Checkmk. Inoltre, non differisce dalla vecchia versione. È sufficiente aggiungere una regola per il plug-in MS SQL. Cercare sotto Setup
e utilizzare il campo di ricerca per trovare Microsoft SQL Server (Linux, Windows)
. La configurazione del plug-in può ora essere effettuata dall'interfaccia di Checkmk.
Ci sono diverse opzioni che possono essere attivate o selezionate, ma solo alcune sono importanti per i casi d'uso più comuni. Assicurati di selezionare il giusto valore di Authentication
: lascia il valore predefinito Local Integrated Authentication (Windows)
se utilizzi l'utente di sistema in Windows per connetterti al database.

Altrimenti, passare a SQL Database User Credentials
e aggiungere il nome di login e la password richiesti.

Per più istanze di database MS SQL in esecuzione sullo stesso host, selezionare l'opzione Custom instances
. Utilizzare Add new element
per inserire tutte le istanze di database in esecuzione sull'host monitorato e inserire le relative credenziali di accesso come descritto sopra.

Se hai bisogno di credenziali specifiche per connetterti al server host del database, puoi inserirle nei campi Connection
.

È inoltre possibile scegliere selettivamente cosa raccogliere e quali controlli eseguire in modo sincrono o asincrono nel sito Data to collect (Sections)
. Se si desidera ignorare un campo, è possibile farlo anche qui.

Per i controlli asincroni, è possibile impostare l'età della cache in secondi utilizzando l'opzione Cache age for asynchronous checks
direttamente in basso.

Successivamente, è possibile scegliere di mappare (Piggyback) i dati su un altro host in Checkmk.

L'opzione successiva, Discovery mode of database instances
, consente di selezionare le istanze di database da monitorare o da escludere tra quelle presenti sull'host.

Infine, il campo generico Options
consente di selezionare il numero di connessioni parallele consentite. L'impostazione predefinita è 6.

Installazione e configurazione manuale
L'installazione e la configurazione del nuovo plug-in MS SQL possono essere eseguite anche manualmente, come nel caso di Checkmk Raw, oppure, se si desidera modificare rapidamente una variabile della configurazione, utilizzando la riga di comando. Ricorda che se stai modificando la configurazione a mano ma esegui una delle edizioni commerciali, Agent Bakery aggiornerà l'agente e le tue modifiche andranno perse insieme all'aggiornamento.
Su Checkmk Raw >=2.3.0 è possibile trovare il plug-in mk-sql.exe
in Setup > Agents > Windows files. Copiare il file in C:\ProgramData\checkmk\agent\plugins\
ed eseguirlo una volta. Questo è tutto ciò che occorre fare per l'installazione effettiva del plug-in MS SQL.
Per quanto riguarda la configurazione, il nuovo plug-in utilizza YAML e il suo file di configurazione è C:\ProgramData\checkmk\agent\config\mk-sql.yml
. Una buona struttura di partenza è la seguente:
mk-sql.yml---
mssql:
main:
authentication:
username: ""
type: integrated
instances:
- sid: myInstance 1
auth:
username: myUser1
password: "123456"
type: sql_server
- sid: myInstance 2
auth:
username: myUser2
password: "987654"
type: sql_server
Se si utilizza un normale utente Windows per i database, non è necessaria alcuna coppia nome utente/password e si può utilizzare una stringa vuota ('') come valore. Se si esegue una singola istanza di database MS SQL, si può anche rimuovere instances
e tutto ciò che è elencato di seguito.
Una volta completata l'installazione del plug-in e la creazione del file di configurazione, è il momento di eseguire il rilevamento dei servizi sull'host del database. Checkmk dovrebbe rilevare le istanze del database e includere le metriche corrette nel monitoraggio. Per i casi d'uso più semplici, non c'è altro da fare.
Ulteriori parametri per modificare il plug-in
Dopo aver configurato il plug-in, è ora possibile regolare con precisione alcuni parametri che influenzano il modo in cui l'agente monitora i database MS SQL.
Un'opzione è la definizione di soglie per le connessioni attive al database. È possibile modificarle selezionando la regola MSSQL Connections
e cambiando il valore.

Le soglie possono essere impostate anche per i singoli file nei database. Seleziona la regola MSSQL datafile sizes
e modifica le soglie per i file utilizzati, per la parte di allocazione utilizzata e per i file allocati.

Entrambe le regole sono disponibili all'indirizzo Setup > Services > Service monitoring rules
.
Cosa ci aspetta e le limitazioni attuali
Il plug-in MS SQL di nuova generazione è solo il primo passo per migliorare il monitoraggio dei database con Checkmk. Ne seguiranno altri. Ci stiamo impegnando per ottenere un'esperienza di monitoraggio dei database semplice e robusta, che non includa solo MS SQL.
Stiamo anche lavorando per ampliare l'autenticazione. Oltre alle autenticazioni di Windows e dei database già supportate, vogliamo aggiungere l'autenticazione basata su token.
Sono già in corso miglioramenti al rilevamento automatico delle istanze di database. Alcuni sono già stati parzialmente implementati, mentre altri arriveranno in un secondo momento. Questo dovrebbe semplificare gli sforzi iniziali per monitorare i nuovi database.
Stiamo lavorando per ridurre gli sforzi di installazione e configurazione del nuovo plug-in su configurazioni molto semplici, dove non sono necessarie molte opzioni, compresi database come Microsoft SQL Server Express.
Conclusione
Il plug-in di monitoraggio MS SQL di nuova generazione rappresenta un passo avanti in termini di prestazioni, robustezza e flessibilità. Non solo consente di aggiungere molte altre funzioni, ma costituisce anche un trampolino di lancio per altri plug-in di monitoraggio dei database. Ora è più facile condividere i miglioramenti grazie a una base di codice più simile, che renderà più rapidi e semplici i progressi di tutti i plug-in. Per gli utenti di Checkmk si prospettano maggiori poteri di monitoraggio.