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 | 5000 | عدد مرات جمع البيانات لإرسالها إلى 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 .