gelf2azure — это контейнер Docker, который получает журналы в формате GELF из UDP и пересылает их в Azure Monitor с помощью REST API.
Он предназначен для удобной интеграции со встроенным подключаемым модулем ведения журнала Docker Gelf на входе и API сборщика данных HTTP Azure Monitor на выходе.
В качестве дополнительного бонуса он также предоставляет крошечное веб-приложение, которое отображает журналы по мере их поступления, обеспечивая удобство работы.
Откройте терминал и запустите докер-контейнер gelf2azure:
docker run --rm -it -p 12201:12201/udp -p 54313:54313 gimmi/gelf2azure:latest
Откройте в браузере http://127.0.0.1:54313.
Откройте другой терминал и отправьте образец журнала из контейнера 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!'
Вы должны увидеть журнал «Hello world!» появиться в окне браузера:
Сообщение может быть отправлено из любого источника, если используется формат GELF.
С netcat
nc.exe -u 127.0.0.1 12201
{ "host": "example.org", "short_message": "xoxo", "timestamp": 1602850875.683, "_container_name": "agitated_goldberg" }
Или в Баше
echo -n '{"host":"example.org","short_message":"xoxo","timestamp":1602850875.683,"_container_name":"agitated_goldberg"}' > /dev/udp/127.0.0.1/12201
Конфигурация выполняется путем передачи переменных среды:
Переменная среды | По умолчанию | Описание |
---|---|---|
AZURE_CUSTOMER_ID | Параметр CustomerID (AKA Workspace ID) для API Azure. Если этот параметр не задан, отправка данных в Azure будет отключена. | |
AZURE_SHARED_KEY | Параметр SharedKey (первичный ключ AKA) для API Azure. | |
AZURE_LOG_TYPE | Параметр Log-Type для Azure API | |
AZURE_BATCH_MS | 5000 | Как часто данные собираются для отправки в Azure Monitor |
AZURE_TIMEOUT_MS | 30000 | Тайм-аут для вызова REST Azure Monitor |
HTTPS_PROXY | При необходимости установите прокси, например http://my.proxy.com:80 | |
ОТЛАЖИВАТЬ | Используйте значение app:* , чтобы включить внутреннее ведение журнала. Полезно для устранения неполадок |
Выполните следующие команды в Azure CLI:
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 предназначен для использования со встроенным плагином ведения журналов Gelf в Docker. Чтобы включить его, измените /etc/docker/daemon.json
следующим образом:
{
"log-driver" : " gelf " ,
"log-opts" : {
"gelf-address" : " udp://172.16.0.13:12201 "
}
}
docker build --pull --no-cache -t gimmi/gelf2azure:latest .