Consultation des données du journal du système

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

En savoir plus sur la consultation et l'utilisation des journaux dans les sections suivantes :

Utilisation de Grafana Explorer les interrogations

Les données des journaux système dans Private Cloud Appliance peuvent être interrogées, filtrées et affichées à l'aide des interrogations Grafana Explore.

Loki Logs

Loki utilise des étiquettes pour catégoriser les messages de journal. Une interrogation spécifie des étiquettes, et Loki affiche les messages du journal de service et de l'application qui correspondent aux sélections d'interrogation.

Les étiquettes sont des paires clé-valeur. Utilisez la procédure suivante pour sélectionner des étiquettes pour votre interrogation.

  1. Ouvrez la page d'accueil de Grafana.

  2. Ouvrez le volet Explorer.

    Dans la barre de menu verticale située sur le côté gauche de la page, cliquez sur Explorer (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 d'interrogation Loki s'affichent. Par exemple, un menu Log Browser est affiché en haut de la page.

  4. Interrogez et filtrez les journaux.

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

    Une fois que vous avez créé une interrogation, vous pouvez la sélectionner de nouveau dans la liste d'historique.

Options d'interrogation supplémentaires :

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

  • Historique des interrogations. Exécutez une interrogation qui a été exécutée précédemment, copiez ou supprimez l'interrogation, ajoutez un commentaire à l'interrogation ou définissez une étoile pour que vous puissiez utiliser le bouton Marqué pour lister uniquement les interrogations marquées. En haut de la liste de l'historique des interrogations, vous pouvez entrer une chaîne de recherche pour filtrer la liste et sélectionner le mode de tri de la liste.

  • exécution répétitive; Cliquez sur la flèche du bouton Run query (Exécuter l'interrogation) et sélectionnez un intervalle dans le menu. Pour arrêter les exécutions récurrentes, sélectionnez Désactivé en haut du menu.

Le graphique temporel est affiché sous la section du navigateur de journaux du volet Explorer. Sous le graphique temporel, les messages du journal correspondant à l'interrogation sont affichés.

Les messages sont codés en couleur à la fois dans le graphique temporel et dans la liste des messages pour indiquer si le message est informatif, un avertissement, une erreur ou autre.

Utilisez le bouton Type d'interrogation pour choisir d'afficher les résultats sur un intervalle de temps ou à un seul moment. Utilisez le bouton d'intervalle en haut de la page (voir l'icône d'horloge) pour définir l'intervalle.

Sélectionnez une partie du graphique temporel à zoomer pour vous concentrer sur une plus petite quantité de données. Pour effectuer un zoom arrière, utilisez le bouton de loupe en haut de la page à côté du bouton d'intervalle.

Dans la liste des messages, cliquez sur la flèche située à gauche de l'horodatage d'un message pour afficher toutes les étiquettes correspondant à ce message. Vous pouvez ensuite cliquer sur l'icône de loupe plus + pour ajouter cette étiquette aux résultats de l'interrogation ou sur l'icône de loupe moins - pour supprimer cette étiquette des résultats de l'interrogation. Notez que l'interrogation que vous avez entrée est modifiée.

Entrée d'une interrogation dans le champ de texte
  1. Dans le champ de texte à 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 une étiquette dans la liste.

    Vous devrez peut-être faire défiler la liste pour voir toutes les étiquettes, ou vous pouvez commencer à taper un nom d'étiquette pour filtrer la liste.

    L'étiquette sélectionnée est insérée dans l'interrogation dans le champ de texte, un signe égal est ajouté et une liste de valeurs pour cette étiquette apparaît.

  3. Sélectionnez une valeur dans la liste.

    Vous devrez peut-être faire défiler la liste pour voir toutes les valeurs, ou vous pouvez commencer à entrer un nom de valeur pour filtrer la liste.

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

  4. Si vous voulez filtrer davantage le résultat de l'interrogation, entrez une virgule.

    La liste des étiquettes apparaît de nouveau, suivie de la liste des valeurs après la sélection d'une étiquette.

  5. Exécutez l'interrogation.

    Entrez Shift+Enter ou cliquez sur le bouton Exécuter l'interrogation dans le coin supérieur droit du volet.

    Le graphique temporel et les messages de journal sont affichés sous les options de création d'interrogation.

Créer une interrogation complexe plus facilement

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

Un générateur d'interrogations s'affiche avec les étapes suivantes :

  1. Sélectionner des étiquettes.

    L'étape 1 affiche une rangée de boutons avec un nom d'étiquette sur chaque bouton. Lorsque vous cliquez sur l'un de ces boutons d'étiquette, une liste apparaît sous Étape 2 qui affiche les valeurs de cette étiquette.

    Vous pouvez cliquer sur plusieurs boutons d'étiquette. Si vous cliquez sur un autre bouton d'étiquette, la liste de valeurs de la nouvelle étiquette s'affiche avec la première liste de valeurs à l'étape 2.

    Lorsque vous cliquez sur un bouton d'étiquette déjà sélectionné, cette étiquette est supprimée de l'interrogation.

  2. Sélectionnez des valeurs pour les étiquettes sélectionnées.

    L'étape 2 affiche la liste des valeurs pour chaque étiquette sélectionnée à l'étape 1. Vous devrez peut-être faire défiler la liste pour voir toutes les valeurs possibles, ou vous pouvez commencer à entrer 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 plus d'une valeur dans une liste particulière. La sélection d'une valeur déjà sélectionnée supprime cette valeur de l'interrogation.

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

  3. Afficher le résultat de l'interrogation.

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

    Le graphique temporel et les messages de journal sont affichés sous les options de création d'interrogation.

    L'interrogation terminée s'affiche dans le champ à droite du bouton Log browser. Vous pouvez modifier l'interrogation dans le champ du navigateur de journaux et cliquer sur le bouton Exécuter l'interrogation pour afficher un nouveau résultat.

Journaux de vérification

Les journaux d'audit peuvent être consultés sous forme de catégories distinctes. Dans les listes du navigateur de journaux, vous pouvez sélectionner les étiquettes d'audit suivantes. Comme décrit dans Journaux Loki, entrez les interrogations affichées dans la liste suivante dans le champ de texte, ou sélectionnez job ou log dans la liste des étiquettes de journal, puis sélectionnez l'une des valeurs affichées dans la liste suivante. Voir aussi l'exemple d'interrogation personnalisée qui suit immédiatement cette liste.

  • job="vault-audit"

    Utilisez cette étiquette de journal pour filtrer les journaux de vérification de la grappe du service de chambre forte. Vault, un composant clé du service de clé secrète, conserve un journal détaillé de toutes les demandes et réponses. Vous pouvez voir chaque interaction authentifiée avec le service de chambre forte, y compris les erreurs. Comme ces journaux contiennent des informations sensibles, de nombreuses chaînes dans les demandes et les réponses sont hachées afin que les clés secrètes ne soient pas affichées en texte brut dans les journaux de vérification.

  • job="kubernetes-audit"

    Utilisez cette étiquette de journal pour filtrer les journaux de vérification de la grappe Kubernetes. La politique de vérification Kubernetes est configurée pour enregistrer 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 de vérification.

  • job="audit"

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

  • log="audit"

    Utilisez cette étiquette de journal pour filtrer les journaux de vérification de ZFS Storage Appliance.

En plus d'utiliser les étiquettes de journal de la liste, vous pouvez également créer des interrogations personnalisées. Par exemple, pour filtrer les journaux de vérification du service d'administration et du service d'API, entrez l'interrogation suivante dans le champ de texte du navigateur de journaux :

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

Pour l'exécuter, appuyez sur Shift+Enter ou cliquez sur le bouton Exécuter l'interrogation dans le coin supérieur droit du volet Explorer.

Journaux du service d'équilibrage de charge

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

  • job="pca-lbctl"

    Utilisez cette étiquette de journal pour filtrer les journaux du contrôleur d'équilibreur de charge. Vous pouvez consulter chaque demande de client qui est en cours de traitement. Ces journaux contiennent des paramètres d'API et contiendront des détails d'erreur, le cas échéant.

  • job="pcalbmgr"

    Utilisez cette étiquette de journal pour filtrer les journaux des instances d'équilibreur de charge (gestionnaire). Vous pouvez consulter 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 étiquettes de journal de la liste, vous pouvez également créer des interrogations personnalisées. Par exemple, vous pouvez afficher les journaux du contrôleur et du gestionnaire :

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

Pour l'exécuter, appuyez sur Shift+Enter ou cliquez sur le bouton Exécuter l'interrogation dans le coin supérieur droit du volet Explorer.

Utilisation du vecteur pour la diffusion en continu des journaux

Le service Vector vous permet d'envoyer les informations de journalisation de Private Cloud Appliance de Loki à un emplacement externe que vous spécifiez.

À partir de la version du logiciel Private Cloud Appliance 3.0.2-b1261765, Vector est installé, configuré et activé sur le boîtier par défaut.

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

Modifiez le fichier de configuration pour personnaliser la section sinks. Voir Informations de référence sur les puits pour le 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. À cet emplacement, 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 HTTP Event Collector et sur la configuration et l'utilisation de Splunk, voir la documentation sur Splunk.

La commande suivante indique le statut du pod de flux 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 du pod log-streamer-bc4d65d78-ndrsk, qui n'a qu'un seul conteneur. Pour plus d'informations sur la commande kubectl logs, voir Journaux kubectl sur le site Kubernetes.

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

Gestion des niveaux 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 lors de l'exécution, vous n'avez pas besoin d'enregistrer chaque détail par défaut. Par conséquent, vous pouvez réduire la journalisation globale par défaut des services, réduisant ainsi la quantité de stockage requise. La prise en charge des niveaux de journalisation varie selon le service.

Afficher les niveaux de journalisation

  • Pour voir 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 voir 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 voir le niveau de journalisation courant 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

Modification des niveaux de journalisation

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

    Note

    Exécutez getSupportedLogLevelOverrides serviceName=service pour rechercher le nom de l'enregistreur automatique 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
  • Pour supprimer 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 de vérification des services-conseils diffusés par vecteur

Private Cloud Appliance utilise la diffusion en continu vectorielle pour fournir un accès facile à un jeu de journaux de vérification.

Le format du journal de vérification est conforme à la définition documentée d'Oracle Cloud Infrastructure, stockant les événements pouvant faire l'objet d'une vérification avec une enveloppe standard et des données utiles propres au service. Pour plus d'informations sur le format OCI, voir Contenu d'un événement de journal de vérification.

Avec la version 3.0.2-b1483396 et les versions ultérieures du logiciel du contrôleur, les journaux de service suivants sont diffusés en continu via Vector.

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

  • La section identité du message d'événement affiche le compte d'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 est le seul inclus dans le flux de journaux.

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

Chaque demande adressée au serveur d'API est enregistrée en tant qu'entrée unique qui résume 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 dans 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 assure également le suivi de 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}
ADMINISTRATEUR - /var/log/audit.log.0

Ce fichier journal conserve un enregistrement de tous les appels de l'interface de ligne de commande et REST au 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"
}
ADMINISTRATEUR - /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, l'état 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)));"}