![]() |
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. Premessa
Il vecchio plugin (mssql.vbs
) per il monitoraggio di Microsoft SQL Server è stato sostituito. Se la configurazione di rete di SQL Server consente l'accesso tramite TCP/IP, ti consigliamo di utilizzare il nuovo plugin.
Ti spieghiamo come configurare e utilizzare il nuovo plugin nell'articolo Monitorare Microsoft SQL Server
mssql.vbs
sarà rimosso con la versione 2.4.0 di Checkmk (vedi lavoro #15844).
2. Introduzione
Checkmk ti permette di monitorare in modo completo il server Microsoft SQL. Un elenco completo delle opzioni di monitoraggio è disponibile nel nostro Catalogo dei plug-in di controllo. Tra le altre cose, Checkmk può monitorare i seguenti valori:
Per poter monitorare i database, oltre all'agente Checkmk è necessario solo il plug-in dell'agente sul server database. Non è necessario alcun software aggiuntivo né sul Checkmk né sul server database.
L'impostazione per gli host Windows è descritta di seguito, mentre più avanti ci occuperemo dell'impostazione tramite l'agent bakery.
3. Impostazione del monitoraggio
3.1. Utilizzare l'utente di sistema
Se vuoi utilizzare l'utente di sistema (NT AUTHORITY\SYSTEM
) per il monitoraggio, sappi che questo login richiede almeno le seguenti autorizzazioni Securables:
Connect any database
View Server State
Connect SQL
A seconda dei database della tua istanza che vuoi monitorare e a seconda dei ruoli e delle mappature del server che l'utente di sistema (NT AUTHORITY\SYSTEM
) già possiede, potrebbe essere necessario concedere l'autorizzazione anche per Connect Any Database.
3.2. Digressione: Impostazione di un nuovo utente
Se è assolutamente necessario che l'utente di sistema non venga utilizzato nella tua organizzazione, devi creare un utente di monitoraggio del database adatto alle istanze da monitorare. Il requisito di base in MSSQL è che Server authentication sia impostato su SQL Server and Windows Authentication mode. Se non puoi utilizzare l'utente di sistema di Windows, questo requisito dovrebbe essere già stato soddisfatto, ma non va dimenticato.
Ora logga a MSSQL con un utente con sufficienti autorizzazioni di accesso a MSSQL e crea un nuovo utente del database tramite Microsoft SQL Server Management Studio:

Questo utente appena creato richiede la suddetta autorizzazione. Vai su Object Explorer, apri Security > Logins e poi le proprietà del login che hai configurato per il plug-in dell'agente. Sotto Securables troverai l'autorizzazione esplicita Connect any database, che dovrai concedere.

In alternativa, puoi anche creare l'utente e le autorizzazioni tramite la linea di comando. Nell'esempio seguente, questo è stato fatto per l'utente checkmk
:
mssql> USE master;
CREATE USER checkmk WITH PASSWORD = 'MyPassword123';
GO
e poi:
mssql> USE master;
GRANT CONNECT ANY DATABASE TO checkmk;
GO
Creare un file di configurazione
Sull'host Windows, crea un file nella directory specificata di seguito con il nome mssql.ini
:
[client]
user=checkmk
password=MyPassword123
Se sull'host sono in esecuzione più istanze MSSQL con nomi utente e password diversi, è sufficiente creare un file ini
per ogni istanza secondo lo schema di denominazione mssql_instance-ID.ini
.
3.3. Installazione del plug-in dell'agente
L'agente per Windows viene fornito di serie con una serie di plug-in. Dopo l'installazione dell'agente troverai quindi anche il plug-in per il monitoraggio di MSSQL sul tuo host. Per utilizzarlo, basta copiarlo nella directory corretta:
PS> copy "c:\Program Files (x86)\checkmk\service\plugins\mssql.vbs" c:\ProgramData\checkmk\agent\plugins\
3.4. Configurazione dei servizi
Ora che hai installato e configurato il plug-in, puoi eseguire una scoperta del servizio per questo host. La seguente schermata mostra solo una selezione dei servizi che possono essere trovati:

4. Configurazione estesa
4.1. Esecuzione asincrona del plug-in dell'agente
Il plug-in per il monitoraggio di MSSQL, come molti altri, può essere eseguito in modo asincrono, ad esempio per tenere conto dei tempi di esecuzione più lunghi delle istanze MSSQL di grandi dimensioni.
Per eseguire il plug-in dell'agente in modo asincrono in Windows, personalizza la configurazione dell'agente e aggiungi la seguente voce alla sezione execution
sotto plugins
con la seguente voce:
plugins:
execution:
- pattern: mssql.vbs
cache_age: 300
async: yes
Istruzioni dettagliate sull'esecuzione asincrona dei plug-in dell'agente su un host Windows sono disponibili nell'articolo sull'agente Windows.
4.2. Configurazione dei valori di soglia
Monitoraggio delle connessioni
Puoi specificare i tuoi valori di soglia per l'utilizzo del numero massimo di connessioni simultanee specificate da MSSQL, in quanto questi dipendono molto di più dalla struttura della tua istanza MSSQL rispetto ad altri servizi. Puoi impostare i valori di soglia appropriati in pochissimo tempo utilizzando una regola del set di regole MSSQL Connections.

Monitoraggio delle dimensioni dei file
Puoi anche definire dei valori soglia per le dimensioni dei singoli file in MSSQL. Per farlo, utilizza il set di regole MSSQL datafile sizes.

5. Configurazione con l'Agent bakery
L'installazione è stata notevolmente semplificata nelle edizioni commerciali grazie all'uso dell'Agent bakery. Questo semplifica notevolmente il processo di installazione, in quanto si evitano gli errori di sintassi nei file di configurazione e si possono facilmente apportare adattamenti agli ambienti di configurazione. La differenza principale rispetto a un'installazione manuale è che devi lavorare sull'host MSSQL solo alla linea di comando se vuoi effettuare configurazioni speciali specifiche per MSSQL.
Per la configurazione iniziale, è sufficiente impostare lo user agent del database sull'host MSSQL e creare una regola corrispondente nell'agent bakery. Puoi trovare il set di regole sotto Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules. Puoi quindi cercare mssql
nel campo di ricerca:

Nella nuova regola della sezione Microsoft SQL Server (Windows), è preferibile selezionare l'opzione System Authentication per una connessione semplice e senza problemi.

Se invece scegli l'opzione Database User Credentials, dovrai inserire anche User ID e Password per l'utente del database desiderato (ad esempio, l'utente che hai creato in precedenza).
6. Opzioni di diagnostica
Se, ad esempio, si verificano comportamenti o problemi inaspettati durante l'impostazione del monitoraggio, è consigliabile effettuare un controllo direttamente su un host interessato. Poiché il plug-in per il monitoraggio di MSSQL è una shell o uno script in Visual Basic, può essere facilmente eseguito senza l'agente di monitoraggio. È sufficiente che la shell o la riga di comando siano preventivamente informate della directory di configurazione pertinente.
Per poter eseguire il plug-in manualmente, apri prima una riga di comando con diritti di amministratore e imposta la variabile d'ambiente MK_CONFDIR
in questa riga di comando. Questo è necessario affinché il plug-in possa trovare i file di configurazione.
PS> set MK_CONFDIR=c:\ProgramData\checkmk\agent\config
Nota: anche in questo caso, la variabile d'ambiente non è impostata in modo permanente, ma è valida solo finché la linea di comando è aperta.
Durante l'esecuzione vera e propria del plug-in, si consiglia di reindirizzare l'output alla linea di comando. Windows mette a disposizione lo strumento cscript
per questo scopo.
PS> cscript c:\ProgramData\checkmk\agent\plugins\mssql.vbs
6.1. Possibili errori e messaggi di errore
Impossibile connettersi al database
Esistono tre diversi driver con il cui aiuto Checkmk tenta alternativamente di connettersi al database MSSQL: msoledbsql
, sqloledb
e sqlncli11
.
Per impostazione predefinita, tutti e tre i driver sono solitamente disponibili e vengono testati uno dopo l'altro quando si stabilisce una connessione. In alcune circostanze, questo processo successivo può portare a messaggi di errore. Potresti quindi dover rimuovere uno o addirittura due dei driver nominati dalla sintassi della chiamata.
mssql.vbs: "nessun backup trovato"
Se un plug-in di controllo segnala "nessun backup trovato", devi prima verificare manualmente se è disponibile un backup. Se esiste un backup e il problema persiste, potrebbe essere dovuto alle convenzioni di denominazione sul lato MSSQL.
Checkmk interpreta sempre i nomi host in lettere minuscole, ma se questi vengono trasmessi dall'host in lettere maiuscole durante i backup, ad esempio, si verificheranno problemi di comunicazione.
Puoi quindi controllare il valore di serverproperty('collation')
sul lato MSSQL. Se, ad esempio, SQL_Latin1_General_CP1_CS_AS
è impostato qui, allora CS
sta per "Case Sensitive". Il plug-in non può quindi convertire il nome host e potrebbero verificarsi dei problemi a causa dell'ortografia. Cambiando SQL_Latin1_General_CP1_CI_AS
, cioè CI
per "Case Insensitive", il problema dovrebbe essere risolto.
In alternativa, potresti anche cambiare l'ortografia del nome originale del server MSSQL, ma questo non è possibile in tutte le aziende e in tutti gli ambienti.
7. File e directory
7.1. Sull'host MSSQL
Percorso dei file | Contenuto |
---|---|
|
Directory dei plug-in |
|
Directory di configurazione |
7.2. Nel server Checkmk
Percorso dei file | Contenuto |
---|---|
|
Il plug-in che recupera i dati dall'host MSSQL. |