Contexte

Cette page vous décris comment superviser un serveur de base Oracle :

  • Les temps de connexions
  • Un redémarrage récent
  • Le nombre de connexion
  • Les accès à la mémoire cache
  • Surveiller les Dead lock
  • ...


Vous devez suivre quelque étape pour mettre en place la supervision d'une nouvelle machine servant de serveur de base de données: 

  • Comprendre ce qui est mis à disposition dans le pack de supervision 
  • Tester la connexion à la base de données
  • Définissez votre l’hôte qui utilisera les modèles de supervision de la base Oracle




Ce qui est déjà disponible dans l'installation de Shinken

Pour vous faciliter un peu la vie, quelques tâches de configuration ont déjà été effectuées pour vous :

  1. Installation d'Oracle instant Client

  2. Installation du plugin check_oracle_health : /var/lib/shinken/libexec/check_oracle_health

  3. Plusieurs modèles d'hôtes sont prêts à être utilisés


La machine que nous allons surveiller pour les exemples s'appelle srv-lin-1 et est un un serveur Oracle sur un OS linux.


Mise en place d'un compte de supervision  Oracle

Il va falloir configurer l'utilisateur pour toutes les bases de données oracle.

Il faut se connecter à la base de données en tant que sysadmin sur le serveur oracle :


srv-lin-1:oracle# sqlplus "/ as sysdba"



Et ensuite créer un compte shinken sur la base de données :


CREATE USER shinken IDENTIFIED BY shinkenpassword;
GRANT CREATE SESSION TO shinken;
GRANT SELECT any dictionary TO shinken;
GRANT SELECT ON V_$SYSSTAT TO shinken;
GRANT SELECT ON V_$INSTANCE TO shinken;
GRANT SELECT ON V_$LOG TO shinken;
GRANT SELECT ON SYS.DBA_DATA_FILES TO shinken;
GRANT SELECT ON SYS.DBA_FREE_SPACE TO shinken;



Et pour l'ancienne base de données 8.1.7 seulement :


---- if somebody still uses Oracle 8.1.7...
GRANT SELECT ON sys.dba_tablespaces TO shinken;
GRANT SELECT ON dba_temp_files TO shinken;
GRANT SELECT ON sys.v_$Temp_extent_pool TO shinken;
GRANT SELECT ON sys.v_$TEMP_SPACE_HEADER TO shinken;
GRANT SELECT ON sys.v_$session TO shinken;




Tester la connexion

Pour voir si la connexion à la base de données nommée PROD est correcte, il suffit de lancer la commande suivante :


/var/lib/shinken/libexec/check_oracle_health --connect "(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = srv-lin-1)(PORT = 1521)))(CONNECT_DATA =(SID = PROD)))" --user "shinken" --password "shinkenpassword" --mode connection-time





Les données DATABASES que trouvé dans le modèle d'hôte correspondent au SID de la base de données Oracle.


Gérer plus d'une base de données sur le même hôte

Tous les checks présents dans les modèles Oracle fournis par Shinken Entreprise utilisent la fonctionnalité "Duplicate ForEach".

Pour chaque nom de base de données listé dans la rubrique "DATABASES", le check sera dupliquée. Un hôte, ayant 2 bases de données, aura donc en double chaque check avec le nom de la base de données dans la vérification.

Prenons un exemple : un hôte a les caractéristiques suivantes :

  • Les données "DATABASES" sont "DB1,DB2,DB3"
  • Le modèle oracle y est attaché.
  • Considérons les checks Oracle-$KEY$-corrupted-blocks. Il y aura alors 3 checks :
    • Oracle-DB1-corrupted-blocks
    • Oracle-DB2-corrupted-blocks
    • Oracle-DB3-corrupted-blocks

Si vous avez besoin de définir un port de connexion spécifique pour une base de données, vous pouvez le fournir comme paramètre de la base de données :

Regardons l'image de la DB2 qui n'utilise pas le port 1521 défini par défaut :

  • Modifier la donnée "DATABASES" dans ce sens "DB1,DB2$(5000)$,DB3".
  • Pour la duplication sur DB2, alors la valeur1 5000 sera fournie à chaque check et surchargera le port par défaut.


Modèles d'hôtes disponibles dans le pack Oracle

Modèles d'hôtes publics

oracle


Il s'agit du modèle Oracle très basique permettant de savoir si votre base de données Oracle fonctionne et est utilisable.

Tous les modèles Oracle (sauf Oracle-connection-method) l'utilisent comme modèle parent.

CheckDétail
Seuil avertissementSeuil critique
tnspinglistener


process-usagePourcentage du maximum de processus possibles0% à 100%8090
sga-shared-pool-freeMémoire libre dans Shared Pool0% à 100%10:5:
tablespace-usageEspace disque utilisé dans le tablespace0% à 100%9098
corrupted-blocksNombre de block corrompu dans la base de données0 à n110
invalid-objectsSomme des objets, indices, partitions défectueux0 à n0.10.1


oracle-full

Contient tous les modèles d'hôte Oracle répertoriés dans les modèles de l'administrateur Shinken.

L'utilisation du modèle oracle-full nécessitera beaucoup de ressources sur votre démon Poller. Nous vous conseillons d'utiliser uniquement les modèles nécessaires.


Modèles d'hôtes réservés aux administrateurs Shinken (ne peuvent pas être vus par les autres utilisateurs)

oracle-connection-method


Ce modèle décrit la méthode de connexion à une base de données Oracle. Tous les modèles Oracle l'utilisent comme modèle parent.

Les paramètres communs à tous les serveurs Oracle surveillés doivent être définis dans le modèle d'hôte oracle-connection-method.

Si vous avez plusieurs méthodes de connexion, créez votre propre modèle et attachez-le à l'hôte.



oracle-availability

 Ce modèle donne des informations sur la disponibilité de la base de données.

CheckDétail
Seuil avertissementSeuil critique
connection-timeTemps de connexion à la base de données Oracle0 à n secondes0.51


Oracle-datafile

 Ce modèle donne des informations sur la disponibilité du fichier de données.

CheckDétail
Seuil avertissementSeuil critique
datafile-io-trafficSomme des opérations d'entrée/sortie des fichiers de données par seconden/sec10005000
datafiles-existingPourcentage des fichiers de données maximum possibles0% à 100%8090


Oracle-flash-recovery-area

Ce modèle permet de connaître l'espace disque utilisé dans la zone de récupération flash.

À utiliser uniquement si vous utilisez la zone de récupération flash.


CheckDétail
Seuil avertissementSeuil critique
flash-recovery-area-usageEspace disque utilisé dans la zone de récupération flash0% à 100%9098


Oracle-pga

Ce modèle permet de connaître le pourcentage de tris qui sont effectués sur disque par rapport à ceux effectués en mémoire.

CheckDétail
Seuil avertissementSeuil critique
pga-in-memory-sort-ratioPourcentage de tris dans la mémoire0% à 100% 99:90:


Oracle-redo

Ce modèle donne des informations complètes sur le redolog.

CheckDétail
Seuil avertissementSeuil critique
switch-intervalIntervalle entre les changements de fichiers RedoLog0 à n600: 60:
retry-ratioTaux de réessai dans le tampon RedoLog0% à 100%110
redo-io-trafficRedolog IO en MB/secn/sec199200


Oracle-rman

Ce modèle indique s'il y a un problème de sauvegarde RMAN dans les 3 derniers jours.

À utiliser uniquement si vous utilisez RMAN.


CheckDétail
Seuil avertissementSeuil critique
rman-backup-problemsNombre d'erreurs RMAN au cours des trois derniers jours.0 à n2


Oracle-rollback-segment

Ce modèle donne des informations sur le segment Rollback. Le segment Rollback enregistre les actions des transactions dans le cas où une transaction est annulée.


CheckDétail
Seuil avertissementSeuil critique
roll-header-contentionContestation de l'en-tête du segment Rollback0% à 100% 12
roll-block-contentionContestation de bloc de segment Rollback0% à 100%12
roll-hit-ratioRollback Segment gets/waits Ratio0% à 100%99:98:
roll-extendsLe segment Rollback s'étend nn/sec1100
roll-wrapsEnveloppes de segments Rollback nn/sec1100


Oracle-sga

Ce modèle donne des informations complètes sur la SGA (System Global Area).

CheckDétail
Seuil avertissementSeuil critique
sga-data-buffer-hit-ratioHitrate dans le cache du tampon de données0% à 100% 98:95:
sga-library-cache-gethit-ratioHitrate dans le cache de la bibliothèque (Gets)0% à 100%98:95:
sga-library-cache-pinhit-ratioHitrate dans le cache de la bibliothèque (pins)0% à 100%98:95:
sga-library-cache-reloadsTaux de rechargement dans le cache de la bibliothèquen/sec1010
sga-dictionary-cache-hit-ratioHitrate dans le cache du dictionnaire0% à 100%95:90:
sga-latches-hit-ratioHitrate des verrous0% à 100%98:95:
sga-shared-pool-reloadsTaux de rechargement dans le pool partagé0% à 100%110


Oracle-soft-parse

Ce modèle donne des informations sur le soft parse. Il peut vous donner une idée si une application et les instructions SQL correspondantes sont utilisées de manière inefficace.

CheckDétail
Seuil avertissementSeuil critique
soft-parse-ratioPourcentage du soft-parse-ratio0% to 100% 90:98:


Oracle-stale-statistics

Ce modèle permet de connaître les statistiques périmées.

CheckDétail
Seuil avertissementSeuil critique
stale-statisticsSomme des objets avec des statistiques d'optimiseur obsolètesn10 100


Oracle-tablespace

Ce modèle donne des informations sur le tablespace comme la fragmentation, s'il est possible d'allouer la prochaine étendue et potentiellement quand un tablespace sera plein.

CheckDétail
Seuil avertissementSeuil critique
tablespace-fragmentationIndice de fragmentation de l'espace libre100 à 130:20:
tablespace-can-allocate-nextVérifie s'il y a assez de tablespace libre pour le prochain Extent.


tablespace-remaining-timeSomme des jours restants jusqu'à ce qu'un tablespace soit utilisé à 100%. Le taux d'augmentation sera calculé avec les valeurs des 30 derniers jours. (Avec le paramètre -lookback, différentes périodes peuvent être spécifiées).Jours90:30:


Oracle-usage

Ce modèle indique le pourcentage de sessions maximales possibles et le nombre d'utilisateurs connectés.

CheckDétail
Seuil avertissementSeuil critique
session-usagePourcentage des sessions maximales possibles0% à 100%8090
Connected usersNombre d'utilisateurs actuellement connectés0 à n50100


How to 


Configuration of Oracle-connection-method host template

Click on Hosts then on Hosts Templates in the Elements menu

In the Name field, type oracle.

Then clic on Oracle-connection-method

Clic on Data tab

You can setup the following DATA : 

  • DATABASES : the name(s) of the Oracle SID database(s) to be monitored.
  • ORACLE_CONNECTION_STRING : this is the Oracle connection string which allow to connect and do request toward the databases.
    Unless you know what your doing, you will rarely have the need to modify it.
  • ORACLE_PASSWORD : the oracle password of the user used to connect to database
  • ORACLE_USER : the oracle user name used to connect to database
  • ORACLE_PORT : the listening port of the Oracle database server







The parameters specifics to each server, such as database name (AKA SID) for example, has to be done in the host's data itself.

It's a best practice to use the same database monitoring user on every Oracle server monitored. Doing so, you can configure the database user/password only once in the host template oracle-connection-method.




Attach an oracle template to you host

Clic on Hosts in the Elements menu

Add the chosen Oracle host template to the Host Templates to inherit field.

For example the Oracle host template.

Click on the Data tab

Look for the field DATABASES in the From templates data


Type the name of the database to be monitoring

Check if the Following data are ok.



You can monitor multiple database on the same host in typing the name of the database SID separated by a comma.

Exemple : DB1,DB2,DB3


Version des scripts livrés

check_oracle_health : 3.2.1.8