Fazer Upload de Logs de Eventos Usando a API LogEvents

Se você quiser PUSH seus logs de eventos para o ponto final do Oracle Logging Analytics por meio da API LogEvents, siga as etapas apresentadas abaixo.

  • Você pode fazer upload de um ou mais eventos usando o formato de payload predefinido que está em JSON. Além disso, a API suporta os formatos de arquivo GZIP e ZIP

  • O tamanho máximo permitido de cada JSON é de 2 MB. No entanto, uma solicitação de upload pode conter vários arquivos JSON até um máximo de 100 na forma de ZIP.

  • O grupo de logs é um parâmetro de solicitação obrigatório que será aplicado no escopo da solicitação. O conjunto de logs é um parâmetro opcional e pode ser necessário para grandes conjuntos de dados de log, por exemplo, TBs de dados diariamente.

Para obter as etapas para executar o upload de arquivos de log brutos usando a API REST, consulte Fazer Upload de Logs sob Demanda.

Pré-requisitos:

Permissões Necessárias para Fazer Upload de Logs de Eventos

Você pode permitir que os usuários executem a operação de upload fornecendo seletivamente apenas as permissões necessárias para executar a tarefa de upload, concedendo permissões de tipo de recurso individuais ou concedendo permissões de nível agregado mais amplas. Portanto, você pode selecionar qualquer um dos três conjuntos de instruções de política fornecidos abaixo, como adequado para seu caso de uso.

A seguinte instrução de política do serviço IAM destina-se a fornecer as permissões específicas ao grupo de usuários para o upload:

allow group <group_name> to {LOG_ANALYTICS_LOG_GROUP_UPLOAD_LOGS} in compartment <log_group_compartment>

A seguinte instrução de política do serviço IAM destina-se a fornecer permissões no nível de tipos de recursos individuais para o upload:

allow group <group_name> to use loganalytics-log-group in compartment <log_group_compartment>

Por outro lado, a seguinte instrução de política do IAM destina-se a fornecer permissões no nível de recursos agregados do Oracle Logging Analytics para o upload:

allow group <group_name> to use loganalytics-resources-family in tenancy/compartment

group_name em todas as instruções de política acima refere-se ao grupo de usuários que deve receber as permissões necessárias.

API para Upload de Logs de Eventos

Para obter informações sobre como usar a API REST e assinar solicitações, consulte APIs REST e Credenciais de Segurança.

Para obter a documentação da API uploadLogEventsFile, consulte API do Logging Analytics - uploadLogEventsFile.

Para executar o upload usando a API REST, execute o seguinte comando no host:

oci log-analytics upload upload-log-events-file --file <Json_Event_File_Path> --log-group-id <Log_Group_OCID> --namespace-name <Tenancy_Namespace_Name> --payload-type <Payload_Type>

No comando curl acima,

  • Json_Event_File_Path: O caminho do arquivo de eventos JSON. Para obter detalhes sobre o formato do arquivo Eventos JSON e um exemplo, consulte Formato do Arquivo de Evento para Upload Usando a API LogEvents.

  • Tenancy_Namespace_Name: O namespace do Oracle Logging Analytics usado para a solicitação.

  • Log_Group_OCID: O OCID do grupo de logs no qual os logs submetidos a upload são armazenados no Oracle Logging Analytics.

  • Payload_Type: O padrão é JSON. Os valores permitidos são JSON, GZIP, ZIP.

  • Log_Set: O conjunto de logs que é associado aos logs submetidos a upload. Esse parâmetro é opcional.

Formato de Arquivo de Evento para Upload Usando a API LogEvents

Este é o formato típico do payload JSON:

{
    "metadata":{ ----------------------------------------> Global (file level) metadata section to send additional metadata in field value pair format. The fields should be valid Logging Analytics Fields
        "Field1":"Value1",
        "Field2":"Value2",
        "FieldN":"ValueN"
    },
    "logEvents":
    [ ---------------------------------------------------> Group the events (logRecords) that belong to the same logSourceName, entityId, logPath and metadata
        {
            "metadata":{ --------------------------------> Group level metadata section
                "FieldA”:”ValueA”,
                "FieldB”:”ValueB”,
                "FieldN":"ValueN"
            },
            "entityId”:”<EntityOCID>“, -------------------> Logging Analytics Entity OCID
            "logSourceName”:”<LogSourceName>”, -----------> Logging Analytics LogSource Name (Mandatory)
            "logPath”:”<LogPath>”, -----------------------> logPath or logFileName to associate the log records with.
            "logRecords": -------------------------------> Array of logRecords/logEntries (Mandatory)
            [
                "logRecord1", ---------------------------> String representation of logRecord. In case the logRecord is of JSON type, it has to be encoded.
                "logRecord2",
                "logRecordN"
            ]
        },
        {            …            …            …       }
    ]
}
Observação

A seção de metadados serve para enriquecer os logs com as informações que não fazem parte dos registros de log reais.

Veja um exemplo de payload JSON:

{
    "metadata":{
        "Error ID":"0",
        "Environment":"dev",
        "Client Host Region":"IST"
    },
    "logEvents":
    [
        {
            "metadata":{
                "Error ID":"1",
                "Environment":"prod",
                "Client Host Region":"PST"
            },
            "entityId":"ocid1.loganalyticsentity.oc1.iad.amaaaaa...........",
            "logSourceName":"Linux Syslog Logs",
            "logPath":"/var/log/messages",
            "logRecords":
            [
                “Oct 20 2023 04:02:37 hostA syslogd 1.4.1: restart.",
                “Oct 20 2023 04:02:38 hostB syslogd 1.4.1: shutdown."
            ]
        }
    ]
}