Configurer la collecte de journaux d'API REST
Oracle Log Analytics vous permet de configurer une collecte continue des journaux basée sur une API REST à partir des URL de point d'extrémité qui répondent avec des messages de journal. La source de journaux de l'API REST doit être configurée avec une API qui répond avec les messages de journal générés dans la période spécifiée dans la demande.
Il s'agit d'une méthode recommandée lorsque vous souhaitez automatiser la collecte continue des journaux à partir d'environnements, de plates-formes ou d'applications telles que les services OCI, Fusion Apps, les applications ERP ou toute autre application émettant des journaux au moyen d'une API. Des macros peuvent être utilisées dans la définition de source pour spécifier une heure de journal à partir de laquelle démarrer la collecte de journaux, fournir un décalage pour itérer et collecter des données sur les résultats de page d'un point d'extrémité de journal et collecter des journaux sur une fenêtre de collecte ou une période.
Flux global pour la collecte des journaux à l'aide d'une source basée sur une API REST
Voici les tâches de haut niveau pour la collecte des informations de journal au moyen d'une source basée sur une API REST :
-
Installez l'agent de gestion sur un hôte qui a un accès http ou https à votre serveur de point d'extrémité. Voir Configurer la collecte continue des journaux à l'aide de l'agent de gestion.
- Pour autoriser une connexion entre l'agent de gestion et la source d'API REST, configurez d'abord les données d'identification d'API dans le magasin de données d'identification de l'agent. Voir Données d'identification des sources des agents de gestion.
-
Créez l'entité dans Oracle Log Analytics pour représenter l'hôte émetteur de journaux. Voir Créer une entité pour représenter votre ressource émettrice de journaux.
-
Créez un analyseur approprié pour traiter les entrées de journal fournies en tant que réponse de l'API. Voir Créer un analyseur.
-
Créez une source d'API REST en définissant les points d'extrémité d'API REST. Voir Créer une source d'API REST
-
Associez l'entité à la source. Voir Configurer une nouvelle association source-entité.
Pour le flux de bout en bout d'ingestion des journaux de vérification Fusion Applications, voir Ingérer les journaux de vérification Fusion Applications.
Créer une source d'API REST
Oracle Log Analytics fournit déjà une source de journaux définie par Oracle pour la collecte des journaux de l'API REST. Vérifiez si vous pouvez utiliser la source d'API REST définie par Oracle disponible ou tout analyseur défini par Oracle. Si ce n'est pas le cas, procédez comme suit pour créer une source de journaux :
Avant de commencer, si vous devez créer un nouvel analyseur adapté à vos journaux, terminez-le. Voir Créer un analyseur.
-
Ouvrez le menu de navigation et cliquez sur Observabilité et gestion. Sous Log Analytics, cliquez sur Administration. La page Aperçu de l'administration s'ouvre.
Les ressources d'administration sont répertoriées dans le volet de navigation de gauche sous Ressources. Cliquez sur Sources.
-
La page Sources s'ouvre. Cliquez sur Créer une source.
La boîte de dialogue Créer une source s'affiche.
-
Dans le champ Nom, entrez le nom de la source de journaux.
-
Dans la liste Type de source, sélectionnez API REST.
-
Cliquez sur Type d'entité et sélectionnez le type qui identifie le mieux votre application.
-
Cliquez sur Analyseur et sélectionnez un analyseur approprié pour le type de journaux à collecter.
-
Dans l'onglet Points d'extrémité, cliquez sur Ajouter un point d'extrémité de journal ou sur Ajouter un point d'extrémité de liste pour plusieurs journaux selon vos besoins :
-
Pour fournir une URL de point d'extrémité de journal unique à l'aide de laquelle les journaux peuvent être collectés en continu, cliquez sur Ajouter un point d'extrémité de journal. La boîte de dialogue Add log endpoint s'ouvre.
Entrez les informations suivantes :
-
Entrez le nom du point d'extrémité du journal.
-
Construisez l'URL du journal pour collecter les journaux périodiquement. Voir URL du point d'extrémité du journal dans Types d'URL du point d'extrémité.
-
Sélectionnez la méthode d'API GET ou POST.
Si vous avez sélectionné POST, entrez les données utiles POST pour la méthode et sélectionnez le type de contenu de la demande dans
JSON
,Text
,Javascript
,HTML
etXML
. -
Facultativement, spécifiez l'URL du serveur mandataire de journal.
-
Facultativement, cliquez sur Afficher les en-têtes de demande pour développer la section, puis cliquez sur Ajouter pour fournir les en-têtes de demande sous la forme de paires Nom-Valeur.
-
Facultativement, cliquez sur Afficher les paramètres d'interrogation pour développer la section, puis cliquez sur Ajouter pour fournir des paramètres d'interrogation sous la forme de paires Nom-Valeur.
-
Dans la section Données d'identification, sélectionnez le type de données d'identification de journal. Voir Sélectionner le type de données d'identification pour la collecte de journaux d'API REST.
-
Pour valider les informations de configuration que vous avez entrées, cliquez sur Valider. S'il y a des erreurs, corrigez-les.
Cliquez sur Enregistrer les modifications.
-
-
Pour fournir une URL qui retourne une réponse JSON avec les informations pouvant être utilisées pour générer une liste d'URL de point d'extrémité de journal pour collecter plusieurs journaux, cliquez sur Ajouter un point d'extrémité de liste pour plusieurs journaux. La boîte de dialogue Ajouter un point d'extrémité de liste pour plusieurs journaux s'ouvre.
-
Onglet Configurer un point d'extrémité de liste :
-
Entrez le nom du point d'extrémité de liste de journaux.
-
Construisez l'URL de la liste de journaux pour obtenir les informations sur les fichiers journaux. Voir URL de point d'extrémité de liste de journaux dans Types d'URL de point d'extrémité. Par exemple :
https://example.org/fetchlogfiles_data
-
Facultativement, spécifiez l'URL du serveur mandataire de journal.
-
Sélectionnez la méthode d'API GET ou POST.
Si vous avez sélectionné POST, entrez les données utiles POST pour la méthode et sélectionnez le type de contenu de la demande dans
JSON
,Text
,Javascript
,HTML
etXML
. -
Facultativement, cliquez sur Afficher les en-têtes de demande pour développer la section, puis cliquez sur Ajouter pour fournir les en-têtes de demande sous la forme de paires Nom-Valeur.
-
Facultativement, cliquez sur Afficher les paramètres d'interrogation pour développer la section, puis cliquez sur Ajouter pour fournir des paramètres d'interrogation sous la forme de paires Nom-Valeur.
-
Dans la section Données d'identification, sélectionnez le type de données d'identification de journal. Voir Sélectionner le type de données d'identification pour la collecte de journaux d'API REST.
-
Cliquez sur Suivant.
-
-
Onglet Configurer un point d'extrémité de journal :
-
Indiquez l'exemple de réponse du point d'extrémité de liste de journaux. Il s'agit de l'exemple de réponse que vous obtiendriez pour le point d'extrémité de liste de journaux que vous avez fourni dans l'onglet précédent. Par exemple :
{ "totalSize": 4, "records": [ {"id": "firstId", "type": "firstType"}, {"id": "secondId", "type": "secondType"} ] }
Dans l'exemple ci-dessus, le chemin JSON
records[*].id
peut être utilisé dans l'URL du point d'extrémité. Pour plus de détails sur les variables de chemin JSON, voir Variables pour la collecte de journaux d'API REST. -
Entrez le nom du point d'extrémité du journal.
-
Construisez l'URL du journal pour collecter périodiquement les journaux en intégrant les clés de chemin JSON identifiées dans l'exemple de réponse au point d'extrémité de la liste de journaux. Voir URL du point d'extrémité du journal dans Types d'URL du point d'extrémité. Par exemple :
https://example.org/fetchLogs?time={START_TIME}&id={testLogListEP:$.records[*].id}
-
Facultativement, spécifiez l'URL du serveur mandataire de journal.
-
Sélectionnez la méthode d'API GET ou POST.
Si vous avez sélectionné POST, entrez les données utiles POST pour la méthode et sélectionnez le type de contenu de la demande dans
JSON
,Text
,Javascript
,HTML
etXML
. -
Facultativement, spécifiez l'URL du serveur mandataire de journal.
-
Facultativement, cliquez sur Afficher les en-têtes de demande pour développer la section, puis cliquez sur Ajouter pour fournir les en-têtes de demande sous la forme de paires Nom-Valeur.
-
Facultativement, cliquez sur Afficher les paramètres d'interrogation pour développer la section, puis cliquez sur Ajouter pour fournir des paramètres d'interrogation sous la forme de paires Nom-Valeur.
-
Dans la section Données d'identification, sélectionnez le type de données d'identification de journal. Voir Sélectionner le type de données d'identification pour la collecte de journaux d'API REST.
-
Cliquez sur Suivant.
-
-
Onglet Vérifier et ajouter : Les informations de configuration fournies dans les onglets précédents sont validées. Vérifiez la liste des URL à partir desquelles les journaux seront collectés.
S'il y a des erreurs, corrigez-les.
Cliquez sur Enregistrer.
-
-
-
Cliquez sur Créer une source.
Types d'URL de point d'extrémité
URL du point d'extrémité de liste de journaux : L'URL du point d'extrémité de liste de journaux doit retourner une réponse JSON contenant les informations pouvant être utilisées pour créer une liste d'URL de point d'extrémité de journal pour collecter les journaux. Spécifiez les variables de chemin JSON requises pour créer la liste des points d'extrémité de journal à partir de la réponse JSON. En outre, vous pouvez utiliser les macros {START_TIME}
et {CURR_TIME}
pour insérer dynamiquement les valeurs de temps correspondantes dans l'URL.
URL du point d'extrémité du journal : L'URL du point d'extrémité du journal est utilisée pour collecter des journaux à intervalles réguliers à partir d'un point d'extrémité d'API REST spécifique. Vous pouvez utiliser les macros {START_TIME}
, {CURR_TIME}
et {TIME_WINDOW}
pour insérer dynamiquement les valeurs de temps correspondantes dans l'URL. La macro {OFFSET}
peut être utilisée pour prendre en charge la pagination. Vous pouvez également utiliser des variables de chemin JSON à partir de la réponse de l'appel de point d'extrémité de liste de journaux pour remplacer des propriétés spécifiques.
{START_TIME}
: Pour spécifier l'heure à partir de laquelle les journaux doivent être collectés{OFFSET}
: Pour gérer la collecte de journaux paginée{CURR_TIME}
: Pour indiquer l'heure courante{TIME_WINDOW}
: Pour spécifier un intervalle ou une durée de collecte
Pour plus d'informations sur l'utilisation des macros, voir START_TIME Macro, CURR_TIME Macro, OFFSET Macro et TIME_WINDOW Macro.
Pour plus d'informations sur l'utilisation des variables de la réponse de point d'extrémité de liste de journaux qui peuvent être spécifiées dans l'URL du point d'extrémité de journal, des exemples de chemin JSON et l'utilisation de filtres de variable, voir Variables pour la collecte de journaux d'API REST.
Macro START_TIME
Utilisez la macro START_TIME
pour spécifier l'heure à partir de laquelle les journaux doivent être collectés.START_TIME
La macro peut être utilisée dans une URL de point d'extrémité, des paramètres de formulaire ou des données utiles POST.
L'exemple suivant montre l'URL du point d'extrémité qui collecte les journaux supérieurs à un horodatage spécifié par la macro START_TIME
:
https://example.org/fetchLogs?sortBy=timestamp&sortOrder=ascending&filter=timestamp+gt+{START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSSZ}
Syntaxe :
{START_TIME<+nX>:<epoch | timestamp format supported by SimpleDateFormat java class>.TZ=<timezone name>}
-
n est la valeur d'heure de l'intervalle de dates. X est exprimé en jours (D), heures (h), minutes (m), mois (M), année (Y).
-
+nX
est le nombre de jours, d'heures, de minutes, de mois ou d'années à ajouter à l'heure de début. C'est facultatif. Par exemple, +3D. -
Les formats d'heure pris en charge sont les mêmes que ceux de la classe java SimpleDateFormat. Le format d'heure par défaut est
yyyy-MM-dd'T'HH:mm:ss.SSSZ
. Par exemple, 2001-07-04T12 :08 :56.235-0700.La spécification du format
epoch
ou de l'heure est facultative. Si epoch est fourni, la macro est remplacée par une valeur milliseconde epoch.Pour les formats d'horodatage pris en charge par SimpleDateFormat, voir Plate-forme Java Standard, éd. 8 : Classe SimpleDateFormat.
-
TZ
sert à indiquer le fuseau horaire de l'horodatage. Il n'est pas applicable si l'époque est déjà fournie. Le format pris en charge est le même que les ID à 3 lettres de la classe java TimeZone, par exemple UTC. -
Vous pouvez inclure plusieurs instances de cette macro dans l'URL.
-
Exemples :
{START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSS.TZ=UTC}
{START_TIME:epoch}
La valeur de la macro START_TIME
est déterminée de l'une des façons suivantes :
-
Lorsque la collecte commence pour la première fois pour un point d'extrémité,
START_TIME
est la date historique basée sur la propriété de collecte d'agent Données historiques. La valeur par défaut de cette propriété est30 days
, c'est-à-dire que la valeur de l'horodatage est 30 jours avant l'horodatage courant. -
Si le champ Heure est défini dans l'analyseur, dans les collectes de journaux suivantes, la valeur de
START_TIME
est la valeur maximale de la valeur d'horodatage extraite dans la collecte de journaux précédente. -
Si le champ Heure n'est pas extrait des enregistrements de journal en le définissant dans l'analyseur, l'horodatage courant est la valeur de
START_TIME
.
Si l'API comporte des filtres, utilisez greater than equal to
au lieu de greater than
pour vous assurer que tous les enregistrements de journal ayant le même horodatage sont chargés.
Macro CURR_TIME
Utilisez la macro CURR_TIME
pour insérer l'heure courante dans l'URL du point d'extrémité de l'API REST, les paramètres de formulaire et les données utiles POST.
L'exemple suivant montre l'URL du point d'extrémité qui utilise la macro CURR_TIME
dans le paramètre d'interrogation :
https://example.org/fetchLogs?sortBy=timestamp&sortOrder=ascending&time={CURR_TIME:yyyy-MM-dd'T'HH:mm:ss.SSSZ}
-
Le format d'utilisation de la macro est le même que celui de la macro
START_TIME
. -
Vous pouvez inclure plusieurs instances de cette macro dans l'URL.
Macro OFFSET
Utilisez la macro OFFSET
pour les points d'extrémité qui fournissent des réponses paginées ou pour gérer le comportement de décalage dans une réponse d'API. La macro OFFSET
peut être utilisée dans l'URL du point d'extrémité de l'API REST, les paramètres de formulaire et les données utiles POST pour extraire plusieurs pages ou fragments dans un seul cycle de collecte de journaux.
Format : {OFFSET(<start value>, <increment>)}
-
La macro
OFFSET
est utilisée pour appeler et collecter des données de manière itérative sur des résultats paginés d'un point d'extrémité de journal spécifique afin d'obtenir tous les enregistrements disponibles. L'appel de demande d'API REST initial commence par la valeur de début et est incrémenté à chaque appel suivant de la valeur incrément. Ces appels récursifs basés sur un index sont arrêtés lorsqu'aucune autre entrée de journal n'est trouvée. Le décalage n'est pas reporté au cycle de collecte suivant. Elle commence par la valeur par défaut ou initiale de chaque cycle de collecte. -
Dans le format ci-dessus, la valeur de début est la valeur initiale de l'index et la valeur par défaut est
0
. Il est facultatif de spécifier une valeur de début.Valeurs possibles : Nombre entier positif incluant 0
-
Dans le format ci-dessus, incrément spécifie la valeur à ajouter à la valeur de début lors des appels suivants. La valeur par défaut est
1
. Il est facultatif de spécifier la valeur incrément.Valeurs possibles : Entier positif uniquement. Exclusions 0.
-
Vous ne pouvez inclure qu'une seule instance de cette macro dans l'URL.
Les exemples suivants montrent différentes façons d'utiliser la macro OFFSET
:
-
{OFFSET}
Utilise les valeurs par défaut start value (Valeur de début) = 0, incrément = 1.
-
{OFFSET(5)}
valeur de début = 5, incrément = 1 (par défaut)
-
{OFFSET(5,2)}
valeur de début = 5, incrément = 2
L'exemple suivant montre l'URL du point d'extrémité qui utilise la macro OFFSET
:
https://example.org/fetchLogs?startIndex={OFFSET(0,1000)}&count=1000
Dans l'exemple ci-dessus, OFFSET(0,1000)
indique que la valeur de début est égale à 0 lors du premier appel, puis lors des appels suivants, incrémentée de 1000. Par conséquent, lorsque la macro OFFSET
est interprétée, l'URL du point d'extrémité pour plusieurs appels est la suivante :
Premier appel : https://example.org/fetchLogs?startIndex=0&count=1000
Deuxième appel : https://example.org/fetchLogs?startIndex=1000&count=1000
Macro TIME_WINDOW
Utilisez la macro TIME_WINDOW
pour spécifier l'intervalle de collecte pendant lequel les journaux doivent être collectés. Il peut être utilisé dans l'URL du point d'extrémité de l'API REST pour extraire les journaux en quelques minutes, heures ou jours, quel que soit l'intervalle de collecte de l'agent. Par exemple, si la fenêtre de temps est 1d (un jour) et que l'intervalle de l'agent est de 10 minutes, la collecte de journaux suivante n'a lieu qu'après une journée.
L'exemple suivant définit l'intervalle de collecte de journaux pendant 6 heures en spécifiant TIME_WINDOW
comme 6h
dans l'URL du point d'extrémité :
https://example.org/fetchLogs?timewindow={TIME_WINDOW(6h)}
Format : {TIME_WINDOW(<number><timeunit>)}
Dans le format ci-dessus :
-
number : Numéro de chiffre supérieur à zéro.
-
unité de temps :
h
pour les heures,d
pour les jours,m
pour les minutes. La valeur par défaut estd
(jours).
Assurez-vous que l'intervalle de collecte de l'agent est inférieur à la fenêtre de temps fournie. Vous ne pouvez utiliser la macro TIME_WINDOW
qu'une seule fois dans le point d'extrémité.
Variables pour la collecte de journaux de l'API REST
Utilisez les variables pour remplacer dynamiquement les attributs fournis dans le cadre de la réponse par le point d'extrémité de liste de journaux dans la demande du point d'extrémité de journal lors de l'exécution. Les variables peuvent être utilisées dans l'URL, les paramètres de formulaire, les données utiles POST ou les valeurs d'en-tête de demande HTTP du point d'extrémité de journal.
Si l'appel au point d'extrémité de liste de journaux échoue, les messages de journal du point d'extrémité de journal ne sont pas collectés en raison de la dépendance.
Format de la variable dans le point d'extrémité de journal :
{<log_list_endpoint_name>:<json path(<filter_field_name>='<value>')>}
-
Dans le format ci-dessus,
log_list_endpoint_name
est le nom du point d'extrémité de liste de journaux.Le filtre
(<filter_field_name>=<value>)
est facultatif. Seul l'attribut correspondant àfilter_field_name
est extrait de la réponse JSON du point d'extrémité de liste de journaux et utilisé dans le point d'extrémité de journal. Par exemple :https://www.example.com/log/{foo:$.items[*].links[*].href(rel='self')}
Pour un exemple détaillé du filtre, voir Exemple de filtre.
-
Seul le type de contenu JSON est pris en charge pour extraire les valeurs de propriété.
-
La même variable peut être spécifiée plusieurs fois.
-
Les variables peuvent uniquement faire référence à des points d'extrémité de liste valides et non à des points d'extrémité de journal.
-
Les formats Chemin JSON suivants sont pris en charge : Chemin JSON simple, Chemin JSON de tableau et Chemin JSON de plusieurs tableaux.
Chemin JSON simple
Si la réponse JSON comporte plusieurs niveaux d'éléments imbriqués, vous pouvez spécifier le chemin JSON en tant que notation spéciale des noeuds et leurs connexions aux noeuds enfants suivants.
Pour l'exemple suivant, utilisez le chemin JSON $.foo.abc
pour obtenir result
comme sortie :
{
"foo" :
{
"abc" : "result"
}
}
Pour l'exemple suivant, utilisez le chemin JSON $.*.id
pour obtenir la sortie ["id1", "id3"]
ou $.*.*
pour obtenir la sortie ["id1", "id2", "id3"]
:
{
"foo" : {
"id" : "id1"
},
"foo2" : {
"ID" : "id2",
"id" : "id3"
}
}
Pour l'exemple suivant, utilisez le chemin JSON $.foo.*
pour obtenir la sortie ["id1", "value1"]
:
{
"foo" : {
"id" : "id1",
"abcd" : "value1"
},
"foo2" : {
"id" : "id2"
}
}
Chemin JSON de tableau
Si la réponse JSON comporte un tableau d'objets à partir duquel les données doivent être extraites, spécifiez le nom de l'objet de tableau et utilisez []
pour extraire les éléments appropriés dans cet objet de tableau. Par exemple, la réponse JSON suivante comporte deux tableaux d'objets records
et item
:
{
"records": [
{"id": "firstId", "type":"firstType"},
{"id":"secondId", "type":"secondType"}
],
"items": [
{"name":"firstName", "field":"value"},
{"name":"secondName", "field":"value"},
{"name":"thirdName", "field":"value"}
]
}
-
Spécifiez le chemin JSON
$.records[0].id
pour extrairefirstId
en tant que sortie,$.records[1].id
pour extrairesecondId
en tant que sortie ou$.records[*].id
pour extraireid
de tous les objets JSON. Dans le dernier cas, la sortie est une liste de chaînes["firstId", "secondId"]
. -
Vous pouvez également spécifier des conditions dans le chemin JSON à l'aide de
()
. Dans l'exemple ci-dessus, pour extraireid
uniquement desrecords
donttype
estfirstType
, utilisez le chemin JSON$.records[*].id(type='firstType')
.
Chemin JSON de plusieurs tableaux
Prenons l'exemple suivant :
Pour l'URL du point d'extrémité de la liste de journaux getlist
:
https://www.example.com/url_list
Réponse JSON au point d'extrémité de liste de journaux :
{
"records": [ { "id": "firstId", "type": "firstType" }, { "id": "secondId", "type": "secondType" } ],
"items": [ { "name": "firstName", "field": "value" }, { "name": "secondName", "field": "value" }, { "name": "thirdName", "field": "value" } ]
}
URL du point d'extrémité du journal (en référence aux variables de getlist
) :
https://www.example.com/{getlist:$.records[*].id}/{getlist:$.items[*].name}
Avec les variables {getlist:$.records[*].id}
et {getlist:$.items[*].name}
, l'agent génère les points d'extrémité de journal ci-dessous avec toutes les combinaisons des deux champs de tableau ["firstId", "secondId"]
et ["firstName", "secondName", "thirdName"]
:
-
https://www.example.com/firstId/firstName
-
https://www.example.com/secondId/firstName
-
https://www.example.com/firstId/secondName
-
https://www.example.com/secondId/secondName
-
https://www.example.com/firstId/thirdName
-
https://www.example.com/secondId/thirdName
Exemple de filtre
Tenez compte de la réponse JSON suivante à partir du point d'extrémité de liste de journaux foo
:
{
"items": [
{
"BusinessEventCode": "JournalBatchApproved",
"CreationDate": "2019-07-27T17:19:19.261+00:00",
"links": [
{
"rel": "self",
"href": "/erpBusinessEvents/self/100100120766717"
},
{
"rel": "canonical",
"href": "/erpBusinessEvents/rel/100100120766717"
}
]
}
]
}
Considérons maintenant l'exemple de point d'extrémité de journal suivant :
https://www.example.com/log/{foo:$.items[*].links[*].href(rel='self')}
Dans l'exemple ci-dessus, le paramètre de chemin est remplacé par l'élément de tableau $.items[*].links[*].href
à partir de la réponse JSON du point d'extrémité de liste de journaux foo
et une condition supplémentaire est spécifiée pour sélectionner uniquement rel='self'
.
Pour la réponse JSON ci-dessus, l'agent génère le point d'extrémité de journal suivant :
https://www.example.com/log/erpBusinessEvents/self/100100120766717
Sélectionner le type de données d'identification pour la collecte de journaux de l'API REST
Pour autoriser une connexion entre l'agent et la source d'API REST, configurez d'abord les données d'identification d'API dans le magasin de données d'identification de l'agent. Après avoir configuré les données d'identification sources dans le service d'agent de gestion côté agent, vous pouvez utiliser ces informations lors de la création de la source de journaux de l'API REST.
Pour configurer les données d'identification sources dans le service d'agent de gestion afin de permettre à l'agent de gestion de collecter des données à partir de votre hôte émetteur de journaux, voir Données d'identification sources de l'agent de gestion.
Lors de l'ajout du point d'extrémité de journal ou du point d'extrémité de liste de journaux, fournissez les informations de données d'identification dans le flux de travail en sélectionnant le type de données d'identification de journal. Sélectionnez l'une des options suivantes :
- Aucune
- Authentification de base : Spécifiez le nom des données d'identification de journal des données d'identification que vous avez créées dans le service d'agent de gestion.
- Jeton statique : Spécifiez le nom des données d'identification de journal des données d'identification que vous avez créées dans le service d'agent de gestion.
- Jeton dynamique (OAuth 2.0) :
Spécifiez le nom des données d'identification de jeton du jeton que vous avez créé dans le service d'agent de gestion. En outre, fournissez les informations sur le jeton, telles que Nom du point d'extrémité du jeton, URL du point d'extrémité du jeton, Type d'octroi et, facultativement, Portée.
Si le mandataire de jeton est identique à celui du point d'extrémité de journal, laissez la case Mandataire identique au point d'extrémité de journal activée. Dans le cas contraire, désactivez la case à cocher et indiquez l'URL du serveur mandataire de jeton.
Mappage des types de données d'identification au type d'authentification :
Type d'authentification | Type de données d'identification chez l'agent de gestion | Propriétés des données d'identification |
---|---|---|
Autorisation de base | HTTPSBasicAuthCreds | HTTPSUserName, HTTPSPassword |
HTTPSCreds | HTTPSUserName, HTTPSPassword, propriétés du magasin de certificats SSL SSL | |
Jeton statique | HTTPSTokenCreds | HTTPSToken, HTTPSTokenType, propriétés du magasin de certificats SSL (facultatif) |
Jeton dynamique | HTTPSBasicAuthCreds | HTTPSUserName, HTTPSPassword |
HTTPSCreds | HTTPSUserName, HTTPSPassword, propriétés du magasin de certificats SSL SSL |
Les informations suivantes sont incluses dans les propriétés du magasin de certificats SSL :
-
"
ssl_trustStoreType
" : Type de magasin, par exempleJKS
. -
"
ssl_trustStoreLocation
" : le chemin du magasin de certificats SSL -
"
ssl_trustStorePassword
" : mot de passe du magasin de certificats SSL (facultatif)
Notez les aspects suivants concernant les attributs dans le JSON des données d'identification :
-
source
: La valeur doit être lacollector.la_rest_api -
name
: Tout nom approprié pour les données d'identification -
type
: Il doit s'agir de l'une des valeurs spécifiées sous la colonne Type de données d'identification chez l'agent de gestion dans la table des types de données d'identification ci-dessus.
Voir Exemples de données d'identification JSON.
Exemples de données d'identification JSON
Exemple d'authentification de base avec nom d'utilisateur et mot de passe sur HTTPS avec hôte approuvé :
{
"source":"lacollector.la_rest_api",
"name":"ExampleRestAPICreds",
"type":"HTTPSBasicAuthCreds",
"description":"These are HTTPS (BasicAuth) credentials.",
"properties":
[
{ "name":"HTTPSUserName", "value":"CLEAR[admin]" },
{ "name":"HTTPSPassword", "value":"CLEAR[myHTTPSPassword]" }
]
}
Exemple d'authentification de base avec des certificats SSL, un nom d'utilisateur et un mot de passe sur HTTPS en fournissant explicitement des certificats :
{
"source":"lacollector.la_rest_api",
"name":"ExampleRestAPICreds",
"type":"HTTPSCreds",
"description":"These are HTTPS (BasicAuth) credentials.",
"properties":
[
{ "name":"HTTPSUserName", "value":"CLEAR[admin]" },
{ "name":"HTTPSPassword", "value":"CLEAR[myHTTPSPassword]" },
{ "name":"ssl_trustStoreType", "value":"JKS" },
{ "name":"ssl_trustStoreLocation", "value":"/scratch/certs/mycert.keystore" },
{ "name":"ssl_trustStorePassword", "value":"mySSLPassword" }
]
}
Exemple de jeton sur HTTPS avec un hôte approuvé :
{
"source":"lacollector.la_rest_api",
"name":"ExampleRestAPICreds",
"type":"HTTPSTokenCreds",
"description":"These are HTTPS (Token) credentials.",
"properties":
[
{ "name": "HTTPSToken", "value": "CLEAR[token value]" },
{"name": "HTTPSTokenType", "value": "CLEAR[Bearer]" }
]
}
Exemple de jeton sur HTTPS avec des certificats fournis explicitement :
{
"source":"lacollector.la_rest_api",
"name":"ExampleRestAPICreds",
"type":"HTTPSTokenCreds",
"description":"These are HTTPS (Token) credentials.",
"properties":
[
{ "name": "HTTPSToken", "value": "CLEAR[token value]" },
{"name": "HTTPSTokenType", "value": "CLEAR[Bearer]" },
{ "name":"ssl_trustStoreType", "value":"JKS" },
{ "name":"ssl_trustStoreLocation", "value":"/scratch/certs/mycert.keystore" },
{ "name":"ssl_trustStorePassword", "value":"mySSLPassword" }
]
}
Ingérer les journaux de vérification Fusion Applications
Suivez ces étapes pour collecter les journaux d'audit Fusion Applications. Pour obtenir la liste des sources définies par Oracle disponibles pour Fusion Applications, voir Sources définies par Oracle.
Rubriques :
- Conditions requises
- Configurer la collecte du journal de vérification à partir des applications Fusion
Conditions requises
-
Présentation des API des journaux de vérification Fusion Applications : Pour plus de détails sur l'utilisation et les fonctionnalités de l'API des journaux de vérification, voir la documentation sur l'API REST Fusion Applications.
-
Accès aux applications Fusion : Vous devez disposer de données d'identification et de privilèges valides pour accéder à l'instance Fusion Applications.
-
Identifier les points d'extrémité et le mandataire suivants (facultatif) :
login_url
: URL de base de votre instance Fusion Applicationspod_url
: URL de base de votre instance Fusion Applicationsproxy_url
: (Facultatif) URL qui envoie une demande au serveur mandataire
Pour plus de détails sur les URL, voir ID document 2661308.1 dans Oracle My Support.
- Accès à l'API REST Fusion Applications : Assurez-vous que l'accès à l'API est activé et que les rôles/privilèges requis sont affectés.
Configurer la collecte du journal de vérification à partir des applications Fusion
-
Valider l'URL de base Fusion Applications :
- Validez les données d'identification Fusion Applications en vous connectant à l'interface utilisateur.
- Au besoin, analysez les appels de trace réseau pour valider l'URL de base.
- Assurez-vous que l'accès à l'API de vérification est activé.
-
Créer les politiques IAM requises : Autoriser la collecte continue des journaux à l'aide des agents de gestion
-
Installez l'agent de gestion sur un hôte qui a un accès http ou https à votre instance/serveur Fusion Applications. Assurez-vous que le plugiciel Log Analytics est déployé pendant l'installation. Voir installer des agents de gestion.
-
Configurer les données d'identification d'API dans le magasin de données d'identification de l'agent :
L'emplacement du répertoire /bin dépend du mode de déploiement de l'agent de gestion :
-
Pour les agents de gestion s'exécutant sur des instances de calcul au moyen du plugiciel Oracle Cloud Agent, le script se trouve à l'adresse
/var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/bin
. -
Pour les agents de gestion que vous avez installés manuellement, le script se trouve à l'adresse
/opt/oracle/mgmt_agent/agent_inst/bin
.
Naviguez jusqu'au répertoire /bin approprié pour votre configuration afin de créer le fichier JSON de données d'identification. L'exemple suivant présente les valeurs fournies dans le fichier fapps.json :
{ "source": "lacollector.la_rest_api", "name": "FA-CREDS", "type": "HTTPSBasicAuthCreds", "description": "These are HTTPS (BasicAuth) credentials.", "properties": [ { "name": "HTTPSUserName", "value": "USER" }, { "name": "HTTPSPassword", "value": "PASS" } ] }
Ajoutez les données d'identification FA-CREDS au magasin de données d'identification de l'agent :
cat fapps.json | ./credential_mgmt.sh -s logan -o upsertCredentials
Pour plus de détails sur la configuration des données d'identification d'API dans le magasin de données d'identification de l'agent, voir Données d'identification sources de l'agent de gestion.
-
-
Vérifiez si le point d'extrémité de l'API Fusion Applications peut être atteint à partir de l'instance où l'agent est installé. Vous pouvez utiliser des outils tels que curl pour effectuer la vérification.
-
Créer une entité : Créez une entité de type
Oracle Fusion Applications
et ajoutez des valeurs de propriétés pourlogin_url
etpod_url
. Si nécessaire, ajoutez également la valeur pourproxy_url
. Voir Créer une entité pour représenter votre ressource émettrice de journaux. -
Configurer la source : Identifiez une source définie par Oracle appropriée pour les journaux de vérification Fusion Applications que vous pouvez utiliser. Si nécessaire, vous pouvez créer un double de la source existante et la modifier. Voir Modifier la source.
- Assurez-vous que les données d'identification sont référencées correctement dans le point d'extrémité de journal de votre source.
- Ajoutez un mandataire aux points d'extrémité de journal, si nécessaire.
-
Programmer la collecte de données côté agent : Associez la source à l'entité pour programmer la collecte de données. Utilisez l'agent de gestion pour appeler périodiquement les API de vérification Fusion Applications et pousser les données vers Log Analytics. Voir Configurer une nouvelle association source-entité.
-
Vérifier et valider dans l'explorateur de journaux : Vérifiez que les journaux sont collectés et analysés correctement dans l'explorateur de journaux. Voir Visualiser les données à l'aide de graphiques et de contrôles.