Il monitoraggio dei database è importante per garantire che le applicazioni funzionino in modo sicuro e ottimale. Oracle Database (o Oracle in breve) è uno dei principali fornitori al mondo di sistemi di gestione di database (DBMS) per database relazionali. Il monitoraggio di Oracle SQL è quindi uno dei compiti principali di molti team IT.
In questo tutorial mostrerò come sia possibile implementare Checkmk per il monitoraggio dei database Oracle con pochi minuti di lavoro. Eseguirò con te tutti i passaggi necessari utilizzando un ambiente di esempio. Non è necessaria alcuna esperienza precedente con il monitoraggio di Oracle, poiché Checkmk si occupa della raccolta dei servizi di monitoraggio più importanti e imposta anche i valori di soglia per gli avvisi e gli stati critici.
Se invece cerchi informazioni generali sul monitoraggio dei database, senza fare riferimento a Checkmk, ti consiglio questo articolo sul monitoraggio di SQL server. Puoi trovare anche un articolo generale sul monitoraggio dei server qui.
Requisiti generali per gli strumenti di monitoraggio Oracle
Molti utenti monitorano Oracle e altri database con Checkmk perché combina scalabilità e flessibilità con una facile configurazione. Checkmk è dotato di 27 controlli di monitoraggio per Oracle ed è quindi in grado di raccogliere automaticamente un'ampia gamma di dati di monitoraggio. Inoltre, gli utenti esperti possono creare e integrare le proprie query SQL (Custom SQL). Una panoramica e ulteriori dettagli sui plug-in per Oracle sono disponibili nel catalogo dei plug-in di controllo.
Checkmk supporta anche il monitoraggio di tutti i sistemi operativi più comuni (Linux, AIX, Solaris, HP-UX e Windows). Gli agenti di Checkmk includono automaticamente tutti i servizi importanti per garantire prestazioni ottimali del sistema operativo dei server.
Oltre al monitoraggio delle prestazioni delle applicazioni Oracle, Checkmk supporta il monitoraggio dei server hardware e dei provider cloud come AWS o Microsoft Azure. Allo stesso modo è possibile monitorare anche piattaforme di virtualizzazione come VMware o Proxmox. Checkmk supporta inoltre il monitoraggio dei database nell'infrastruttura Oracle Cloud (OCI). Questo approccio olistico è importante perché i problemi con l'hardware e i server cloud, così come le piattaforme di virtualizzazione, possono portare a problemi con il database e quindi anche questi dovrebbero essere inclusi nel monitoraggio.
In questa esercitazione, quindi, non mi limiterò al monitoraggio del database Oracle, ma ti mostrerò anche come monitorare il sistema operativo e l'hardware del server. Grazie alle specifiche pratiche e predefinite per i valori di soglia e alle numerose funzioni di automazione, la configurazione di Checkmk richiede solo pochi minuti.
Prerequisiti per il monitoraggio di Oracle con Checkmk
È necessario un sito Checkmk con il quale è possibile interrogare i dati di monitoraggio delle istanze Oracle. Se non hai ancora un ambiente Checkmk in funzione, puoi iniziare subito con la versione di prova di Checkmk. Segui questo video tutorial e il tuo sito Checkmk sarà pronto in pochi minuti.
Naturalmente, è necessario anche un database Oracle da monitorare. Per questo database, è necessario anche avere i diritti per creare nuovi account utente del database. Nel mio caso, il mio database Oracle versione 19.0 viene eseguito su un server hardware e utilizzo Rocky Linux versione 8.0 come sistema operativo.
Monitoro anche un'altra istanza Oracle in cui non ho accesso all'hardware e al sistema operativo. È il caso, ad esempio, di servizi come Oracle Database Service for Azure. In questa esercitazione sul monitoraggio Oracle, si utilizza Agent Bakery di Checkmk per configurare il plug-in di monitoraggio Oracle. In questo modo si evitano errori di sintassi e si risparmia tempo. L'Agent Bakery è una funzionalità della Checkmk Enterprise Edition ed è quindi inclusa nella versione di prova di Checkmk. Se invece si utilizza la Checkmk Raw Edition, è necessario configurare il plug-in tramite la riga di comando. Per farlo, seguire le istruzioni contenute nell'articolo sul monitoraggio dei database Oracle nella documentazione di Checkmk.
Passo 1: Configurazione degli account di accesso per il monitoraggio di Oracle
Affinché Checkmk possa recuperare i dati da Oracle, è necessario creare un account utente con diritti di lettura per ogni database da monitorare. Se si utilizza un Real Application Cluster (RAC), è sufficiente creare l'account utente una sola volta. Tuttavia, in seguito sarà necessario installare e configurare l'agente Checkmk, compreso il plug-in dell'agente, su ogni nodo del cluster Oracle.
La procedura varia a seconda dell'ambiente Oracle utilizzato. Tuttavia, è possibile leggere ulteriori dettagli in merito nella documentazione Oracle. Per il mio sito Oracle sul mio server locale, ad esempio, mi collego alla riga di comando con SQL Plus
, naturalmente è possibile utilizzare anche un altro strumento.
Nel mio esempio, passo all'utente Oracle e accedo come sysdba. Un'autorizzazione di alto livello non è indispensabile, ma è necessario un account con diritti sufficienti per la creazione di un nuovo account utente.
su - oracle
sqlplus / as sysdba
A questo punto si crea l'account utente per Checkmk. Nel mio caso, l'ho chiamato "monitoring".
create user monitoring identified by myPassword
Dopo aver creato l'account utente, assegnagli i diritti di accesso e di avvio di una sessione.
grant select_catalog_role to monitoring
grant create session to monitoring
Ora è possibile testare la connessione con connect
.
connect monitoring/myPassword
Nel mio caso, l'accesso è avvenuto con successo. Qui 'myPassword' è solo un segnaposto. Si consiglia di utilizzare sempre una password forte, di lunghezza sufficiente e composta da lettere maiuscole e minuscole, numeri e caratteri speciali.

Il monitoraggio necessita di un account per ogni database Oracle, quindi crea un account utente per ogni sito di database. In questo esempio, ripeto la procedura per l'altro sito Oracle. Consiglio di utilizzare sempre gli stessi dati di accesso per ogni database. In questo modo sarà più facile configurare la regola di monitoraggio Oracle in un secondo momento in Checkmk.
Passo 2: Configurazione delle regole di monitoraggio Oracle in Checkmk
Passare ora al sito di Checkmk per preparare il plug-in dell'agente Oracle, che verrà poi installato sul server Oracle. A tal fine, utilizzare la regola agente "Database Oracle".
- Cercare "database oracle" in Setup. Fare clic su "Database ORACLE (Linux, Solaris, AIX, Windows)".
- Fare clic su Add rule.
A questo punto verranno visualizzate molte opzioni di impostazione. Poiché Checkmk dispone già di buone impostazioni predefinite, sarà necessario attivare solo alcune delle opzioni.
- È possibile saltare le Rule Properties, poiché non è necessario apportare alcuna modifica. Queste opzioni servono principalmente per aggiungere informazioni aggiuntive per questa regola specifica.
- La configurazione viene eseguita su database ORACLE (Linux, Solaris, AIX, Windows):
- Selezionare la casella di controllo per l'Activation e lasciare l'impostazione predefinita "Deploy ORACLE database plugin".
- Sui sistemi Linux, Checkmk presuppone per impostazione predefinita che il server Oracle utilizzi
xinetd
come demone super server. È necessario modificare l'opzione Host uses xinetd or systemd (Linux/AIX/Solaris only) se il server host del database è impostato susystemd
, come nel mio caso. L'interval può essere lasciato a un minuto. - Attivare le Login defaults. Verrà visualizzata una serie di opzioni di accesso.
- Attivare il Authentication method per accedere con un normale account utente. Mantenere l'impostazione predefinita "Login with the following credentials".
- Aggiungete l'account utente, nel mio caso "monitoring", a User, seguito dalla password corrispondente a Password.
Nella maggior parte dei casi, non sono necessarie altre configurazioni per l'accesso. Nel mio esempio, la regola è la seguente.
In Conditions non è necessario modificare altre impostazioni, poiché le regole dell'agente si applicano alla configurazione del pacchetto agente e non agli host di monitoraggio.
- Salvare la regola con Save.
In questo modo, la regola dell'agente è stata configurata. Checkmk viene fornito con pratiche impostazioni predefinite. Nella fase successiva, si procederà alla creazione e all'installazione dell'agente. Tuttavia, nella prossima parte, vorrei spiegare le altre funzioni della regola di monitoraggio Oracle. Se necessario, è possibile personalizzare il monitoraggio di Oracle, ma in questo tutorial non sono necessarie queste opzioni. Se non si necessita di alcuna personalizzazione, si può procedere direttamente al confezionamento degli agenti.
Opzioni di configurazione per l'accesso ai database Oracle
I primi sette punti di configurazione per i database ORACLE (Linux, Solaris, AIX, Windows) riguardano l'accesso di Checkmk al database.
La voce più importante è Login defaults, in quanto qui si decide come Checkmk accede al database Oracle da monitorare. In Authentication method, è possibile utilizzare un portafoglio Oracle per accedere in alternativa a un account utente. Per maggiori dettagli sull'utilizzo di un portafoglio Oracle, consultare la documentazione di Oracle o la documentazione di Checkmk.
Per impostazione predefinita, Checkmk utilizza un normale account utente per recuperare i dati dal database Oracle. Con login as role è possibile personalizzare questo aspetto e definire Checkmk come sysdba, sysdg o sysoper come ruolo.
L'opzione Hostname or IPv4 address for listener definisce l'indirizzo dell'istanza Oracle. Per impostazione predefinita, l'agente ascolta su localhost, ma è possibile modificarlo se necessario. Se si è modificata la porta predefinita di Oracle, è necessario modificarla anche in TCP port for listener.
Se si desidera utilizzare un alias Transparent Network Substrate (TNS) per l'accesso a Oracle, è necessario memorizzarlo in TNS Alias (Linux/AIX/Solaris only) in Checkmk.
Se si desidera personalizzare i dati di login per un SID specifico, è possibile utilizzare l'opzione Login for selected database. Poi si possono aggiungere qui i singoli SID.
Se si desidera monitorare l'Automatic Storage Management (ASM) di Oracle, è necessario creare un account utente separato per Checkmk. Questo account deve essere memorizzato in Login for ASM Instances to monitor, altrimenti Checkmk non può raccogliere i dati di monitoraggio da ASM.
Se si desidera escludere alcuni SID dal monitoraggio, si troverà una serie di opzioni in Instances to monitor. Ciò può essere utile, ad esempio, per i sistemi di prova degli sviluppatori.
Opzioni di configurazione per il monitoraggio di Oracle
Le altre opzioni per i database ORACLE (Linux, Solaris, AIX, Windows) ruotano attorno ai contenuti del monitoraggio. Con Sections - data to collect si decide cosa Checkmk deve monitorare per te. È possibile rimuovere o modificare le singole sezioni, ma di solito non è necessario. Checkmk monitora tutte le metriche per impostazione predefinita, solo le TS Quotas (not used) sono disattivate per impostazione predefinita.
Il team di sviluppatori di Checkmk ha anche ottimizzato la cache del plug-in e modificato l'impostazione predefinita in modo da ottenere i migliori risultati per la maggior parte delle applicazioni. Nelle aree in cui il funzionamento asincrono ha senso, questo è stato preimpostato. Con le opzioni Exclude some sections on certain instances, Cache age for background checks e Sqlnet Send timeout, è possibile configurare ulteriormente la cache. I dettagli sul plug-in Oracle sono disponibili in questo manuale. È ovviamente possibile personalizzare le configurazioni del plug-in in base alle proprie esigenze tramite la regola di monitoraggio.
L'opzione Remote istances (Linux/AIX/Solaris only) è importante per il monitoraggio di database remoti, ad esempio nell'infrastruttura Oracle Cloud.
L'opzione ORACLE_HOME to use for remote access (Linux/AIX/Solaris only) è necessaria per modificare la variabile d'ambiente 'ORACLE_HOME' per l'accesso al database remoto.
Checkmk presuppone che i file di configurazione 'sqlnet.ora' e 'tnsnames.ora' siano memorizzati in /etc/check_mk. Con TNS_ADMIN to use for sqlnet.ora and tnsnames.ora (Linux/AIX/Solaris only) è possibile personalizzare il percorso del file TNS-ADMIN.
Fase 3: creazione di pacchetti agente per i server Oracle
Una volta configurata la regola dell'agente, creare il pacchetto dell'agente è facile. Passare alla Agent Bakery e creare l'agente.
- Andare a Setup -> Windows, Linux, Solaris, AIX.
- Il pulsante con il simbolo della fiamma e la didascalia "Bake agents" dovrebbe essere di colore arancione e quindi pronto per essere baked. Fare clic su di esso.

Attendere brevemente che venga visualizzato l'agente. Quindi, fate clic sull'agente che corrisponde al sistema operativo del vostro server di database. Per me, si tratta del pacchetto RPM.

Se si utilizzano database Oracle su più server con dati di accesso diversi, è necessario configurare più volte la regola del database Oracle e creare più agenti. Se si cambia il server Oracle da un sistema operativo con xinetd
a uno con systemd
, di solito è necessario modificare l'opzione corrispondente e creare un nuovo agente.
Altrimenti, è sufficiente creare un agente per una serie di database che utilizzano sistemi operativi diversi se si utilizzano gli stessi dati di accesso e gli stessi parametri di monitoraggio per tutti i database Oracle.
Installazione dell'agente sul server di database
Ora, installa gli agenti Checkmk sui tuoi server di database. I passi precisi per farlo dipendono dal tuo ambiente di database. Nel mio esempio, ho scaricato il pacchetto sul mio server Oracle e l'ho installato tramite terminale utilizzando dnf
:
sudo dnf install check-mk-agent-2.1.0p14-0b8ad87002c9f414.noarch.rpm
Red Hat consiglia di usare dnf
, a seconda della versione di RHEL in uso, e si può anche usare yum
per installare l'agente Checkmk.
Dopo l'installazione, si consiglia di attivare la crittografia TLS. Per farlo, è necessario registrare l'agente. I passaggi per farlo si trovano nel capitolo sull'agente Linux o sull'agente Windows della documentazione di Checkmk.
Passo 4: Monitoraggio dei server Oracle con Checkmk
Se l'agente viene eseguito insieme al plug-in Oracle sul server Oracle, è possibile includerlo nel monitoraggio. Si consiglia di utilizzare una struttura a cartelle in Checkmk, in quanto ciò semplifica l'amministrazione degli host nel monitoraggio. Per questo motivo, occorre innanzitutto creare una cartella per i database Oracle.
- Andare a Setup -> all hostfare clic su Add folder e inserire un nome a scelta in Title. Io ho chiamato la cartella 'oracle'.
- Fare clic su Save.
- Aprire quindi la cartella facendo clic su di essa.
- Fare clic su Add host per creare un host in questa cartella.
- In Hostname, inserisci il nome del tuo server Oracle. In questa esercitazione, il mio server Oracle si chiama 'oracle-sr1-01.lan.domain.net'.
- Se il nome host non è risolvibile tramite DNS, è necessario attivare l'opzione IPv4 address e inserire l'indirizzo IP del server. Per me non è necessario.
- Fare clic su Save & go to service configuration.

Raccomando l'uso di nomi DNS completamente qualificati (FQDN) come standard per i nomi di host nell'intera infrastruttura. Questo tutorial per un naming concept coerente ti aiuterà nell'implementazione.
- Attendere il rilevamento automatico dei servizi e accettare tutti i servizi di monitoraggio rilevati con Accept all.
- Per visualizzare il server del database come host, attivare le modifiche in Checkmk. Fare clic sull'icona gialla con il punto esclamativo nell'angolo in alto a destra. Dovrebbe essere visualizzato il numero di "modifiche".
- Fare clic su Activate on selected sites.
- Il primo database Oracle è ora nel monitoraggio. È possibile trovare l'host in Monitor -> All hosts.
Nel mio esempio specifico, Checkmk ha rilevato numerosi servizi. Grazie alle soglie predefinite, Checkmk mi avverte anche che la memoria principale potrebbe essere sovrautilizzata (136% impegnato) e che questo database utilizza una percentuale elevata della memoria principale condivisa (44,76%). In questo caso, tuttavia, si tratta di un dato accettabile, dato che per il mio sistema di test utilizzo solo una quantità piuttosto ridotta di memoria di lavoro.
Passo 5: Monitoraggio dell'hardware tramite IPMI
Ora le prestazioni dell'applicazione Oracle e il sistema operativo sono monitorati. Se si utilizza un server hardware con scheda di gestione, è necessario includere anche questo come host separato nel monitoraggio. In teoria si potrebbero anche aggiungere i servizi hardware all'host già esistente, ma questo ha un effetto negativo sulle prestazioni a lungo termine, quindi lo sconsiglio.
L'aggiunta dei servizi è facile perché Checkmk li riconosce automaticamente. In questo caso utilizzo IPMI per trasferire i dati di monitoraggio.
- Andare a Setup -> All hosts e riaprire la cartella Oracle.
- Fare clic su Add host.
- In Hostname, inserire un nome per la scheda di gestione. Io l'ho chiamato 'oracle-iLO-sr1-01.lan.domain.net'.
- Fare clic su Save & go to folder.
Se il nome host della scheda di gestione del server non è risolvibile tramite DNS, è necessario inserire manualmente un indirizzo IP in IPv4 address.

- Ora cerca IPMI in Setup e selezionate 'IPMI sensors via Freeipmi or IPMItool'.
- Fai clic su "Add rule".
- Seleziona lo strumento IPMI di tua scelta in IPMI Sensors via Freeipmi or IPMItool. Io uso "Use IPMItool".
- Aggiungere i dati di accesso IPMI a Username e Password. Per me sono 'monitoring' e 'mypassword'.
- In Privilege level selezionare 'USER'.
- Una volta terminata la configurazione, fare clic su Save.
- In Conditions, attivare l'opzione Explicit hosts e applicare questa regola all'host della scheda di gestione. In questo caso ho utilizzato 'oracle-iLO-sr1-01.lan.domain.net'.

- Andare a Setup -> Host. A questo punto dovrebbero essere visualizzati gli host dei database e il server hardware.
- In corrispondenza dell'host della scheda di gestione, fare clic sull'icona gialla per il rilevamento automatico del server, la terza icona a destra.
- Se accetti ancora una volta le 'modifiche' con Activate on selected sites, avrai aggiunto la Management Board al monitoraggio.
Ad esempio, ecco la vista host del mio host per l'hardware del server:
Fase 6: Monitoraggio dei database Oracle remoti
Soprattutto per i database Oracle nel cloud, l'installazione di agenti di monitoraggio è fuori questione. Checkmk è tuttavia in grado di accedere a tali database da remoto e di recuperare i dati di monitoraggio. Checkmk trasferisce quindi queste informazioni al monitoraggio tramite un host piggyback.
L'ubicazione fisica del sito remoto di Oracle è irrilevante, ma deve essere accessibile via IP per l'host piggyback. Sull'host piggyback deve essere possibile installare l'agente Checkmk, compresi i file di configurazione Oracle, e deve essere installato anche il client Oracle. Naturalmente, l'host piggyback deve essere accessibile dal sito Checkmk.
In questo caso, utilizzo il mio server Oracle locale 'oracle-sr1-01.lan.domain.net' come host piggyback per monitorare il mio database Oracle remoto 'DemoDB'. Questo è uno scenario tipico degli ambienti di database ibridi; inoltre, un server Oracle di solito include già tutti i requisiti per un host piggyback.
Tuttavia, è possibile memorizzare il file di configurazione Oracle con i dati di accesso al database Oracle remoto su qualsiasi server locale, purché soddisfi i requisiti per il monitoraggio dei database Oracle remoti.
Creazione di host di monitoraggio per database Oracle remoti
Per prima cosa è necessario creare l'host per il database remoto nel monitoraggio. In questo tutorial lo faccio manualmente, poiché ho un solo host. Tuttavia, se hai un numero maggiore di database remoti, ti consiglio di utilizzare la Configurazione dinamica degli host per creare automaticamente gli host in base ai dati di piggyback.
- Andare di nuovo a Setup -> All hosts e aprire la cartella Oracle.
- Fare clic su Add host.
- Come name dell'host si deve utilizzare il SID del database remoto, che nel mio caso è 'DemoDB'. Checkmk non può assegnare i dati se questo nome non è corretto. In Network address, attivare l'opzione IP address family e selezionare 'No IP'.
- In Monitoring agents fare clic su "show more" e modificare due opzioni:
- Attivare l'opzione Checkmk agent / API integrations e selezionare "No API integration, No agent". In Piggyback, selezionare l'opzione "Always use and expect piggyback data".
- Fare clic su Save & go to folder.

Configurazione di un pacchetto agente per il monitoraggio di database Oracle remoti
Creare un nuovo pacchetto agente e utilizzare ancora una volta la regola agente Oracle:
- In Setup, cercare nuovamente "oracle database" e aprire "ORACLE databases (Linux, Solaris, AIX, Windows)".
- Fare clic su Add rules per creare una nuova regola. Non modificare la regola esistente per il server Oracle locale.
- La configurazione è diversa da quella precedente:
- Attivare Activation and Login Defaults.
- Per le Login default, inserire le informazioni relative al database remoto:
- Nel mio caso, il authentication method è di nuovo un normale account utente. Mantieni l'impostazione predefinita "Login with the following credentials".
- Aggiungi l'account utente per il tuo database remoto in User, qui ho anche chiamato l'account di accesso 'monitoring', seguito dalla password corrispondente in Password.

- Scorrere verso il basso e attivare l'opzione Remote instances (Linux/AIX/Solaris only).
- Fare clic su "Add remote instance".
- Con l'Unique ID si assicura che la configurazione della connessione a questo database esterno sia unica e che non ci siano duplicati. Nel mio caso, ho selezionato "Usa il SID remoto".
- In Monitoring host this database should be mapped to, selezionare l'host a cui Checkmk deve assegnare i dati di piggyback. Per me, questo host si chiama 'DemoDB'.
- In ORACLE SID of the remote database, inserire il SID del database da monitorare. Nel mio caso, anche questo si chiama 'DemoDB'.
- In DNS Hostname or IP-address of the database server, devi inserire l'indirizzo IP o il nome DNS del server di database attraverso il quale è possibile accedere all'istanza Oracle remota, in questo caso '10.200.6.6'.
- Alla voce ORACLE release of the remote database, seleziona la vostra versione di Oracle. Per la versione 12.1 e successive, selezionare "12.1". Nel mio caso, faccio esattamente così, poiché utilizzo la versione 19.0.
- Memorizzare la regola con Save.
Creazione e installazione di agenti Oracle
- Preparare l'agente come prima con la Agent Bakery. A tal fine, fare nuovamente clic su "Bake agents" in Setup -> Agents -> Windows, Linux, Solaris, AIX.
- Scaricare il pacchetto agente e installarlo sull'host piggyback precedentemente definito nella regola Oracle. Per me, si tratta del server Oracle "oracle-sr1-01.lan.domain.net".
Includi i servizi con il rilevamento automatico dei servizi
Dopo aver installato l'agente, è sufficiente aggiungere i nuovi servizi:
- Andare a Setup -> Host.
- Fare clic sull'icona gialla per il rilevamento automatico del server per l'host del database remoto, che nel mio esempio si chiama "DemoDB".
- Attendere nuovamente il rilevamento automatico del servizio. Checkmk ora rileverà i dati piggyback disponibili, ma non si aspetta alcuna informazione tramite API o dall'agente Checkmk.
- Accettare tutti i servizi di monitoraggio rilevati con Accept all.
- Accettare le 'modifiche' con Activate on selected sites. A questo punto il primo database remoto è stato incluso nel monitoraggio.
Questo ci porta alla fine di questo tutorial e ora conosci le basi del monitoraggio dei database Oracle con Checkmk.
Conclusione
Il monitoraggio dei database in generale è una sfida importante e sono molti i punti da considerare. Checkmk semplifica il monitoraggio fino ai passaggi essenziali, e allo stesso tempo è possibile eseguire facilmente modifiche. Inoltre, Checkmk non limita le prestazioni delle applicazioni Oracle.
Sulla base di questo tutorial, sarai in grado di assemblare un sistema di monitoraggio Oracle completo. Checkmk è estremamente scalabile e, grazie alle sue previsioni, fornisce anche un modo per pianificare con precisione le risorse e le esigenze future. Un esempio pratico delle sue capacità è il monitoraggio dei database di Swisscom AG. Questo sistema monitora enormi database con fino a 30.000 servizi per host e crea previsioni per le risorse hardware delle principali società finanziarie.