Configurar Coleta de Logs da API REST

O Oracle Log Analytics permite que você configure a coleta de logs contínua baseada em API REST de URLs de pontos finais que respondem com mensagens de log. A origem de log da API REST deve ser configurada com uma API que responda com as mensagens de log geradas dentro do período especificado na solicitação.

Esse é um método recomendado quando você deseja automatizar a coleta contínua de logs de ambientes, plataformas ou aplicativos como serviços da OCI, Fusion Apps, aplicativos ERP ou quaisquer outros aplicativos que emitem logs por meio de uma API. Há macros disponíveis que podem ser usadas na definição de origem para especificar um horário de log do qual iniciar sua coleta de logs, fornecer um deslocamento para iterar e coletar dados sobre resultados de página de um ponto final de log e coletar logs sobre uma janela de coleta ou um período.

Fluxo Geral para Coletar Logs Usando a Origem Baseada na API REST

Estas são as tarefas de alto nível para coletar informações de log por meio da origem baseada na API REST:

Para obter um fluxo completo de ingestão de Logs de Auditoria do Fusion Applications, consulte Ingestão de Logs de Auditoria do Fusion Applications.

Criar Origem da API REST

O Oracle Log Analytics já fornece a origem de log definida pela Oracle para coleta de logs da API REST. Verifique se você pode usar a origem de API REST definida pela Oracle disponível ou qualquer parser definido pela Oracle. Caso contrário, use as seguintes etapas para criar uma nova origem de log:

Antes de começar, se você precisar criar um novo parser adequado para seus logs, conclua-o. Consulte Criar um Parser.

  1. Abra o menu de navegação e clique em Observabilidade e Gerenciamento. Em Log Analytics, clique em Administração.

    Os recursos administrativos são listados no painel esquerdo de navegação em Administração. Clique em Origens.

  2. A página Origens é aberta. Clique em Criar Origem.

    Isso exibe a caixa de diálogo Criar Origem.

  3. No campo Nome, informe o nome da origem de log.

  4. Na lista Tipo de Origem, selecione REST API.

  5. Clique em Tipo de Entidade e selecione o tipo que melhor identifica sua aplicação.

  6. Clique em Parser e selecione um parser adequado para o tipo de logs que você deseja coletar.

  7. Na guia Pontos Finais, clique em Adicionar ponto final de log ou Adicionar ponto final de lista para vários logs, dependendo do seu requisito:

    • Para fornecer um único URL de ponto final de log usando o qual os logs podem ser coletados continuamente, clique em Adicionar ponto final de log. A caixa de diálogo Adicionar ponto final de log é aberta.

      Forneça as seguintes informações:

      1. Informe o Nome do ponto final do log.

      2. Construa o URL de Log para coletar os logs periodicamente. Consulte URL do Ponto Final de Log em Tipos de URL do Ponto Final.

      3. Selecione o método de API GET ou POST.

        Se você tiver selecionado POST, digite o payload POST para o método e selecione o tipo de conteúdo da solicitação em JSON, Text, Javascript, HTML e XML.

      4. Opcionalmente, especifique o URL do servidor proxy de log.

      5. Opcionalmente, clique em Mostrar cabeçalhos de solicitação para expandir a seção e clique em Adicionar para fornecer qualquer cabeçalho de solicitação no formato de pares Nome-Valor.

      6. Opcionalmente, clique em Mostrar parâmetros de consulta para expandir a seção e clique em Adicionar para fornecer qualquer parâmetro de consulta no formato de pares Nome-Valor.

      7. Na seção Credenciais, selecione o Tipo de credencial de log. Consulte Selecionar o Tipo de Credencial para Coleta de Logs da API REST.

      8. Para validar as informações de configuração que você informou, clique em Validar. Se houver erros, corrija-os.

        Clique em Salvar Alterações.

    • Para fornecer um URL que retorne uma resposta JSON com as informações que podem ser usadas para gerar uma lista de URLs de ponto final de log para coletar vários logs, clique em Adicionar ponto final de lista para vários logs. A caixa de diálogo Adicionar ponto final da lista para vários logs é aberta.

      1. Guia Configurar ponto final da lista:

        • Informe o Nome do ponto final da lista de logs.

        • Construa o URL da lista de logs para obter as informações sobre os arquivos de log. Consulte URL do Ponto Final da Lista de Logs em Tipos de URL do Ponto Final. Por exemplo:

          https://example.org/fetchlogfiles_data
        • Opcionalmente, especifique o URL do servidor proxy de log.

        • Selecione o método de API GET ou POST.

          Se você tiver selecionado POST, digite o payload POST para o método e selecione o tipo de conteúdo da solicitação em JSON, Text, Javascript, HTML e XML.

        • Opcionalmente, clique em Mostrar cabeçalhos de solicitação para expandir a seção e clique em Adicionar para fornecer qualquer cabeçalho de solicitação no formato de pares Nome-Valor.

        • Opcionalmente, clique em Mostrar parâmetros de consulta para expandir a seção e clique em Adicionar para fornecer qualquer parâmetro de consulta no formato de pares Nome-Valor.

        • Na seção Credenciais, selecione o Tipo de credencial de log. Consulte Selecionar o Tipo de Credencial para Coleta de Logs da API REST.

        • Clique em Próximo.

      2. Guia Configurar ponto final de log:

        • Informe o Exemplo de resposta do endpoint da lista do log. Este é o exemplo da resposta que você obteria para o ponto final da lista de logs que você forneceu na guia anterior. Por exemplo:

          { "totalSize": 4, "records": [ {"id": "firstId", "type": "firstType"}, {"id": "secondId", "type": "secondType"} ] }

          No exemplo acima, o caminho records[*].id do JSON pode ser usado no URL do ponto final. Para obter mais detalhes sobre variáveis de caminho JSON, consulte Variáveis para Coleta de Logs da API REST.

        • Informe o Nome do ponto final do log.

        • Construa o URL de Log para coletar os logs periodicamente, incorporando as chaves de caminho JSON identificadas na resposta de exemplo ao ponto final da lista de logs. Consulte URL do Ponto Final de Log em Tipos de URL do Ponto Final. Por exemplo:

          https://example.org/fetchLogs?time={START_TIME}&id={testLogListEP:$.records[*].id}
        • Opcionalmente, especifique o URL do servidor proxy de log.

        • Selecione o método de API GET ou POST.

          Se você tiver selecionado POST, digite o payload POST para o método e selecione o tipo de conteúdo da solicitação em JSON, Text, Javascript, HTML e XML.

        • Opcionalmente, especifique o URL do servidor proxy de log.

        • Opcionalmente, clique em Mostrar cabeçalhos de solicitação para expandir a seção e clique em Adicionar para fornecer qualquer cabeçalho de solicitação no formato de pares Nome-Valor.

        • Opcionalmente, clique em Mostrar parâmetros de consulta para expandir a seção e clique em Adicionar para fornecer qualquer parâmetro de consulta no formato de pares Nome-Valor.

        • Na seção Credenciais, selecione o Tipo de credencial de log. Consulte Selecionar o Tipo de Credencial para Coleta de Logs da API REST.

        • Clique em Próximo.

      3. Guia Revisar e adicionar: As informações de configuração fornecidas nas guias anteriores são validadas. Verifique a lista de URLs da qual os logs serão coletados.

        Se houver erros, corrija-os.

        Clique em Salvar.

  8. Clique em Criar Origem.

Tipos de URL do Ponto Final

URL do Ponto Final da Lista de Logs: O URL do ponto final da lista de logs deve retornar uma resposta JSON com as informações que podem ser usadas para construir uma lista de URLs de ponto final de log para coletar os logs. Especifique as variáveis de caminho JSON necessárias para criar a lista de pontos finais de log com base na resposta JSON. Além disso, você pode usar as macros {START_TIME} e {CURR_TIME} para inserir os valores de tempo correspondentes dinamicamente no URL.

URL do Ponto Final do Log: O URL do ponto final do log é usado para coletar logs de um ponto final específico da API REST em intervalos regulares. Você pode usar as macros {START_TIME}, {CURR_TIME} e {TIME_WINDOW} para inserir os valores de tempo correspondentes dinamicamente no URL. A macro {OFFSET} pode ser usada para suportar paginação. Você também pode usar variáveis de caminho JSON da resposta da chamada de ponto final da lista de logs para substituir propriedades específicas.

  • {START_TIME}: Para especificar o horário em que os logs devem ser coletados
  • {OFFSET}: Para tratar a coleta de logs paginada
  • {CURR_TIME}: Para fornecer o horário atual
  • {TIME_WINDOW}: Para especificar um intervalo ou duração de coleta

Para obter mais informações sobre como usar as macros, consulte START_TIME Macro, CURR_TIME Macro, OFFSET Macro e TIME_WINDOW Macro.

Para obter mais informações sobre como usar as variáveis da resposta do ponto final da lista de logs que podem ser especificadas no URL do ponto final do log, exemplos de caminho JSON e uso de filtros de variáveis, consulte Variáveis para Coleta de Logs da API REST.

START_TIME Macro

Use a macro START_TIME para especificar o horário a partir do qual os logs devem ser coletados. A macro START_TIME pode ser usada em um URL de ponto final, parâmetros de form ou payload POST.

O exemplo a seguir mostra o URL do ponto final que coleta logs com mais de um timestamp especificado pela macro START_TIME:

https://example.org/fetchLogs?sortBy=timestamp&sortOrder=ascending&filter=timestamp+gt+{START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSSZ}

Sintaxe:

{START_TIME<+nX>:<epoch | timestamp format supported by SimpleDateFormat java class>.TZ=<timezone name>}
  • n é o valor de hora do intervalo de datas. X é expresso em Dias (D), Horas (h), Minutos (m), Meses (M), Ano (Y).

  • +nX é o número de dias, horas, minutos, meses ou anos para adicionar ao horário inicial. É opcional. Por exemplo, +3D.

  • Os formatos de hora suportados são os mesmos da classe java SimpleDateFormat. O formato de hora padrão é yyyy-MM-dd'T'HH:mm:ss.SSSZ. Por exemplo, 2001-07-04T12:08:56.235-0700.

    A especificação do formato epoch ou de hora é opcional. Se a época for fornecida, a macro será substituída pelo valor de milissegundo da época.

    Para saber os formatos de timestamp suportados por SimpleDateFormat, consulte Java Platform Standard Ed. 8: Class SimpleDateFormat.

  • TZ é para fornecer o fuso horário do timestamp. Não é aplicável se a época já foi fornecida. O formato suportado é o mesmo que os IDs de 3 letras na classe java TimeZone, por exemplo, UTC.

  • Você pode incluir várias instâncias dessa macro no URL.

  • Exemplos:

    1. {START_TIME:yyyy-MM-dd'T'HH:mm:ss.SSS.TZ=UTC}
    2. {START_TIME:epoch}

O valor da macro START_TIME é determinado de uma das seguintes maneiras:

  • Quando a coleta é iniciada pela primeira vez para um ponto final, START_TIME é a data histórica baseada na propriedade de coleta do agente Dados Históricos. O valor padrão dessa propriedade é 30 days, ou seja, o valor do timestamp é 30 dias antes do timestamp atual.

  • Se o campo Horário for definido no parser, nas coletas de logs subsequentes, o valor de START_TIME será o valor máximo do valor de timestamp extraído na coleta de logs anterior.

  • Se o campo Horário não for extraído dos registros de log definindo-o no parser, o timestamp atual será o valor de START_TIME.

Caso haja filtros na API, use greater than equal to em vez de greater than para garantir que todos os registros de log com o mesmo timestamp sejam submetidos a upload.

CURR_TIME Macro

Use a macro CURR_TIME para inserir o horário atual no URL do ponto final da API REST, nos parâmetros de form e no payload POST.

O exemplo a seguir mostra o URL do ponto final que usa a macro CURR_TIME no parâmetro de consulta:

https://example.org/fetchLogs?sortBy=timestamp&sortOrder=ascending&time={CURR_TIME:yyyy-MM-dd'T'HH:mm:ss.SSSZ}
  • O formato para usar a macro é o mesmo da macro START_TIME.

  • Você pode incluir várias instâncias dessa macro no URL.

OFFSET Macro

Use a macro OFFSET para pontos finais que fornecem respostas paginadas ou para tratar o comportamento de deslocamento em uma resposta de API. A macro OFFSET pode ser usada no URL do ponto final da API REST, nos parâmetros de form e no payload POST para extrair várias páginas ou chunks em um único ciclo de coleta de logs.

Formato: {OFFSET(<start value>, <increment>)}

  • A macro OFFSET é usada para chamar e coletar dados iterativamente por meio de resultados paginados de um ponto final de log específico para obter todos os registros disponíveis. A chamada inicial da solicitação da API REST começa com o valor inicial e é incrementada em cada chamada subsequente pelo valor de acréscimo. Essas chamadas recursivas baseadas em índice são interrompidas quando não há mais entradas de log encontradas. A compensação não é encaminhada para o próximo ciclo de coleta. Ele começa a partir do valor padrão ou inicial em cada ciclo de coleta.

  • No formato acima, o valor de início é o valor inicial do índice e o valor padrão é 0. É opcional especificar o valor inicial.

    Valores possíveis: Inteiro positivo incluindo 0

  • No formato acima, increment especifica o valor a ser adicionado ao valor de início nas chamadas subsequentes. O valor padrão é 1. É opcional especificar o valor de incremento.

    Valores possíveis: Somente inteiro positivo. Excluir 0.

  • Você pode incluir apenas uma instância dessa macro no URL.

Os exemplos a seguir mostram diferentes maneiras de usar a macro OFFSET:

  • {OFFSET}

    Utiliza valores padrão valor inicial = 0, acréscimo = 1.

  • {OFFSET(5)}

    valor inicial = 5, acréscimo = 1 (padrão)

  • {OFFSET(5,2)}

    valor inicial = 5, acréscimo = 2

O exemplo a seguir mostra o URL do ponto final que usa a macro OFFSET:

https://example.org/fetchLogs?startIndex={OFFSET(0,1000)}&count=1000

No exemplo acima, OFFSET(0,1000) indica que o valor de início é 0 na primeira chamada e, em seguida, nas chamadas subsequentes, incrementado em 1000. Portanto, quando a macro OFFSET for interpretada, o URL do ponto final para várias chamadas será o seguinte:

Primeira chamada: https://example.org/fetchLogs?startIndex=0&count=1000

Segunda chamada: https://example.org/fetchLogs?startIndex=1000&count=1000

TIME_WINDOW Macro

Use a macro TIME_WINDOW para especificar o intervalo de coleta no qual os logs devem ser coletados. Ele pode ser usado no URL do ponto final da API REST para extrair logs em minutos, horas ou dias, independentemente do intervalo de coleta do agente. Por exemplo, se a janela de tempo for 1d (um dia) e o intervalo do agente for 10 minutos, a coleta de logs subsequente ocorrerá somente após um dia.

O exemplo a seguir define o intervalo de coleta de logs por 6 horas especificando TIME_WINDOW como 6h no URL do ponto final:

https://example.org/fetchLogs?timewindow={TIME_WINDOW(6h)}

Formato: {TIME_WINDOW(<number><timeunit>)}

No formato acima:

  • número: Número de dígito maior que zero.

  • unidade de tempo: h para horas, d para dias, m para minutos. O valor padrão é d (dias).

Certifique-se de que o intervalo de coleta do agente seja menor que o intervalo de tempo fornecido. Você só pode usar a macro TIME_WINDOW uma vez no ponto final.

Variáveis para Coleta de Logs da API REST

Use as variáveis para substituir atributos fornecidos como parte da resposta pelo ponto final da lista de logs na solicitação do ponto final do log dinamicamente no run-time. As variáveis podem ser usadas no URL, nos parâmetros de form, no payload POST ou nos valores de cabeçalho de solicitação HTTP do ponto final de log.

Se a chamada para o ponto final da lista de logs falhar, as mensagens de log do ponto final de log não serão coletadas por causa da dependência.

Formato da variável no ponto final do log:

{<log_list_endpoint_name>:<json path(<filter_field_name>='<value>')>}
  • No formato acima, log_list_endpoint_name é o nome do ponto final da lista de logs.

    O filtro (<filter_field_name>=<value>) é opcional. Somente o atributo que corresponde ao filter_field_name é selecionado na resposta JSON do ponto final da lista de logs e usado no ponto final do log. Por exemplo:

    https://www.example.com/log/{foo:$.items[*].links[*].href(rel='self')}

    Para obter um exemplo detalhado do filtro, consulte Exemplo de filtro.

  • Somente o tipo de conteúdo JSON é suportado para extrair os valores de propriedade.

  • A mesma variável pode ser especificada várias vezes.

  • As variáveis só podem fazer referência a pontos finais de lista válidos e não a pontos finais de log.

  • Os seguintes formatos de caminho JSON são suportados: Caminho JSON Simples, Caminho JSON de Array e Caminho JSON de Vários Arrays.

Caminho JSON simples

Se a resposta JSON tiver vários níveis de elementos aninhados, você poderá especificar o caminho JSON como uma notação especial de nós e suas conexões com seus nós filhos subsequentes.

Para o exemplo a seguir, use o caminho $.foo.abc do JSON para obter result como saída:

{
    "foo" : 
    {
        "abc" : "result"
    }
}

Para o exemplo a seguir, use o caminho JSON $.*.id para obter a saída ["id1", "id3"] ou $.*.* para obter a saída ["id1", "id2", "id3"]:

{
    "foo" : {
        "id" : "id1"
    },
    "foo2" : {
        "ID" : "id2",
        "id" : "id3"
    }
}

Para o exemplo a seguir, use o caminho JSON $.foo.* para obter a saída ["id1", "value1"]:

{
    "foo" : {
        "id" : "id1",
        "abcd" : "value1"
    },
    "foo2" : {
        "id" : "id2"
    }
}

Caminho JSON do array

Se a resposta JSON tiver um array de objetos do qual os dados devem ser extraídos, especifique o nome do objeto de array e use [] para extrair os elementos adequados nesse objeto de array. Por exemplo, a seguinte resposta JSON tem dois arrays de objetos records e item:

{
     "records": [
         {"id": "firstId", "type":"firstType"},
         {"id":"secondId", "type":"secondType"}
     ],
     "items": [
         {"name":"firstName", "field":"value"},
         {"name":"secondName", "field":"value"},
         {"name":"thirdName", "field":"value"}
     ]
}
  • Especifique o caminho $.records[0].id do JSON para extrair firstId como saída, $.records[1].id para extrair secondId como saída ou $.records[*].id para extrair id de todos os objetos JSON. No último caso, a saída é uma lista de Strings ["firstId", "secondId"].

  • Você também pode especificar condições no caminho JSON usando (). No exemplo acima, para extrair id somente dos records que têm o type como firstType, use o caminho JSON $.records[*].id(type='firstType').

Caminho JSON de Várias Matrizes

Considere o seguinte exemplo:

Para o URL do ponto final da lista de logs getlist:

https://www.example.com/url_list

Resposta JSON ao ponto final da lista do log:

{
  "records": [ { "id": "firstId", "type": "firstType" }, { "id": "secondId", "type": "secondType" } ],
  "items": [ { "name": "firstName", "field": "value" }, { "name": "secondName", "field": "value" }, { "name": "thirdName", "field": "value" } ]
}

URL do ponto final do log (referindo-se a variáveis de getlist):

https://www.example.com/{getlist:$.records[*].id}/{getlist:$.items[*].name}

Com as variáveis {getlist:$.records[*].id} e {getlist:$.items[*].name}, o agente gera os pontos finais de log abaixo com todas as combinações dos dois campos de array ["firstId", "secondId"] e ["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

Exemplo de filtro

Considere a seguinte resposta JSON do ponto final da lista de logs 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"
                }
            ]
        }
    ]
}

Agora, considere o seguinte exemplo de ponto final de log:

https://www.example.com/log/{foo:$.items[*].links[*].href(rel='self')}

No exemplo acima, o parâmetro de caminho é substituído pelo elemento de array $.items[*].links[*].href da resposta JSON do ponto final da lista de logs foo e uma condição adicional é especificada para selecionar apenas rel='self'.

Para a resposta JSON acima, o agente gera o seguinte ponto final de log:

https://www.example.com/log/erpBusinessEvents/self/100100120766717

Selecione o Tipo de Credencial para Coleta de Logs da API REST

Para autorizar uma conexão entre o agente e a origem da API REST, primeiro configure a credencial da API no armazenamento de credenciais do agente. Depois de configurar as credenciais de origem no serviço Management Agent no lado do agente, você pode usar essas informações ao criar a origem de log da API REST.

Para configurar as credenciais de origem no serviço Management Agent para permitir que o Management Agent colete dados do host que emite log, consulte Credenciais de Origem do Management Agent.

Ao adicionar o ponto final do log ou o ponto final da lista de logs, forneça as informações da credencial no workflow selecionando o Tipo de credencial do log. Selecione uma entre as seguintes opções:

  • Nenhum
  • Autenticação Básica: Especifique o Nome da credencial de log da credencial criada no serviço Management Agent.
  • Token Estático: Especifique o Nome da credencial de log da credencial criada no serviço Management Agent.
  • Token Dinâmico (OAuth 2.0):

    Especifique o Nome da credencial do token do token criado no serviço Management Agent. Além disso, forneça as informações do token como Nome do Ponto Final do Token, URL do Ponto Final do Token, Tipo de Concessão e, opcionalmente, Escopo.

    Se o proxy de token for igual ao do ponto final do log, mantenha a caixa de seleção Proxy igual ao ponto final do log ativada. Caso contrário, desative a caixa de seleção e forneça o URL do servidor proxy do token.

Mapeamento de tipos de credencial para o tipo de autenticação:

Tipo de Autenticação Tipo de Credencial no Management Agent Propriedades da Credencial
Autenticação Básica HTTPSBasicAuthCreds HTTPSUserName, HTTPSPassword
HTTPSCreds HTTPSUserName, HTTPSPassword, propriedades de armazenamento confiável ssl
Token Estático HTTPSTokenCreds HTTPSToken, HTTPSTokenType, propriedades de armazenamento confiável ssl (opcional)
Token Dinâmico HTTPSBasicAuthCreds HTTPSUserName, HTTPSPassword
HTTPSCreds HTTPSUserName, HTTPSPassword, propriedades de armazenamento confiável ssl

As seguintes informações estão incluídas nos propriedades de armazenamento confiávelssl:

  • "ssl_trustStoreType": Tipo de armazenamento, por exemplo, JKS.

  • "ssl_trustStoreLocation": O caminho do armazenamento confiável

  • "ssl_trustStorePassword": Senha do armazenamento confiável (opcional)

Observe os seguintes aspectos sobre os atributos no JSON da credencial:

  • source: O valor deve ser lacollector.la_rest_api

  • name: Qualquer nome adequado para a credencial em um dos formatos a seguir.

    • <cred_name>.<entity_name>: nome da credencial com nome da entidade
    • <cred name>: apenas o nome da credencial

    O agente procura o nome no primeiro formato. Se não for encontrado, ele procurará o nome no segundo formato.

  • type: Deve ser um dos valores especificados na coluna Tipo de Credencial no Agente de Gerenciamento na tabela de tipos de credenciais acima.

Consulte Exemplos de JSON de Credenciais.

Exemplos de JSON de Credenciais

Exemplo de Autenticação Básica com nome de usuário e senha em HTTPS com host confiável:

{
  "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]" }
  ]
}

Exemplo de Autenticação Básica com certificados SSL, nome de usuário e senha via HTTPS fornecendo explicitamente certificados:

{
  "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" }
  ]
}

Exemplo de token em HTTPS com host confiável:

{
  "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]" }
  ]
}

Exemplo de token sobre HTTPS com certificados fornecidos explicitamente:

{
  "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" }
  ]
}

Ingestão de Logs de Auditoria do Fusion Applications

Siga estas etapas para coletar os Logs de Auditoria do Fusion Applications. Para obter a lista de origens disponíveis definidas pela Oracle para Fusion Applications, consulte Origens Definidas pela Oracle.

Tópicos:

Pré-requisitos

  • Entender as APIs de Logs de Auditoria do Fusion Applications: Para obter detalhes sobre o uso e a funcionalidade da API de Logs de Auditoria, consulte a documentação da API REST do Fusion Applications.

  • Acesso ao Fusion Applications: Você deve ter credenciais e privilégios válidos para acessar a instância do Fusion Applications.

  • Identifique os seguintes pontos finais e proxy (opcional):

    • login_url: O URL base da sua instância do Fusion Applications
    • pod_url: O URL base da sua instância do Fusion Applications
    • proxy_url: (Opcional) O URL que envia uma solicitação ao servidor proxy

    Para obter detalhes sobre os URLs, consulte o ID do Documento 2661308.1 no Oracle My Support.

  • Acesso à API REST do Fusion Applications: Certifique-se de que o acesso à API esteja ativado e que as funções/privilégios necessários sejam designados.

Configurar a Coleta de Logs de Auditoria do Fusion Applications

  1. Validar o URL base do Fusion Applications:

    • Valide as credenciais do Fusion Applications fazendo log-in na interface do usuário.
    • Opcionalmente, analise as chamadas de rastreamento de rede para validar o URL base.
    • Certifique-se de que o acesso à API de Auditoria esteja ativado.
  2. Criar as políticas de IAM necessárias: Permitir Coleta Contínua de Logs Usando Agentes de Gerenciamento

  3. Instale o Agente de Gerenciamento em um host que tenha acesso http ou https à sua instância/servidor do Fusion Applications. Certifique-se de que o plug-in do Log Analytics seja implantado durante a instalação. Consulte Instalar Agentes de Gerenciamento.

  4. Configurar a credencial de API no armazenamento de credenciais do agente:

    O local do diretório /bin depende de como o Management Agent é implantado:

    • Para Management Agents em execução em instâncias de computação por meio do plug-in do Oracle Cloud Agent, o script está localizado em /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/agent_inst/bin.

    • Para Management Agents que você instalou manualmente, o script está localizado em /opt/oracle/mgmt_agent/agent_inst/bin.

    Navegue até o diretório /bin apropriado para sua configuração a fim de criar o arquivo JSON da credencial. O exemplo a seguir mostra os valores fornecidos no arquivo 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"
              }
          ]
      }

    Adicione as credenciais do FA-CREDS ao armazenamento de credenciais do agente:

    cat fapps.json | ./credential_mgmt.sh -s logan -o upsertCredentials

    Para obter detalhes sobre como configurar a credencial de API no armazenamento de credenciais do agente, consulte Credenciais de Origem do Serviço Management Agent.

  5. Verifique se o ponto final da API do Fusion Applications pode ser acessado pela instância em que o agente está instalado. Você pode usar ferramentas como curl para fazer a verificação.

  6. Criar Entidade: Crie uma entidade do tipo Oracle Fusion Applications e adicione valores de propriedades para login_url e pod_url. Se necessário, adicione também o valor para proxy_url. Consulte Criar uma Entidade para Representar Seu Recurso de Emissão de Log.

  7. Configurar Origem: Identifique uma origem adequada definida pela Oracle dos Logs de Auditoria do Fusion Applications que você possa usar. Se necessário, você pode criar uma duplicata da origem existente e editá-la. Consulte Editar Origem.

    • Certifique-se de que a credencial seja referenciada corretamente no ponto final de log da sua origem.
    • Adicione proxy aos pontos finais de log, se necessário.
  8. Programar Coleta de Dados no Lado do Agente: Associe a origem à entidade para programar a coleta de dados. Use o agente de gerenciamento para chamar periodicamente as APIs de Auditoria do Fusion Applications e enviar dados para o Log Analytics. Consulte Configurar Nova Associação entre Origem e Entidade.

  9. Revisar e Validar no Log Explorer: Verifique se os logs são coletados e analisados corretamente no Log Explorer. Consulte Visualizar Dados Usando Gráficos e Controles.