gelf2azure es un contenedor Docker que recibe registros en formato GELF desde UDP y los reenvía a Azure Monitor mediante la API REST.
Esto está diseñado para integrarse perfectamente con el complemento de registro Docker integrado de gelf en la entrada y con la API HTTP Data Collector de Azure Monitor en la salida.
Como beneficio adicional, también expone una pequeña aplicación web que muestra los registros a medida que llegan, brindando una experiencia similar a la de una cola.
Abra una terminal e inicie el contenedor acoplable gelf2azure:
docker run --rm -it -p 12201:12201/udp -p 54313:54313 gimmi/gelf2azure:latest
Abre con tu navegador http://127.0.0.1:54313
Abra otra terminal y envíe un registro de muestra desde un contenedor Docker
docker run --rm -it
--name my_container
--log-driver gelf
--log-opt gelf-address=udp://127.0.0.1:12201
alpine echo 'Hello world!'
Deberías ver el registro "¡Hola mundo!" aparecen en la ventana del navegador:
El mensaje se puede enviar desde cualquier fuente, siempre que se utilice el formato GELF.
con netcat
nc.exe -u 127.0.0.1 12201
{ "host": "example.org", "short_message": "xoxo", "timestamp": 1602850875.683, "_container_name": "agitated_goldberg" }
O en fiesta
echo -n '{"host":"example.org","short_message":"xoxo","timestamp":1602850875.683,"_container_name":"agitated_goldberg"}' > /dev/udp/127.0.0.1/12201
La configuración se realiza pasando variables de entorno:
Variable de entorno | Por defecto | Descripción |
---|---|---|
AZURE_CUSTOMER_ID | Parámetro CustomerID (también conocido como ID del espacio de trabajo) para la API de Azure. Si no lo establece, se deshabilitará el envío de datos a Azure. | |
AZURE_SHARED_KEY | Parámetro SharedKey (también conocido como clave principal) para la API de Azure | |
AZURE_LOG_TYPE | Parámetro Log-Type para la API de Azure | |
AZURE_BATCH_MS | 5000 | Con qué frecuencia se recopilan datos para enviarlos a Azure Monitor |
AZURE_TIMEOUT_MS | 30000 | Tiempo de espera para la llamada REST de Azure Monitor |
HTTPS_PROXY | Configure el proxy si es necesario, algo como http://my.proxy.com:80 | |
DEPURAR | Utilice value app:* para habilitar el registro interno. Útil para solucionar problemas |
Ejecute los siguientes comandos en la CLI de Azure:
az monitor log-analytics workspace create
--subscription my_subs
--resource-group my_group
--location westeurope
--workspace-name my-la-ws
{
"customerId": "THIS IS AZURE_CUSTOMER_ID"
}
az monitor log-analytics workspace get-shared-keys
--subscription my_subs
--resource-group my_group
--workspace-name my-la-ws
{
"primarySharedKey": "THIS IS AZURE_SHARED_KEY"
}
gelf2azure está diseñado para usarse con el complemento de registro Docker integrado de gelf. Para habilitarlo, modifique /etc/docker/daemon.json
de la siguiente manera:
{
"log-driver" : " gelf " ,
"log-opts" : {
"gelf-address" : " udp://172.16.0.13:12201 "
}
}
docker build --pull --no-cache -t gimmi/gelf2azure:latest .