Fazer Upload de Logs de Eventos Usando a API LogEvents

Se você quiser PUSH seus logs de eventos para o ponto final do Oracle Log 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á no 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 ver as etapas para executar o upload de arquivos de log brutos usando a API REST, consulte Fazer Upload de Logs sob Demanda.

Pré-requisitos:

Antes de começar a fazer upload dos logs de eventos, certifique-se de coletar as seguintes informações

Permitir que os Usuários Carregem 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. Assim, você pode selecionar qualquer um dos três conjuntos de instruções de política fornecidos abaixo, conforme adequado para o seu caso de uso.

A seguinte instrução de política do serviço IAM é para 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 é para 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 é para fornecer permissões no nível de recursos agregados do Oracle Log 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 Log Analytics API - uploadLogEventsFile.

Para executar o upload usando a API REST, execute o seguinte comando em seu 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 de Eventos JSON e um exemplo, consulte Formato do Arquivo de Eventos para Upload Usando a API LogEvents.

  • Tenancy_Namespace_Name: O namespace do Oracle Log 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 Log 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 de 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 Log 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>“, -------------------> Log Analytics Entity OCID
            "logSourceName”:”<LogSourceName>”, -----------> Log 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 destina-se a enriquecer os logs com as informações que não fazem parte dos registros de log reais.

Aqui está 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."
            ]
        }
    ]
}