gelf2azure
1.0.0
gelf2azure 是一個 Docker 容器,它從 UDP 接收 GELF 格式的日誌,並使用 REST API 將其轉送到 Azure Monitor。
它旨在與輸入中的 gelf 內建 Docker 日誌記錄外掛程式以及輸出中的 Azure Monitor HTTP 資料收集器 API 完美整合。
作為額外的好處,它還公開了一個小型 Web 應用程序,可以在日誌到達時顯示日誌,從而提供類似尾巴的體驗。
打開終端機並啟動 gelf2azure docker 容器:
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" }
或者在bash中
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 | Azure API 的CustomerID (又稱工作區 ID)參數。不設定此選項將禁止向 Azure 發送資料。 | |
AZURE_SHARED_KEY | Azure API 的SharedKey (又稱主鍵)參數 | |
AZURE_LOG_TYPE | Azure API 的Log-Type 參數 | |
AZURE_BATCH_MS | 5000 | 收集資料並傳送給 Azure Monitor 的頻率 |
AZURE_TIMEOUT_MS | 30000 | Azure Monitor REST 呼叫逾時 |
HTTPS_代理 | 如果需要,設定代理,例如http://my.proxy.com:80 | |
偵錯 | 使用 value 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 .