Envio de registros usando a API

Você pode enviar logs para uma instância IBM Cloud Logs usando a API de ingestão.

Autenticar usando um token de portador

Você deve obter um token de acesso IBM Cloud® Identity and Access Management (IAM) para autenticar suas solicitações.

Para obter seu token usando o IBM Cloud CLI, conclua as etapas a seguir:

  1. Efetue login no IBM Cloud.

    Certifique-se de que a entidade com a qual você faz login tenha a função ' Sender para o serviço IBM Cloud Logs.

  2. Execute o comando a seguir:

    ibmcloud iam oauth-tokens
    
  3. Coloque esse token no cabeçalho Authorization (Autorização) da solicitação HTTP no formato Bearer (Portador) .

Por exemplo, você pode recuperar seu token portador do IAM e exportá-lo como uma variável de ambiente executando o seguinte comando CLI:

export IAM_TOKEN=`ibmcloud iam oauth-tokens --output json | jq -r '.iam_token'`

Enviar registros usando cURL

A tabela a seguir descreve os detalhes do ponto de extremidade:

Detalhes do ponto final de ingestão de singles
Detail Valor
URL <INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles
HTTP Method POST
Cabeçalho Content-Type application/json
Cabeçalho Authorization Bearer $IAM_TOKEN

em que

  • INSTANCE_ID : GUID da instância IBM Cloud Logs para onde você deseja enviar logs.
  • REGION: Região em que a instância IBM Cloud Logs está localizada.
  • IAM_TOKEN : token portador do IAM usado para solicitar autorização para enviar logs. A permissão logs.data.send é necessária.

Use o seguinte comando cURL para enviar uma linha de registro:

curl -v --location "<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles" \
--header "Content-Type: application/json" \
--header "Authorization: $IAM_TOKEN" \
--data '[{
      "applicationName": "ENTER_APPLICATION_NAME",
      "subsystemName": "ENTER_SUBSYSTEM_NAME",
      "severity": "ENTER_SEVERITY",
      "computerName": "ENTER_VALUE",
      "text": ENTER_LOG_LINE,
      "category": "ENTER_VALUE",
      "className": "ENTER_VALUE",
      "methodName": "ENTER_VALUE",
      "threadId": "ENTER_VALUE"
    }]'

A tabela a seguir descreve os objetos JSON que você pode incluir por linha de log em uma solicitação:

matriz de objetos JSON
Nome da propriedade Tipo de propriedade Obrigatório Mais informações
applicationName string True
subsystemName string True
text string/json True Se você estiver usando Ajax ou uma tecnologia similar, talvez seja necessário enviar os dados com JSON.stringify ().
severity number Não 1 – Debug
2 – Verbose
3 – Info
4 – Warn
5 – Error
6 – Critical
Se não for especificado, 1 – Debug será usado.
timestamp number Não Milissegundos UTC. Se não for especificado, será usado o horário em que o log chegará ao gateway.
computerName string Não
category string Não
className string Não
methodName string Não
threadId string Não
hiResTimestamp string Não Nanossegundos UTC

Se você não especificar severity, os logs receberão a gravidade de 1 – Debug.

Você pode enviar até 2MB por solicitação, o que equivale a aproximadamente 3.000 logs de tamanho médio.

Por exemplo, você pode executar o seguinte comando para enviar logs para uma instância na região eu-es :

curl -v --location "https://90d208cc-e1dd-4fb2-a938-358e5996f056.ingress.eu-es.logs.cloud.ibm.com/logs/v1/singles" \
--header "Content-Type: application/json" \
--header "Authorization: $IAM_TOKEN" \
--data '[{
      "applicationName": "cs-rest-test3",
      "subsystemName": "cs-rest-test3",
      "computerName": "computer test3",
      "text": {"key":"value","message":"148.145.31.214 - user [24/Oct/2023:15:54:46 +0000] \"PATCH /maximized/Triple-buffered_Managed/core.hmtl HTTP/1.1\" 400 7074 1.666 \"-\" \"Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_4 rv:6.0) Gecko/1929-02-10 Firefox/37.0\" \"-\"","countryme":"Italy"},
      "category": "cat-1",
      "className": "class-1",
      "methodName": "method-1",
      "threadId": "thread-1"
    }]'

A opção -v fornece uma saída detalhada que pode ajudar a determinar se o comando foi concluído com sucesso ou se houve problemas de autorização ou conectividade.