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. Prefazione
Il plug-in dell'agente mssql.vbs per il monitoraggio di Microsoft SQL Server descritto in questo articolo è stato sostituito
e sarà presto rimosso da Checkmk (vedi Werk #15844).
Se la configurazione di rete del tuo SQL Server consente l'accesso tramite TCP/IP, ti consigliamo di utilizzare il nuovo plug-in dell'agente mk-sql.
Spieghiamo come configurare e utilizzare il nuovo plug-in dell'agente nell'articolo Monitoraggio di Microsoft SQL Server.
2. Introduzione
Checkmk ti permette di effettuare il monitoraggio completo di Microsoft SQL Server. Un elenco completo delle opzioni di monitoraggio è disponibile nel nostro catalogo dei plugin per i controlli. Tra le altre cose, Checkmk può monitorare i seguenti valori:
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 viene descritta la configurazione per gli host Windows. Più avanti vedremo come configurarlo tramite agent bakery.
3. Configurazione del monitoraggio
3.1. Utilizzo dell'account LocalSystem
Se puoi usare l'account LocalSystem (NT AUTHORITY\SYSTEM) per il monitoraggio, tieni presente che questo account (login) richiede almeno i seguenti elementi di sicurezza (Securables):
Connect any database
View Server State
Connect SQL
A seconda di quali database della tua istanza vuoi monitorare e anche a seconda dei ruoli server e delle mappature che l'account LocalSystem possiede già, potrebbe essere necessario concedere il permesso a Connect any database.
3.2. Digressione: configurazione di un nuovo utente
Se è assolutamente necessario che l'account LocalSystem non venga utilizzato nella tua organizzazione, devi creare un utente di monitoraggio del database adeguato sulle istanze da monitorare. Il requisito di base in MSSQL è che l'Server authentication sia impostato su SQL Server and Windows Authentication mode. Se non puoi utilizzare l'account Windows LocalSystem, questo requisito dovrebbe essere già soddisfatto, ma è bene ricordarlo.
Ora accedi a MSSQL con un utente che disponga di permessi di accesso sufficienti in MSSQL e crea un nuovo utente del database tramite Microsoft SQL Server Management Studio:

Questo utente appena creato richiede il permesso sopra menzionato. 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 il permesso esplicito "Connect any database", che devi concedere.

In alternativa, puoi anche creare l'utente e i permessi tramite la riga di comando.
Nell'esempio seguente, questa operazione è stata eseguita per l'utente checkmk:
e poi:
Creazione di un file di configurazione
Sull'host Windows, crea un file nella directory specificata di seguito denominato mssql.ini:
Se stai eseguendo più istanze MSSQL con nomi utente e password diversi sull'host, crea semplicemente 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 Windows viene fornito di serie con un'ampia gamma di plug-in. Dopo aver installato l'agente, troverai quindi anche il plug-in per il monitoraggio di MSSQL sul tuo host. Per utilizzarlo, basta copiarlo nella directory corretta:
3.4. Configurazione 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:

4. Configurazione avanzata
4.1. Esecuzione asincrona del plug-in dell'agente
Il plug-in per il monitoraggio di MSSQL può, come tanti altri, 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 in modo asincrono su Windows, personalizza la configurazione dell'agente e aggiungi la seguente voce alla sezione execution in plugins:
4.2. Configurazione dei valori di threshold
Monitoraggio delle connessioni
Puoi specificare i tuoi valori di threshold per l'utilizzo del numero massimo di connessioni simultanee specificato da MSSQL, poiché questi dipendono molto più dalla struttura della tua istanza MSSQL rispetto ad altri servizi. Puoi impostare i valori di threshold appropriati in pochissimo tempo utilizzando una regola dal set di regole "MSSQL Connections".

Monitoraggio delle dimensioni dei file
Puoi anche definire valori di threshold per la dimensione dei singoli file in MSSQL. Per farlo, usa il set di regole "MSSQL datafile sizes".

5. Configurazione tramite agent bakery
Il Setup è stato notevolmente semplificato nelle edizioni commerciali grazie all'uso di Agent Bakery.
Questo semplifica notevolmente il processo di Setup, poiché si evitano errori di sintassi nei file di configurazione e si possono apportare facilmente modifiche per adattarsi a ambienti in evoluzione.
La differenza principale rispetto a un'installazione manuale è che devi lavorare sull'host MSSQL dalla riga di comando solo se vuoi effettuare configurazioni specifiche per MSSQL.
Per la configurazione iniziale, è sufficiente impostare l'utente del database sull'host MSSQL 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 "mssql" nel campo di ricerca:

Nella nuova regola nella sezione "Microsoft SQL Server (Windows)", seleziona idealmente l'opzione "System Authentication" per una connessione semplice e senza problemi.

Se invece opti per l'opzione "Database User Credentials", devi anche inserire 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 imprevisti o problemi durante la configurazione del monitoraggio, è consigliabile controllare direttamente sull'host interessato. Poiché il plug-in per il monitoraggio di MSSQL è uno script shell o Visual Basic, può essere facilmente eseguito senza l'agente. È sufficiente indicare in anticipo allo script shell o alla riga di comando la 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.
Nota: anche in questo caso, la variabile d'ambiente non viene impostata in modo permanente, ma è valida solo finché questa riga di comando rimane aperta.
Durante l'effettiva esecuzione del plug-in, si consiglia di reindirizzare l'output alla riga di comando.
Windows fornisce lo strumento cscript a questo scopo.
6.1. Possibili errori e messaggi di errore
Impossibile effettuare la connessione al database
Ci sono tre diversi driver con cui Checkmk tenta in alternativa di effettuare una connessione al database MSSQL: msoledbsql , sqloledb e sqlncli11.
Di default, tutti e tre i driver sono solitamente disponibili e vengono testati uno dopo l'altro durante la creazione della connessione. In alcune circostanze, questa elaborazione in successione può portare a messaggi di errore. Potresti quindi dover rimuovere uno o anche due dei driver citati dalla sintassi della chiamata.
mssql.vbs: "nessun backup trovato"
Se un plug-in segnala "nessun backup trovato", dovresti prima verificare manualmente se è disponibile un backup. Se esiste un backup e il problema persiste, ciò 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 dell'serverproperty('collation')e sul lato MSSQL.
Se, ad esempio, qui è impostato SQL_Latin1_General_CP1_CS_AS, allora CS sta per "Case Sensitive".
Il plug-in non può quindi convertire il nome host e potrebbero verificarsi problemi dovuti all'ortografia.
Passare a SQL_Latin1_General_CP1_CI_AS, ovvero a CI per "Case Insensitive", dovrebbe risolvere questo problema.
In alternativa, potresti anche modificare l'ortografia del nome originale del server MSSQL. Questo però non è semplicemente possibile in ogni azienda e per ogni ambiente.
7. File e directory
7.1. Sull'host MSSQL
| Percorso del file | Contenuto |
|---|---|
|
Directory dei plug-in |
|
Directory di configurazione |
7.2. Sul server Checkmk
| Percorso del file | Contenuto |
|---|---|
|
Il plug-in che recupera i dati dall'host MSSQL. |
