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:
-
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. -
Ejecute el siguiente mandato:
ibmcloud iam oauth-tokens -
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:
| 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 permisologs.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:
| Nombre de propiedad | Tipo de propiedad | Obligatorio | Más información |
|---|---|---|---|
applicationName |
string |
Sí | |
subsystemName |
string |
Sí | |
text |
string/json |
Sí | Si está utilizando Ajax o una tecnología similar, es posible que necesite enviar los datos con JSON.stringify (). |
severity |
number |
No | 1 – Debug2 – Verbose3 – Info4 – Warn5 – Error6 – CriticalSi 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.