Afficher les données du journal système

Les journaux sont collectés à partir de tout le système Private Cloud Appliance et agrégés dans Loki.

Pour en savoir plus sur la consultation et l'utilisation des journaux, reportez-vous aux sections suivantes :

Utiliser les requêtes Explorer de Grafana

Les données de journal système dans Private Cloud Appliance peuvent être interrogées, filtrées et affichées à l'aide de requêtes Explorer Grafana.

Journaux Loki

Loki utilise des étiquettes pour catégoriser les messages de journal. Une requête spécifie des libellés et Loki affiche les messages de journal de service et d'application correspondant aux sélections de requête.

Les libellés sont des paires clé/valeur. Pour sélectionner des libellés pour votre requête, procédez comme suit :

  1. Ouvrez la page d'accueil de Grafana.

  2. Ouvrez le panneau Exploration.

    Dans la barre de menus verticale sur le côté gauche de la page, cliquez sur Explorer (l'icône de boussole).

  3. Pour interroger les données Loki, sélectionnez Loki dans le menu Explorer de la source de données en haut de la page à droite du titre "Explorer".

    Les options de requête Loki s'affichent. Par exemple, un menu Log Browser s'affiche en haut de la page.

  4. Interrogez et filtrez les journaux.

    Les méthodes suivantes sont similaires. Les deux méthodes permettent de sélectionner des libellés et des valeurs dans des listes. La deuxième méthode vous permet de sélectionner plus facilement plusieurs libellés et plusieurs valeurs pour une requête.

    Une fois que vous avez créé une requête, vous pouvez la sélectionner à nouveau dans la liste d'historique.

Options de requête supplémentaires :

  • Ajouter une requête. Cliquez sur le bouton Ajouter une requête pour créer une autre requête et afficher le résultat de toutes les requêtes distinctes dans la même chronologie et la même liste de messages.

  • Historique de requête. Exécutez une requête qui a été précédemment exécutée, ou copiez ou supprimez la requête, ajoutez un commentaire à la requête ou insérez une étoile dans la requête afin que vous puissiez utiliser le bouton Marqué pour répertorier uniquement les requêtes favorites. En haut de la liste de l'historique des requêtes, vous pouvez saisir une chaîne de recherche pour filtrer la liste et sélectionner le mode de tri de la liste.

  • Exécution récurrente. Cliquez sur la flèche du bouton Exécuter la requête et sélectionnez un intervalle dans le menu. Pour arrêter les exécutions récurrentes, sélectionnez Off en haut du menu.

La chronologie s'affiche sous la section Journal du volet Explorer du navigateur. Sous la chronologie, les messages de journal correspondant à la requête sont affichés.

Les messages sont codés par couleur à la fois dans la chronologie et dans la liste des messages pour indiquer s'il s'agit d'un message d'information, d'un avertissement, d'une erreur ou autre.

Utilisez le bouton Type de requête pour choisir d'afficher les résultats sur une période donnée ou à un moment donné. Utilisez le bouton Plage en haut de la page (voir l'icône de l'horloge) pour définir la plage.

Sélectionnez une partie de la chronologie à zoomer pour vous concentrer sur une plus petite quantité de données. Pour effectuer un zoom arrière, utilisez le bouton loupe en haut de la page en regard du bouton Plage.

Dans la liste des messages, cliquez sur la flèche située à gauche de l'horodatage d'un message pour afficher tous les libellés correspondant à ce message. Vous pouvez ensuite cliquer sur l'icône de loupe plus + pour ajouter ce libellé aux résultats de la requête ou sur l'icône de loupe moins - pour enlever ce libellé des résultats de la requête. Notez que la requête que vous avez saisie change.

Saisie d'une requête dans le champ de texte
  1. Dans le champ de texte situé à droite du bouton du navigateur de journaux, entrez l'accolade ouverte {.

    L'accolade fermée est automatiquement ajoutée et une liste d'étiquettes apparaît.

  2. Sélectionnez un libellé dans la liste.

    Vous devrez peut-être faire défiler la liste pour voir tous les libellés, ou vous pouvez commencer à saisir un nom de libellé pour filtrer la liste.

    Le libellé sélectionné est inséré dans la requête dans le champ de texte, un signe égal est ajouté et une liste de valeurs pour ce libellé apparaît.

  3. Sélectionnez une valeur dans la liste,

    Vous pouvez avoir besoin de faire défiler la liste pour voir toutes les valeurs, ou vous pouvez commencer à saisir un nom de valeur pour filtrer la liste.

    La valeur sélectionnée est insérée entre guillemets.

  4. Pour filtrer davantage le résultat de la requête, saisissez une virgule.

    La liste de libellés s'affiche à nouveau, suivie de la liste de valeurs après la sélection d'un libellé.

  5. Exécutez l'interrogation.

    Saisissez Shift+Enter ou cliquez sur le bouton Exécuter la requête dans le coin supérieur droit du volet.

    La chronologie et les messages de journal s'affichent sous les options de création de requête.

Créer une requête complexe plus facilement

Cliquez sur le bouton Log browser pour que la flèche du bouton pointe vers le bas.

Un générateur de requêtes s'affiche avec les étapes suivantes :

  1. Sélectionnez des libellés.

    L'étape 1 affiche une ligne de boutons avec un nom de libellé sur chaque bouton. Lorsque vous cliquez sur l'un de ces boutons de libellé, une liste apparaît sous l'étape 2 qui affiche les valeurs de ce libellé.

    Vous pouvez cliquer sur plusieurs boutons de libellé. Si vous cliquez sur un autre bouton de libellé, la liste de valeurs du nouveau libellé apparaît avec la première liste de valeurs de l'étape 2.

    Lorsque vous cliquez sur un bouton de libellé déjà sélectionné, ce libellé est supprimé de la requête.

  2. Choisissez des valeurs pour les libellés sélectionnés.

    L'étape 2 affiche la liste des valeurs pour chaque libellé sélectionné à l'étape 1. Vous pouvez avoir besoin de faire défiler la liste pour voir toutes les valeurs possibles, ou vous pouvez commencer à saisir un nom de valeur dans le champ de recherche pour filtrer toutes les listes de valeurs.

    Lorsque vous sélectionnez une valeur dans une liste, certaines valeurs peuvent être supprimées d'une autre liste.

    Vous pouvez sélectionner plusieurs valeurs dans une liste particulière. Si vous sélectionnez une valeur déjà sélectionnée, cette valeur est supprimée de la requête.

    Lorsque vous sélectionnez ou désélectionnez des valeurs, la requête est créée et affichée à l'étape 3.

  3. Afficher le résultat de la requête.

    Cliquez sur le bouton Show Logs à l'étape 3.

    La chronologie et les messages de journal s'affichent sous les options de création de requête.

    La requête terminée s'affiche dans le champ situé à droite du bouton du navigateur de journaux. Vous pouvez modifier la requête dans le champ Log browser et cliquer sur le bouton Run query pour afficher un nouveau résultat.

Journaux d'audit

Les journaux d'audit peuvent être consultés en tant que catégories distinctes. Dans les listes du navigateur de journaux, vous pouvez sélectionner les libellés d'audit suivants. Comme décrit dans Journaux de journal, entrez les requêtes affichées dans la liste suivante dans le champ de texte ou sélectionnez job ou log dans la liste des libellés de journal, puis sélectionnez l'une des valeurs affichées dans la liste suivante. Voir aussi l'exemple de requête personnalisée qui suit immédiatement cette liste.

  • job="vault-audit"

    Utilisez ce libellé de journal pour filtrer les journaux d'audit du cluster Vault. Vault, composant clé du service de clé secrète, conserve un journal détaillé de toutes les demandes et réponses. Vous pouvez visualiser toutes les interactions authentifiées avec Vault, y compris les erreurs. Etant donné que ces journaux contiennent des informations sensibles, de nombreuses chaînes dans les demandes et les réponses sont hachées de sorte que les clés secrètes ne soient pas affichées en texte brut dans les journaux d'audit.

  • job="kubernetes-audit"

    Utilisez ce libellé de journal pour filtrer les journaux d'audit du cluster Kubernetes. La stratégie d'audit Kubernetes est configurée pour journaliser les métadonnées de demande : utilisateur demandeur, horodatage, ressource, verbe, etc. Le corps de la demande et le corps de la réponse ne sont pas inclus dans les journaux d'audit.

  • job="audit"

    Utilisez cette étiquette de journal pour filtrer les journaux du démon d'audit du noyau Oracle Linux. Le démon d'audit du noyau (auditd) est le composant d'espace utilisateur du système d'audit Linux. Il capture des événements spécifiques tels que les connexions système, les modifications de compte et les opérations sudo.

  • log="audit"

    Utilisez cette étiquette de journal pour filtrer les journaux d'audit de ZFS Storage Appliance.

En plus d'utiliser les libellés de journal de la liste, vous pouvez également créer des requêtes personnalisées. Par exemple, pour filtrer les journaux d'audit du service d'administration et du service d'API, entrez la requête suivante dans le champ de texte du navigateur de journaux :

{job=~"(admin|api-server)"} | json tag="tag" | tag=~"(api-audit.log|audit.log)"

Pour exécuter, appuyez sur Shift+Enter ou cliquez sur le bouton Exécuter la requête dans le coin supérieur droit du volet Explorer.

Journaux d'équilibreur de charges

Les journaux de l'équilibreur de charge en tant que service (LBaaS) peuvent être consultés en tant que catégories distinctes. Dans les listes du navigateur de journaux, vous pouvez sélectionner les libellés d'audit suivants. Comme décrit dans Journaux de journal, entrez les requêtes affichées dans la liste suivante dans le champ de texte ou sélectionnez job ou log dans la liste des libellés de journal, puis sélectionnez l'une des valeurs affichées dans la liste suivante.

  • job="pca-lbctl"

    Utilisez ce libellé de journal pour filtrer les journaux du contrôleur d'équilibreur de charge. Vous pouvez afficher toutes les demandes client en cours de traitement. Ces journaux contiennent des paramètres d'API et contiennent des détails d'erreur, le cas échéant.

  • job="pcalbmgr"

    Utilisez ce libellé de journal pour filtrer les journaux des instances d'équilibreur de charge (gestionnaire). Vous pouvez afficher toutes les demandes en cours de traitement. Ces journaux contiennent principalement la configuration et la gestion de l'équilibreur de charge.

En plus d'utiliser les libellés de journal de la liste, vous pouvez également créer des requêtes personnalisées. Par exemple, vous pouvez afficher les journaux du contrôleur et du gestionnaire ensemble :

{job=~"pca-lbctl|pca-lbmgr"}

Pour exécuter, appuyez sur Shift+Enter ou cliquez sur le bouton Exécuter la requête dans le coin supérieur droit du volet Explorer.

Utilisation d'un vecteur pour la transmission en continu de journaux

Le service Vector vous permet d'envoyer les informations de journalisation de l'appliance de cloud privé de Loki à un emplacement externe que vous spécifiez.

A partir de la version 3.0.2-b1261765 du logiciel Private Cloud Appliance, Vector est installé, configuré et activé sur l'appareil par défaut.

Pour spécifier les données que vous voulez et où vous voulez envoyer les données, connectez-vous au noeud de gestion actuellement actif en tant qu'utilisateur root et personnalisez le fichier de configuration de vecteur. Il est stocké dans /nfs/shared_storage/log_streaming/pca_vector.yaml.

Modifiez le fichier de configuration pour personnaliser la section sinks. Reportez-vous à la section Sinks Reference du vecteur. Voici un exemple de fichier pca_vector.yaml :

# Copyright (c) 2024, Oracle and/or its affiliates.

# DO NOT TURN API OFF
# otherwise livenessProbe will fail
api:
  enabled: true
  # Bind to 0.0.0.0. Otherwise the API will not be exposed outside the container.
  address: "0.0.0.0:8686"

sources:
  fluentd_source:
    type: fluent
    address: "0.0.0.0:8080"
    mode: tcp
    encoding:
      codec: json

transforms:
  log_event:
    type: remap
    inputs:
      - fluentd_source
    source: |
      log(.)

sinks:
  loki_sink:
    type: loki
    inputs:
      - fluentd_source
    endpoint: http://your_external_location:3100
    encoding:
      codec: json
    labels:
      job: "vector"
      namespace: "default"
      system: "pca_name.example.com"
      filename: "{{tag}}"

Dans la valeur endpoint, your_external_location peut être une adresse IP ou un nom de domaine. A cet endroit, vous pouvez installer Grafana ou utiliser d'autres outils pour filtrer, manipuler et afficher les données.

La valeur de l'étiquette filename affichée dans l'exemple entraîne l'affichage du nom du fichier journal source dans la sortie Vector Loki Sink. Vous pouvez ensuite utiliser ce nom de fichier comme étiquette pour effectuer une recherche dans Loki et Grafana.

Voici un exemple d'évier Splunk :

sinks:
  splunk_sink:
    type: splunk_hec_logs
    inputs:
      - source_id
    endpoint: https://splunk_endpoint
    token: splunk-hec-token
    encoding:
      codec: json
    tls:
      ca_file: "/path/to/ca.pem"

splunk-hec-token est requis pour envoyer les journaux à Splunk. ca_file est facultatif si vous utilisez HTTPS. Pour plus d'informations sur le collecteur d'événements HTTP et sur la configuration et l'utilisation de Splunk, reportez-vous à la documentation Splunk.

La commande suivante indique le statut du pod de transmission en continu de journaux (service Vector) :

# kubectl get pods -n log-streaming
NAME                           READY   STATUS    RESTARTS   AGE
log-streamer-bc4d65d78-ndrsk   1/1     Running   0          14d

La commande suivante imprime les journaux à partir du pod log-streamer-bc4d65d78-ndrsk, qui ne contient qu'un seul conteneur. Pour plus d'informations sur la commande kubectl logs, reportez-vous à Journaux kubectl sur le site Kubernetes.

# kubectl logs log-streamer-bc4d65d78-ndrsk -n log-streaming

Gérer le niveau de journalisation

Pour faciliter le dépannage, vous pouvez modifier le niveau de journalisation de certains services sans redémarrer le service.

Avec la possibilité d'augmenter le niveau de journalisation pendant l'exécution, vous n'avez pas besoin de consigner tous les détails par défaut. Par conséquent, vous pouvez réduire la journalisation par défaut globale des services, ce qui réduit la quantité de stockage requise. La prise en charge des niveaux de journalisation varie selon les services.

Consulter les niveaux de journalisation

  • Pour afficher les services qui prennent en charge la journalisation dynamique, utilisez la commande getServicesSupportingLogLevelOverrides.

    PCA-ADMIN> getServicesSupportingLogLevelOverrides
    Command: getServicesSupportingLogLevelOverrides
    Status: Success
    Time: 2025-07-24 00:33:32,328 UTC
    Data:
      admin
      iam
      api
      limit
    PCA-ADMIN>
  • Pour afficher les niveaux de journalisation activés pour un service, utilisez la commande getSupportedLogLevelOverrides serviceName=service. Si les niveaux de journalisation ne sont pas pris en charge pour un service, un message d'erreur s'affiche.

    PCA-ADMIN> getSupportedLogLevelOverrides serviceName=admin
    Command: getSupportedLogLevelOverrides serviceName=admin
    Status: Success
    Time: 2025-08-04 23:28:13,889 UTC
    Data: 
      Logger Name    Supported Logging Levels                           
      -----------    ------------------------                           
      AdminService   SEVERE,WARNING,INFO,FINE,FINER,FINEST   
      AUDIT          SEVERE,WARNING,INFO,FINE,FINER,FINEST    
    PCA-ADMIN> getSupportedLogLevelOverrides serviceName=iam
    Command: getSupportedLogLevelOverrides serviceName=iam
    Status: Success
    Time: 2025-08-04 23:27:58,208 UTC
    Data: 
      Logger Name   Supported Logging Levels   
      -----------   ------------------------   
      root          DEBUG,INFO,WARNING,ERROR   
      pcaiam        DEBUG,INFO,WARNING,ERROR  
    PCA-ADMIN> getSupportedLogLevelOverrides serviceName=api
    Command: getSupportedLogLevelOverrides serviceName=api
    Status: Success
    Time: 2025-08-04 23:28:03,967 UTC
    Data: 
      Logger Name   Supported Logging Levels            
      -----------   ------------------------            
      root          DEBUG,INFO,WARNING,ERROR,CRITICAL   
      pcaapi        DEBUG,INFO,WARNING,ERROR,CRITICAL   
      audit         DEBUG,INFO,WARNING,ERROR,CRITICAL 
  • Pour afficher le niveau de journalisation en cours des services, utilisez la commande getLogLevelOverrides.

  • PCA-ADMIN> getlogleveloverrides                                                             
    Command: getlogleveloverrides
    Status: Success
    Time: 2025-08-22 06:17:35,817 UTC
    Data: 
      Service Name   Logger Name    Logger Level   
      ------------   -----------    ------------   
      admin          adminService   SEVERE         
      admin          audit          SEVERE         
      iam            root           DEBUG              
      iam            pcaiam         DEBUG       
      api            NOT SET        NOT SET        
      limit          NOT SET        NOT SET

Modifier le niveau des journaux

  • Afin de définir un nouveau niveau de journalisation pour un service, utilisez la commande setLogLevelOverride service=service loggerName=string level=log_level.

    Remarque

    Exécutez getSupportedLogLevelOverrides serviceName=service pour rechercher le nom du journaliseur et les niveaux de journalisation disponibles pour un service.
    PCA-ADMIN> setlogleveloverride serviceName=iam loggername=pcaiam                    
    Command: setlogleveloverride serviceName=iam loggername=pcaiam loggerlevel=ERROR
    Status: Success
    Time: 2025-08-22 06:37:24,095 UTC
    Data: 
      status = PASS
      message = LLO - successfully set log level override
  • Afin d'enlever un niveau de journalisation pour un service, utilisez la commande unsetLogLevelOverride service=service loggerName=string level=log_level.

    PCA-ADMIN> unsetLogLevelOverride serviceName=admin loggerName=AdminService
    Command: unsetLogLevelOverride serviceName=admin loggerName=AdminService
    Status: Success
    Time: 2025-02-13 22:29:47,886 UTC
    Data: 
      status = PASS
      message = LLO - successfully unset log level override
    

Journaux d'audit de conseil transmis via un vecteur

Private Cloud Appliance utilise la transmission en continu vectorielle pour fournir un accès facile à un ensemble de journaux d'audit.

Le format du journal d'audit est conforme à la définition Oracle Cloud Infrastructure documentée, stockant les événements pouvant faire l'objet d'un audit avec une enveloppe standard et une charge utile propre au service. Pour plus d'informations sur le format OCI, reportez-vous à Contenu d'un événement de journal d'audit.

Avec la version logicielle du contrôleur 3.0.2-b1483396 et les versions ultérieures, les journaux de service suivants sont transmis via Vector.

  • Chaque entrée de journal indique le type d'événement et le service associé.

  • La section identity du message d'événement indique le compte utilisateur (principalId et principalName) d'où provient la demande.

  • La rotation des journaux est appliquée aux journaux du service d'administration, qui reçoivent un suffixe de nom de fichier numérique. Le fichier avec le suffixe ".0" est le plus récent et le seul inclus dans la transmission en continu des journaux.

API - /var/log/api-server/api-audit.log

Chaque demande adressée au serveur d'API est enregistrée sous la forme d'une entrée unique qui récapitule la façon dont elle a été traitée.

{
	"timestamp": "2025-10-28T14:19:14.548+0000",
	"podname": "api-58fd4d47df-79hzz",
	"process": 24,
	"levelname": "INFO",
	"log_type": "audit",
	"cloud_events_version": "0.1",
	"content_type": "application/json",
	"event_type_version": "2.0",
	"event_id": "/448db79d-ee36-458d-99f1-bf7be8d1527c/5421edf2-157e-4128-bcd9-696653d9890a",
	"event_type": "compute-VolumeAttachmentCollection-GET",
	"source": "compute",
	"message": "{
		'availabilityDomain': 'AD-1',
		'compartmentId': None,
		'definedTags': None,
		'eventGroupingId': '/448db79d-ee36-458d-99f1-bf7be8d1527c/5421edf2-157e-4128-bcd9-696653d9890a',
		'eventName': 'ListVolumeAttachments',
		'freeformTags': None,
		'identity': {
			'authType': 'native',
			'callerId': 'ocid1.user.1749XC302V.broom6.ulmhteeqbqwi68rmtc5oj7cpgzkmjxvhzbu8exn08uihl9ng0kbtk1rh8k1s',
			'consoleSessionId': '',
			'credentials': None,
			'ipAddress': '253.255.130.107',
			'principalId': 'ocid1.user.1749XC302V.broom6.ulmhteeqbqwi68rmtc5oj7cpgzkmjxvhzbu8exn08uihl9ng0kbtk1rh8k1s',
			'principalName': 'admin',
			'tenantId': 'ocid1.tenancy.1749XC302V.broom6.bp4t0827a1zd5uw34s6vc9xticohkzek6fu7fd085dfe4v9q5uak00090146',
			'userAgent': 'Jersey/3.1.5 (HttpUrlConnection 17.0.16)'
		},
		'request': {
			'action': 'GET',
			'headers': {
				'ACCEPT': 'application/json',
				'AUTHORIZATION': '********',
				'USER-AGENT': 'Jersey/3.1.5 (HttpUrlConnection 17.0.16)',
				'HOST': 'api:9003',
				'CONNECTION': 'keep-alive'
				},
			'id': '/448db79d-ee36-458d-99f1-bf7be8d1527c/5421edf2-157e-4128-bcd9-696653d9890a',
			'parameters': {
				'body': None,
				'query': {
					'compartmentId': 'ocid1.compartment.1749XC302V.broom6.89n1pa1uw1iy6zigy4v5yra56zonmlbneiox8usdngtml8ol1jcgl7owc4if',
					'instanceId': 'ocid1.instance.1749XC302V.broom6.cp5wa6r2xupr3gj3hlcbhn3u461umovhpucfjd25t97f8sx0ny9o0vwefro0',
					'limit': '1000',
					'lifecycleState': 'ATTACHED',
					'sortBy': 'DISPLAYNAME',
					'sortOrder': 'ASC'
				}
			},
			'path': '/20160918/volumeAttachments'
		},
		'resourceId': None,
		'resourceName': None,
		'response': {
			'headers': {
				'opc-request-id': '/448db79d-ee36-458d-99f1-bf7be8d1527c/c5ef9bee-8863-46f9-9348-3faf1f1eb498',
				'HOST': 'api:9003',
				'principal': {
					'id': 'ocid1.user.1749XC302V.broom6.ulmhteeqbqwi68rmtc5oj7cpgzkmjxvhzbu8exn08uihl9ng0kbtk1rh8k1s',
					'tenancyId': 'ocid1.tenancy.1749XC302V.broom6.bp4t0827a1zd5uw34s6vc9xticohkzek6fu7fd085dfe4v9q5uak00090146',
					'type': 'USER',
					'name': 'admin',
					'token': '********'
				},
				'userId': 'ocid1.user.1749XC302V.broom6.ulmhteeqbqwi68rmtc5oj7cpgzkmjxvhzbu8exn08uihl9ng0kbtk1rh8k1s',
				'tenancyId': 'ocid1.tenancy.1749XC302V.broom6.bp4t0827a1zd5uw34s6vc9xticohkzek6fu7fd085dfe4v9q5uak00090146',
				'tagTenancyId': 'ocid1.tenancy.1749XC302V.broom6.bp4t0827a1zd5uw34s6vc9xticohkzek6fu7fd085dfe4v9q5uak00090146'
			},
			'message': 'ListVolumeAttachments succeeded.',
			'status': '200 OK'
		},
		'stateChange': {
			'current': None,
			'previous': None
		}
	}"
}
API - /var/log/api-server/api-server.log

Ce fichier journal suit le traitement de chaque demande d'API, notamment l'authentification, l'autorisation, la publication vers le service concerné et la réponse du service.

{"timestamp": "2025-09-25T20:49:13.460+0000", "rid": "/0b75ee6a-9f34-4cab-90c2-09739cb1e2a1/9a414afe-4471-47c7-a7cb-f46ed84b650f", "podname": "api-6b7f777d8d-8xd64", "process": 30, "ocid": null, "levelname": "INFO", "module": "log", "lineno": 62, "pathname": "/usr/lib/python3.11/site-packages/pcaapi/log.py", "message": "Request info is: {'request env': {'REQUEST_METHOD': 'GET', 'REQUEST_URI': '/metrics', 'PATH_INFO': '/metrics', 'QUERY_STRING': '', 'SERVER_PROTOCOL': 'HTTP/1.1', 'SCRIPT_NAME': '', 'SERVER_NAME': 'api-6b7f777d8d-8xd64', 'SERVER_PORT': '9003', 'UWSGI_ROUTER': 'http', 'HTTPS': 'on', 'REMOTE_ADDR': '253.255.129.0', 'REMOTE_PORT': '48852', 'HTTP_HOST': '253.255.128.87:9003', 'HTTP_USER_AGENT': 'Prometheus/2.32.1', 'HTTP_ACCEPT': 'application/openmetrics-text; version=0.0.1,text/plain;version=0.0.4;q=0.5,*/*;q=0.1', 'HTTP_ACCEPT_ENCODING': 'gzip', 'HTTP_X_PROMETHEUS_SCRAPE_TIMEOUT_SECONDS': '10', 'wsgi.input': <uwsgi._Input object at 0x7f8928e5f430>, 'wsgi.file_wrapper': <built-in function uwsgi_sendfile>, 'wsgi.version': (1, 0), 'wsgi.errors': <_io.TextIOWrapper name=2 mode='w' encoding='ANSI_X3.4-1968'>, 'wsgi.run_once': False, 'wsgi.multithread': True, 'wsgi.multiprocess': True, 'wsgi.url_scheme': 'https', 'uwsgi.version': b'2.0.25.1', 'uwsgi.core': 2, 'uwsgi.node': b'api-6b7f777d8d-8xd64'}, 'request_context': Context({'audit_event': <pcaapi.apiimpl.util.audit.AuditEvent object at 0x7f892946b710>, 'opc-request-id': '/0b75ee6a-9f34-4cab-90c2-09739cb1e2a1/9a414afe-4471-47c7-a7cb-f46ed84b650f'}), 'scheme': 'https', 'forwarded_scheme': 'https', 'host': '253.255.128.87', 'forwarded_host': '253.255.128.87:9003', 'port': 9003, 'root_path': '', 'URI': 'https://253.255.128.87:9003/metrics', 'forwarded_URI': 'https://253.255.128.87:9003/metrics', 'prefix': 'https://253.255.128.87:9003', 'forwarded_prefix': 'https://253.255.128.87:9003', 'path': '/metrics', 'query_string': '', 'uri_template': None, 'remote_address': '253.255.129.0', 'access_route': ['253.255.129.0'], 'forwarded': None, 'date': None, 'user_agent_header': 'Prometheus/2.32.1', 'referer_header': None, 'accept_header': 'application/openmetrics-text; version=0.0.1,text/plain;version=0.0.4;q=0.5,*/*;q=0.1', 'client_accepts_json_header': True, 'if_match_header': None, 'if_none_match_header': None, 'if_modified_since_header': None, 'if_unmodified_since_header': None, 'if_range_header': None, 'headers': {'HOST': '253.255.128.87:9003', 'USER-AGENT': 'Prometheus/2.32.1', 'ACCEPT': 'application/openmetrics-text; version=0.0.1,text/plain;version=0.0.4;q=0.5,*/*;q=0.1', 'ACCEPT-ENCODING': 'gzip', 'X-PROMETHEUS-SCRAPE-TIMEOUT-SECONDS': '10'}, 'params': {}, 'options': <falcon.request.RequestOptions object at 0x7f893b5e0bd0>}"}
{"timestamp": "2025-09-25T20:49:13.635+0000", "rid": "/0b75ee6a-9f34-4cab-90c2-09739cb1e2a1/9a414afe-4471-47c7-a7cb-f46ed84b650f", "podname": "api-6b7f777d8d-8xd64", "process": 30, "ocid": null, "levelname": "INFO", "module": "UWSGI", "lineno": 0, "pathname": null, "message": "GET /metrics => generated 1956317 bytes in 176 msecs (HTTP/1.1 200) 4 headers in 216 bytes (1 switches on core 2)"}
IAM : /var/log/iam/iam.log

Ce fichier journal collecte les erreurs et les informations générales relatives aux demandes d'authentification et d'autorisation. Il suit le cycle de vie des ressources d'identité. Sur les systèmes liés à OCI, ce fichier suit également la synchronisation des ressources d'identité.

{"timestamp": "2025-09-25T20:53:17.883+0000", "rid": "77a7adafee88531f6f057d4ea1d95199/7368f440-c339-44df-a59b-559406b2cd33/dfe13bdb-6746-4c82-8d64-a96176805245", "podname": "iam-5f5cffbbfd-fpxgw", "process": 1, "ocid": null, "levelname": "INFO", "module": "log", "lineno": 125, "pathname": "/usr/lib/python3.11/site-packages/pcacommon/log.py", "src_module": "pcaiam.authorization", "src_lineno": 371, "src_pathname": "/usr/lib/python3.11/site-packages/pcaiam/authorization.py", "message": "AuthZ failed. Tenant=ocid1.tenancy.1742XC3020.broom7.v1fr92mhepaivxtpwvjccgl8xu8wnls6wwfdoy5o8epboxmp85ak00090146, Principal=ocid1.instance.1742XC3020.broom7.f51ayedmi9r2xlmqcrdhedqxyt3f0o6w6n50u0mprovbyw6rtrafv6ldh1ny, Compartment=ocid1.tenancy.1742XC3020.broom7.v1fr92mhepaivxtpwvjccgl8xu8wnls6wwfdoy5o8epboxmp85ak00090146, PrincipalType=INSTANCE, Operation=GetInstance, Comp Hierarchy=['ocid1.tenancy.1742XC3020.broom7.v1fr92mhepaivxtpwvjccgl8xu8wnls6wwfdoy5o8epboxmp85ak00090146'], Required Permissions=['INSTANCE_READ'] ", "message_data": null}
ADMINISTRATION - /var/log/audit.log.0

Ce fichier journal contient un enregistrement de tous les appels CLI et REST vers le service d'administration, y compris tous les paramètres.

{
  "asctime": "2025-09-25 20:53:08",
  "podname": "admin-558fd59789-4ms7l",
  "process": "9",
  "component": "API",
  "levelname": "INFO",
  "summary": "opc-request-id8b636b9b-72e9-4208-9fdc-56d6919d2952, 2785 > POST https://admin.broom7.us.oracle.com/admin/wsapi/rest/3.0.1/PeerConnection/trustExchange?rackSerialNumber=1749XC302V&domainName=us.oracle.com&systemName=broom6&adminPublicKey=-----BEGIN+PUBLIC+KEY-----%0AMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAriyAQb%2BcTx2g0AK7qt6J%0Armp%2Bw%2BWwF6CnWsZAwzfJaGr4XEs30%2F4HrAZzSHKt62UQU3K32yAUR3ThZDA0%2BXo9%0Ajbqxi5lWR7p4NqmDWWqj26VsjY9PjOE%2FL82vrP1mJ2vfcD3DIKIzh3k5knoOzzT%2B%0A%2FxX08zqakHOGX0QNQs8GoRVV5VTgQKNtM%2FAdk5TruNfnpKq98XQII5PT%2BChHeX2n%0AdJETiIatBans4xsP8nPhdaquUbD%2B3e1rYCcFESIM5DB7oL6wyIpI2qXQeKORG%2F49%0AxNAVg1lJ8pQfMaIkLqh1hehIGJUL2m8WpCWUMDrO56%2Fxg81wuFwbi4LnOmNS%2FSeQ%0ARuGBMGF2WNVzuNhKbfpydH7aqekdfop44wtEFVSOAuUpokkXljV1m2Svax1t746H%0ArtNtJ7ioSaS2kcoLx14s2%2FhbyPFI0CXGX28QzH3ycu1cXQzyPC4Tl57KMDJe2urP%0AEsNLdPbeqprZE4JHzVLqL7ZzcXdsVy3YeV%2FaD1kQ0qAj%2BB3T%2BaTyCTu3J6d9FYPr%0AFgKo1bVWp8qij9G0ScllmZqXBSBBKJAA%2Bj%2BQQznaeE5VB%2BaBHB0aYwBH8myDR1B3%0Ao86d0tbSsgtXtD3Vwzb8pLTawLbkgHV72L4BwAwLAVGEXZmQwtPj9zufndTAtSxv%0ALATjknS%2FSO1UH5DpGe2ur6ECAwEAAQ%3D%3D%0A-----END+PUBLIC+KEY-----%0A&peerBootstrap=False",
  "message": "2785 > accept: */*2785 > accept-encoding: gzip, deflate 2785 > authorization: [redacted] 2785 > connection: keep-alive 2785 > content-length: 3859 2785 > content-type: application/json 2785 > date: Th-",
  "user": "1749XC302V",
  "success": "1",
  "log_type": "audit",
  "principalName": "1749XC302V",
  "sourceIP": "253.255.129.0"
}
ADMINISTRATION - /var/log/admin.log.0

Ce fichier journal enregistre des informations détaillées sur les commandes appelées, les tâches en arrière-plan, le statut du système, les erreurs d'exécution et les communications entre le service d'administration et d'autres services.

{"timestamp": "2025-09-25T20:58:18.939+0000", "podname": "admin-558fd59789-4ms7l", "levelname": "INFO", "classname": "", "methodname": "", "lineno": "", "thread": "WORKITEM_UPDATE_TASK(27)", "message": "UPDATE TASK SET RUNSTATUS='RUNNING', LASTSTARTTIME=ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000) WHERE NAME='WORKITEM_UPDATE_TASK' AND ((RUNSTATUS='STOPPED' AND COALESCE(LASTSTARTTIME, 0)<ROUND(UNIX_TIMESTAMP(CURTIME(4))*1000-150000)) || (COALESCE(LASTSTARTTIME, 0)<ROUND(UNIX_TIMESTAMP(CURTIME(4))*1000-450000)));"}