Envío de registros mediante la API

Puede enviar registros a una instancia IBM Cloud Logs utilizando la API de ingestión.

Autenticación mediante un token de portador

Debe obtener un token de acceso IBM Cloud® Identity and Access Management (IAM) para autenticar sus solicitudes.

Para obtener su token mediante la CLI de IBM Cloud, complete los siguientes pasos:

  1. Inicie sesión en IBM Cloud.

    Asegúrese de que la entidad con la que inicia sesión tiene el rol ' Sender ' para el servicio IBM Cloud Logs.

  2. Ejecute el siguiente mandato:

    ibmcloud iam oauth-tokens
    
  3. Coloque este token en la cabecera Authorization de la petición HTTP de la forma Bearer .

Por ejemplo, puede recuperar su token portador de IAM y exportarlo como una variable de entorno ejecutando el siguiente comando CLI:

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

Enviar registros mediante cURL

La siguiente tabla describe los detalles del punto final:

Detalles del punto final de ingestión de Singles
Detalle Valor
URL <INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles
HTTP Method POST
header Content-Type application/json
header Authorization Bearer $IAM_TOKEN

Donde

  • INSTANCE_ID : GUID de la instancia IBM Cloud Logs donde desea enviar registros.
  • REGION: Región donde se encuentra la instancia IBM Cloud Logs.
  • IAM_TOKEN : token portador de IAM utilizado para solicitar autorización para enviar registros. Se requiere el permiso logs.data.send.

Utilice el siguiente comando cURL para enviar una línea 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"
    }]'

La siguiente tabla describe los objetos JSON que puede incluir por línea de registro en una solicitud:

matriz de objetos JSON
Nombre de propiedad Tipo de propiedad Obligatorio Más información
applicationName string
subsystemName string
text string/json Si está utilizando Ajax o una tecnología similar, es posible que necesite enviar los datos con JSON.stringify ().
severity number No 1 – Debug
2 – Verbose
3 – Info
4 – Warn
5 – Error
6 – Critical
Si no se especifica, se utilizará 1 – Debug.
timestamp number No Milisegundos UTC. Si no se especifica, se utilizará el tiempo en el que el registro llega a la puerta de entrada.
computerName string No
category string No
className string No
methodName string No
threadId string No
hiResTimestamp string No Nanosegundos UTC

Si no especifica severity, a los registros se les asigna la gravedad de 1 – Debug.

Puede enviar hasta 2MB por solicitud, lo que equivale aproximadamente a 3000 registros de tamaño mediano.

Por ejemplo, puede ejecutar el siguiente comando para enviar registros a una instancia en la región 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"
    }]'

La opción -v proporciona una salida detallada que puede ayudarle a determinar si el comando se completó correctamente o si hubo problemas de autorización o conectividad.