Ep. 49: Monitoraggio di un database Oracle con Checkmk
[0:00:00] | Benvenuti nel canale Checkmk. Oggi vi parlerò del monitoraggio di un database Oracle con Checkmk. |
[0:00:15] | In questo tutorial vi mostrerò come impostare il monitoraggio di Oracle con Agent Bakery e daremo anche un'occhiata alla riga di comando, dove vi mostrerò come eseguire manualmente il plugin dell'agente, darò un'occhiata alle diverse opzioni della riga di comando che offre e anche al file di configurazione. Quindi, senza ulteriori indugi, iniziamo. |
[0:00:32] | Come primo passo creeremo un utente nel database Oracle che verrà utilizzato per il monitoraggio. Per creare questo utente possiamo andare direttamente alla documentazione Oracle dove possiamo trovare queste informazioni nel capitolo numero due e qui abbiamo "Create a user". |
[0:00:57] | Per questa dimostrazione sto utilizzando un database multi-tenant e per creare un utente per questo motivo guarderò qui sotto database multi-tenant. |
[0:01:07] |
Qui ci sono alcuni comandi che devo eseguire contro il mio database Oracle, quindi copiamo questi comandi. E ora andiamo al database Oracle e copiamo questo comando sostituendolo con una password, che manterrò segreta. |
[0:01:33] | E poi copiamo gli altri comandi che dicono "altera utente c##checkmk set container_data=all". Poi eseguiamo alcune istruzioni Grant che assegneranno a questo utente il ruolo select catalog e anche il privilegio select create session. Dopodiché si può fare una semplice uscita. |
[0:02:13] | Abbiamo quindi creato l'utente con successo, ora possiamo andare all'interfaccia web di monitoraggio per eseguire la configurazione del monitoraggio del database Oracle. |
[0:02:24] | Come primo passo creeremo un host che utilizzeremo per il monitoraggio. Facciamo quindi clic su: Aggiungi host al monitoraggio. Definiamo il nome dell'host, l'indirizzo IP e l'origine dei dati, selezionata come integrazione API se configurata, altrimenti l'agente Checkmk e SNMP possono rimanere invariati. È sufficiente salvare e andare alla cartella, dopodiché si può fare clic su setup search for Oracle. Sotto le regole dell'agente è possibile selezionare i database Oracle. |
[0:02:58] | Facciamo clic qui e quindi su "Aggiungi regola". Facciamo clic su "Attivazione" perché vogliamo distribuire il plugin dell'agente per database Oracle. Fate clic su host se utilizzate xinetd e selezionate xinetd, mentre nel mio caso utilizzo systemd. Quindi lo selezionerò dal menu a tendina e l'intervallo rimarrà di un minuto. Questo è necessario soprattutto per l'esecuzione di sezioni asincrone, che vedremo più avanti quando vi mostrerò i file di configurazione. |
[0:03:40] | Poi sceglierò le mie credenziali di accesso, sceglierò il metodo di autenticazione. Definisco il mio utente che ho creato come c##checkmk e la password è Secret. |
[0:03:53] | Il ruolo è una connessione normale, ma si possono anche selezionare questi ruoli diversi dal menu a tendina, fare clic sul nome dell'host poiché sto distribuendo il plugin e la configurazione dell'agente sul mio database Oracle, quindi può rimanere localhost, ma se il nome dell'host è diverso o l'IP deve essere definito qui. Cliccate sulla porta TCP per l'ascoltatore. La mia porta predefinita è 1521, quindi la terrò così. |
[0:04:24] | Se si vuole definire un alias TNS, lo si può definire anche qui, ma lascerò questo campo vuoto. Se avete più database e volete definire le credenziali di autenticazione per quei SID, potete anche definirle qui, ma nel mio caso ho solo un singolo database, quindi lo lascerò così com'è. |
[0:04:51] | Altrimenti si possono continuare ad aggiungere nuovi elementi e definire le diverse credenziali di autenticazione per i diversi SID. La prossima opzione è il login per ASM, se avete ASM abilitato sul vostro database, allora potete anche definire le credenziali. Si tratta delle stesse impostazioni in cui si definisce un metodo di autenticazione, si definisce un ruolo, un hostname, una porta TCP e un alias TNS. |
[0:05:22] | La prossima impostazione è istanze da monitorare, dove si può scegliere se monitorare tutte le interfacce, interrogare solo i SID seguenti o saltare alcuni dei SID trovati. Nel mio caso, selezionerò solo il monitoraggio di tutte le istanze trovate. Si può anche aggiungere un pre o post fix ai propri alias TNS. Poiché non ho bisogno di questa impostazione, la salterò e poi l'impostazione interessante è "Sections", quali sono le sezioni che si desidera recuperare o dal plugin dell'agente. |
[0:06:02] | Si può notare che alcune sezioni sono configurate per essere eseguite in modo sincrono e altre sono impostate per essere "Eseguite in modo asincrono e memorizzate nella cache"; anche questa impostazione può essere modificata selezionando l'opzione giusta, alcune sezioni possono essere disabilitate. |
[0:06:17] | Se si desidera disabilitare per un particolare SID, si possono anche escludere alcune sezioni su determinate istanze, ad esempio definendo il nome del SID e poi scegliendo quali sezioni devono essere escluse per quel particolare SID. Io utilizzerò le impostazioni predefinite, quindi non selezionerò alcuna sezione, se non si seleziona alcuna opzione, le sezioni che devono essere eseguite in modo sincrono e asincrono sono configurate in modo predefinito, come si vedrà anche nel file CFG che viene generato da questa regola. La prossima opzione è l'età della cache per i controlli in background del plugin mk_oracle o del plugin agent, che ha un proprio meccanismo di cache; l'impostazione predefinita è 600 secondi, ovvero 10 minuti. |
[0:07:13] | Anche l'età della cache può essere modificata, ma se si fornisce un numero diverso. Manterrò i valori predefiniti, quindi non selezioneremo nulla. Sqlnet send timeout è un'altra impostazione con la quale è possibile selezionare un timeout; è stato selezionato 30 secondi, poiché non ne ho bisogno, lo eviterò. Ok, le due impostazioni successive sono Istanze remote e ORACLE_HOME da utilizzare per l'accesso remoto, questo è necessario soprattutto quando si vuole monitorare il database Oracle senza installare il plugin dell'agente. |
[0:07:54] | Questo aspetto sarà trattato nella prossima esercitazione. L'ultimo, ma non meno importante, è TNS_ADMIN, che è fondamentalmente il percorso in cui si inseriscono sqlnet.ora e tnsnames.ora. Se si lascia questo campo vuoto, il percorso predefinito sarà /etc/check_mk. Abbiamo quindi terminato la configurazione e ora lo assegnerò all'host che ho creato e farò clic su Salva. |
[0:08:32] | Dopodiché, prima di attivare la modifica, possiamo anche andare su setup, premere Windows, Linux e cliccare su bake agents. Una volta che l'agente è stato preparato, possiamo attivare la modifica. Andare di nuovo su setup Windows Linux e scaricare il pacchetto che abbiamo installato. Nel mio caso il mio server di database Oracle è in esecuzione su un server Red Hat, quindi scaricherò un pacchetto RPM. |
[0:09:12] | Ora copieremo questo pacchetto sul nostro server Oracle. Andiamo quindi rapidamente alla riga di comando. E cerchiamo il file. |
[0:09:30] | Questo è il file che ora copieremo sul nostro server Oracle. Ora possiamo dare un'occhiata al nostro server SQL. Passiamo qui. Questo è il file che abbiamo appena copiato, copiamo questo nome e installiamo il pacchetto. |
[0:10:05] | Come si può vedere il pacchetto è stato installato, diamo un'occhiata alla cartella /etc/check_mk dove si trovano i nostri file di configurazione. Come si può vedere, ora abbiamo un file mk_oracle.cfg. Se guardiamo alla cartella /uer/lib/check_mk_agent/plugins/. |
[0:10:34] |
Ora abbiamo la cartella 60, che avrete notato quando abbiamo selezionato systemd. L'intervallo è stato impostato a 60 secondi e questo aiuterà le query di lunga durata e i controlli asincroni a essere eseguiti con successo. Se guardiamo sotto la cartella 60, il nostro plugin è disponibile. Ora per eseguire il plugin possiamo copiare questo percorso e andare a questo e poi esportare alcune variabili d'ambiente che saranno richieste dal plugin. |
[0:11:13] | Questa è MK_CONFDIR = /etc/check_mk/. L'altra è MK_VARDIR, che contiene fondamentalmente le informazioni sulla cache di questo plugin e questo è tutto. Ora possiamo eseguire il plugin. |
[0:11:49] | Prima di tutto possiamo eseguire il plugin con l'opzione '-t', che sarà come un test di connessione, se lo eseguiamo vedremo le informazioni direttamente sulla console. Come output iniziale ci saranno delle sezioni vuote e successivamente, a seconda del numero di istanze configurate, verranno mostrate le informazioni di login. Qui mostra che il sistema operativo è Linux 'ORACLE_HOME', rilevato dalla scheda ORA. |
[0:12:24] | Qual è il controllo di accesso a questa istanza, la versione, le informazioni sull'utente, le sezioni sync e async. Quando ho parlato delle sezioni che possiamo selezionare in modo sincrono e asincrono, ho parlato di questa configurazione e potete anche dare un'occhiata a /etc/check_mk/mk_oracle.cfg o aprire il file. |
[0:12:54] | Qui si può vedere che questo file è stato creato dall'agente checkmk bakery, alla voce connessione e autenticazione vediamo il DBUSER in cui abbiamo il nostro utente, la password, il ruolo è vuoto, è una connessione normale, questo è il nome dell'host, questa è la porta e l'ultimo è il valore della versione. |
[0:13:16] | Abbiamo poi un'impostazione predefinita per ASMUSER. Poiché non lo usiamo, questo valore può rimanere invariato. Poi ci sono le sezioni sync e le sezioni async. Le sezioni sync sono quelle che vengono eseguite in primo piano e attendono il risultato. Queste sono le sezioni che, come si può vedere, vengono eseguite in modo sincrono. |
[0:13:39] | Poi ci sono le sezioni async, per le quali le query possono richiedere più tempo, per cui queste sezioni vengono eseguite in background a un intervallo più lento e in fondo abbiamo qualcosa su ASM e async. Dato che non lo usiamo, possiamo ignorarlo e poi abbiamo qualcosa sullo sfondo e sull'età della cache, che abbiamo impostato a 600 secondi per le sezioni asincrone. |
[0:14:07] | Bene, usciamo da questo file di configurazione. Abbiamo già eseguito il test di connessione e ha avuto successo. Ora possiamo subito rimuoverlo e possiamo anche dare un'occhiata alle altre opzioni da riga di comando disponibili con il plugin mk_oracle. Se digitiamo 'mk_oracle --help' possiamo dare un'occhiata a tutte le opzioni. |
[0:14:34] | Qui c'è un '-t' con cui si può abilitare il debug completo di bash, si può controllare la connessione come ho fatto io con il test di connessione, si può anche chiamare questo plugin con l'opzione '-l' che fondamentalmente memorizza i risultati in un file di log. Si può anche chiamare una sezione corrispondente o si può anche eseguire una "oratestversion". |
[0:14:59] | E qui si parla anche delle diverse sezioni disponibili nella configurazione, sezioni sync sezioni async, informazioni sull'ASM, l'età della cache, se si è interessati solo a specifici SID che si possono anche specificare direttamente all'interno di questo file, ma assicuratevi di averlo impostato dalla bakery, così se l'aggiornamento automatico dell'agente è configurato, queste modifiche saranno sovrascritte. |
[0:15:30] | Ci sono poi le impostazioni per le istanze remote, che verranno configurate nelle prossime esercitazioni, e le informazioni su come chiamare le query SQL personalizzate, che verranno trattate nelle prossime esercitazioni. Tutte le altre impostazioni sono relative agli SQL personalizzati. Quindi ora possiamo semplicemente eseguire il plugin senza alcuna opzione speciale. Se eseguiamo questo plugin, vedremo che prima di tutto visualizza alcune sezioni vuote, se volete dare un'occhiata all'output e vedere quali informazioni otteniamo. |
[0:16:14] | Quando si esegue il plugin dell'agente per la prima volta, all'inizio si vedranno alcune sezioni vuote, il che va benissimo, e in seguito si vedranno alcune informazioni popolate rispetto alle diverse sezioni. Come potete vedere, otteniamo informazioni sulle istanze Oracle, sulle metriche delle prestazioni Oracle e possiamo anche cercare questa stringa Parametri di sistema Oracle Processi Oracle, quali sono le sessioni, le sessioni attive lunghe, i logswitch, l'undostat, qual è lo stato di recupero, le informazioni sui tablespace dei log Oracle, in alcune delle sezioni vedete anche la parola "cached", che è fondamentalmente il vostro controllo asincrono. |
[0:16:55] | Se ricordate, avevamo due sezioni "sync_sections" e "async_sections". Gli spazi delle tabelle Oracle fanno parte delle sezioni asincrone ed è per questo che i risultati vengono memorizzati nella cache. |
[0:17:13] | Poi ci sono i lavori di Oracle e il tutto termina dopo la ripresa di Oracle. Possiamo anche dare un'occhiata al file della cache, che verrà generato nella cartella '/var/check_mk_agent/cache/'. Ci saranno due file che verranno generati quando si usa systemd, perché si esegue il plugin con un intervallo di 60 minuti e, oltre a questo, si eseguono anche alcune sezioni asincrone. Quindi se guardiamo questo file "plugins_mk_oracle.cache" vedremo le informazioni complete su tutte le sezioni, ma se guardiamo questo file in particolare che è "oracle_proddb.cache". |
[0:18:08] | Si vedranno solo le informazioni sulle sezioni asincrone. Bene, ora possiamo tornare all'interfaccia di monitoraggio ed eseguire il rilevamento dei servizi. Facciamo clic sull'host Oracle. Qui viene mostrato che la comunicazione è fallita, perché non ho registrato l'agente su questa istanza di monitoraggio. Torniamo quindi alla riga di comando ed eseguiamo la registrazione. |
[0:18:47] | Dovrebbe essere eseguita con il comando 'cmk-agent-ctl', registriamo l'host che sarà oracle-host con il server che sarà il mio 10.203.8 che sarà la mia istanza demo, questo sarà l'utente mysite e compileremo la password quando la chiederà. Quindi, se premete invio per stabilire la connessione, premete semplicemente sì e poi digitate la password. |
[0:19:28] | Dopodiché vedrete la schermata, se digitate cmk-agent-ctl status, vedrete che l'agente è stato registrato su questo server di monitoraggio sulla porta 8002 e il sito è demo. Ora torniamo all'interfaccia web di monitoraggio ed eseguiamo il rilevamento. |
[0:19:53] | Se ora riprogrammiamo questo controllo, vedremo che ora cercherà di ottenere alcune informazioni sui servizi che ha trovato. Ha già trovato 68 servizi non monitorati, che sono un mix di metriche Linux di base e di controlli Oracle forniti dal plugin dell'agente mk_oracle. |
[0:20:18] | Cliccate sull'host, cliccate sulla configurazione dei servizi, possiamo già vedere queste informazioni sotto i servizi non monitorati. All'inizio vedrete sicuramente le metriche di base di Linux, come memoria, CPU, filesystem, punti di montaggio e poi vedrete le informazioni sulle istanze Oracle. |
[0:20:45] | Questo è il nome del mio CDB e ottengo alcuni parametri e sul lato destro vedo anche quale plugin di controllo è responsabile della creazione di questo controllo di servizio. Può essere attivato utilizzando il comando mostra nomi di plugin; è anche possibile nasconderlo se non si vogliono vedere queste diverse colonne. Infine, otteniamo tutte le altre informazioni sul mio database Oracle, come i lavori, le informazioni sulle sessioni, le diverse metriche delle prestazioni, le informazioni sullo spazio delle tabelle e ora possiamo accettare tutte le modifiche. E infine, ma non per questo meno importante, attiviamo la modifica. |
[0:21:33] | Diamo un po' di tempo o possiamo anche semplicemente riprogrammare il check. Ora sono disponibili tutti i check dei servizi Oracle per il database Oracle creati dal plugin Oracle agent. |
[0:21:53] | Questo era il nostro tutorial sul monitoraggio di un database Oracle. Vi invitiamo a mettere "Mi piace", a iscrivervi e vi diamo appuntamento al prossimo video. |
Vuoi saperne di più su Checkmk? Partecipa al nostro webinar "Introduzione a Checkmk".