gelf2azure เป็นคอนเทนเนอร์ Docker ที่ได้รับบันทึกในรูปแบบ GELF จาก UDP และส่งต่อไปยัง Azure Monitor โดยใช้ REST API
สิ่งนี้ได้รับการออกแบบมาเพื่อผสานรวมอย่างดีกับปลั๊กอินการบันทึก Docker ในตัว gelf ในอินพุต และ Azure Monitor HTTP Data Collector API ในเอาต์พุต
เพื่อเป็นโบนัสพิเศษ มันยังเปิดเผยเว็บแอปพลิเคชั่นเล็กๆ ที่แสดงบันทึกเมื่อมาถึง มอบประสบการณ์ที่เหมือนหาง
เปิดเทอร์มินัลแล้วเปิดคอนเทนเนอร์นักเทียบท่า 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) สำหรับ Azure API การไม่ตั้งค่านี้จะเป็นการปิดใช้การส่งข้อมูลไปยัง Azure | |
AZURE_SHARED_KEY | พารามิเตอร์ SharedKey (AKA Primary Key) สำหรับ Azure API | |
AZURE_LOG_TYPE | พารามิเตอร์ Log-Type สำหรับ Azure API | |
AZURE_BATCH_MS | 5,000 | ความถี่ในการรวบรวมข้อมูลเพื่อส่งไปยัง Azure Monitor |
AZURE_TIMEOUT_MS | 30000 | หมดเวลาสำหรับการโทร Azure Monitor REST |
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 ได้รับการออกแบบมาเพื่อใช้กับปลั๊กอินการบันทึก Docker ในตัวของ gelf หากต้องการเปิดใช้งาน ให้แก้ไข /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 .