Ingestão de Logs Personalizados do Serviço de Log do OCI Usando o Conector de Serviço

Se você tiver logs personalizados no serviço OCI Logging que deseja ingerir no Oracle Log Analytics para fins de análise e insights de log, conclua as etapas listadas aqui.

Observação

Para aplicativos de missão crítica que exigem ingestão de logs de baixa latência e alerta de tempo de ingestão, a Oracle recomenda que você use o Oracle Management Agent, que é instalado por padrão em todas as Instâncias do OCI.

Se você quiser coletar logs históricos, use o Oracle Management Agent porque o conector de serviço não suporta a coleta de logs históricos.

Além disso, depois de instalar o agente de gerenciamento, conclua as etapas de 1 a 5 listadas abaixo para começar a coletar os logs no Oracle Log Analytics.

Para obter mais informações sobre a ingestão de logs de outros serviços do OCI usando o conector de serviço, consulte Ingestão de Logs de Outros Serviços OCI Usando o Conector de Serviço.

Etapas para coletar logs personalizados no serviço OCI Logging usando o conector de serviço:

  1. Fornecer permissão para acessar e coletar logs do serviço OCI Logging. Consulte Permitir Coleta de Logs do Serviço OCI Logging.

  2. Identifique ou crie o compartimento e o grupo de logs do Log Analytics no qual os logs devem ser coletados.

  3. No seu registro de log no serviço OCI Logging, anote o tipo de evento correspondente ao tipo de chave, por exemplo, com.oraclecloud.logging.custom.kube_system_namespace. O valor da chave será usado posteriormente para criar a origem de log. Veja um exemplo de registro de log do serviço OCI Logging:

    {
      "datetime": 1652152576897,
      "logContent": {
        "data": {
          "message": "2022-05-10T03:16:16.161346406+00:00 stderr F time=\"2022-05-10T03:16:16Z\" level=error msg=\"tkw network request proxied\" error=EOF",
          "tailed_path": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log"
        },
        "id": "id112233",
        "oracle": {
          "compartmentid": "ocid1.compartment.oc1..a....",
          "ingestedtime": "2022-05-10T03:17:25.628Z",
          "instanceid": "ocid1.instance.oc1.phx.a....",
          "loggroupid": "ocid1.loggroup.oc1.phx.a....",
          "logid": "ocid1.log.oc1.phx.a....",
          "tenantid": "ocid1.tenancy.oc1..a...."
        },
        "source": "oke-source",
        "specversion": "1.0",
        "subject": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log",
        "time": "2022-05-10T03:16:16.897Z",
        "type": "com.oraclecloud.logging.custom.kube_system_namespace"
      }
    }

    No exemplo acima do tipo de evento, com.oraclecloud.logging.custom. é constante para logs personalizados. A parte restante do valor, por exemplo, kube_system_namespace variará dependendo do tipo de logs.

  4. Crie um parser JSON para fazer parsing de seus logs personalizados.

    Observação

    Certifique-se de que o parser seja do tipo JSON para ingerir logs do conector de serviço. Outros formatos de parser não são suportados.

    Para o exemplo de conteúdo de log mostrado acima, o Log Analytics recebe apenas o valor do atributo logContent, conforme mostrado abaixo:

    {
        "data": {
          "message": "2022-05-10T03:16:16.161346406+00:00 stderr F time=\"2022-05-10T03:16:16Z\" level=error msg=\"tkw network request proxied\" error=EOF",
          "tailed_path": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log"
        },
        "id": "id112233",
        "oracle": {
          "compartmentid": "ocid1.compartment.oc1..a....",
          "ingestedtime": "2022-05-10T03:17:25.628Z",
          "instanceid": "ocid1.instance.oc1.phx.a....",
          "loggroupid": "ocid1.loggroup.oc1.phx.a....",
          "logid": "ocid1.log.oc1.phx.a....",
          "tenantid": "ocid1.tenancy.oc1..a...."
        },
        "source": "oke-source",
        "specversion": "1.0",
        "subject": "/var/log/pods/kube-system_proxymux-client-aaaa/proxymux-client/0.log",
        "time": "2022-05-10T03:16:16.897Z",
        "type": "com.oraclecloud.logging.custom.kube_system_namespace"
      }

    Portanto, o parser JSON deve ser criado usando a versão reduzida relevante do conteúdo do log de exemplo. Consulte Criar um Parser.

  5. Crie uma origem de log com o nome que seja igual ao valor do tipo da chave. Se o valor que você anotou anteriormente for com.oraclecloud.logging.custom.kube_system_namespace, o nome da origem também deverá ser o mesmo. Ao criar a origem de log, especifique o parser que você criou na etapa anterior. Consulte Criar uma Origem.

    Se você não criar uma origem definida pelo usuário cujo nome corresponda ao valor do tipo de chave nos seus logs, os logs serão processados usando a origem definida pela Oracle Logs de Esquema Unificados do OCI. This source uses the Oracle-defined parser OCI Unified Schema Log Format to parse the fields Time, Type, OCI Resource Name, Collection Time, Compartment ID, Logging Log Group OCID, Logging Log OCID, Tenant, Logging Record ID, CloudEvents Spec Version, and Message.

  6. Crie um novo conector de serviço ou use um conector de serviço existente que estabeleça uma conexão entre o OCI Logging e o Oracle Log Analytics para rotear seus logs personalizados. Especifique Logging Analytics como destino e adicione uma nova Conexão de Origem correspondente aos Logs Personalizados de Log. Anote o compartimento do grupo de logs de Log, o grupo de logs de Log e os detalhes de logs personalizados de Log.

    Para obter etapas detalhadas para criar o conector de serviço, consulte a etapa 2 em Configurar o Conector de Serviço para Ingerir Logs.

    Na seção Configurar tarefa, você pode configurar uma tarefa de filtro de log e especificar a propriedade a ser usada para filtragem. Consulte Documentação do Oracle Cloud Infrastructure - Gerenciar Conectores de Serviço.

    No caso de vários logs personalizados, você pode usar o mesmo conector de serviço e adicionar mais tarefas de filtro de log.

Depois que a conexão for estabelecida com o OCI Logging, os logs personalizados começarão a fluir para o Oracle Log Analytics. Para procurar logs personalizados no Log Explorer, você pode consultar o nome da origem de log. Por exemplo,

'Log Source' = com.oraclecloud.logging.custom.kube_system_namespace | stats count as logrecords by 'Log Source'

Para interromper a coleta de logs personalizados no OCI Logging, consulte Interromper a Coleta de Logs no Conector de Serviço.