Checkmk
to checkmk.com
Important

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:

Selecting the 'New Login...' option in MSSQL.

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.

Grant permission 'Connect any database'.

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:

C:\ProgramData\checkmk\agent\config\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:

Excerpt from the service discovery results.

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:

C:\ProgramData\checkmk\agent\check_mk.user.yml
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.

Setting the upper thresholds for active 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.

Setting the file sizes used.

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:

The rule 'Microsoft SQL Server' in the agent rules.

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

Possible settings for the MSSQL Server in the Agent Bakery.

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

C:\ProgramData\checkmk\agent\plugins\

Directory dei plug-in

C:\ProgramData\checkmk\agent\config\

Directory di configurazione

7.2. Nel server Checkmk

Percorso dei file Contenuto

~/share/check_mk/agents/plugins/mssql

Il plug-in che recupera i dati dall'host MSSQL.

In questa pagina