gelf2azure adalah kontainer Docker yang menerima log dalam format GELF dari UDP, dan meneruskannya ke Azure Monitor menggunakan REST API.
Ini dirancang untuk berintegrasi dengan baik dengan plugin logging Docker bawaan gelf di input, dan API Pengumpul Data HTTP Azure Monitor di output.
Sebagai bonus tambahan, ini juga memperlihatkan aplikasi web kecil yang menampilkan log saat mereka tiba, memberikan pengalaman seperti ekor.
Buka terminal dan luncurkan kontainer buruh pelabuhan gelf2azure:
docker run --rm -it -p 12201:12201/udp -p 54313:54313 gimmi/gelf2azure:latest
Buka dengan browser Anda http://127.0.0.1:54313
Buka terminal lain dan kirim log sampel dari kontainer 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!'
Anda akan melihat log "Halo dunia!" muncul di jendela browser:
Pesan dapat dikirim dari sumber mana saja, selama menggunakan format GELF.
Dengan netcat
nc.exe -u 127.0.0.1 12201
{ "host": "example.org", "short_message": "xoxo", "timestamp": 1602850875.683, "_container_name": "agitated_goldberg" }
Atau di pesta
echo -n '{"host":"example.org","short_message":"xoxo","timestamp":1602850875.683,"_container_name":"agitated_goldberg"}' > /dev/udp/127.0.0.1/12201
Konfigurasi dilakukan dengan meneruskan variabel lingkungan:
Variabel Lingkungan | Bawaan | Keterangan |
---|---|---|
AZURE_CUSTOMER_ID | Parameter CustomerID (AKA Workspace ID) untuk Azure API. Membiarkannya tidak disetel akan menonaktifkan pengiriman data ke Azure. | |
AZURE_SHARE_KEY | Parameter SharedKey (Kunci Utama AKA) untuk Azure API | |
AZURE_LOG_TYPE | Parameter Log-Type untuk Azure API | |
AZURE_BATCH_MS | 5000 | Seberapa sering data dikumpulkan untuk dikirim ke Azure Monitor |
AZURE_TIMEOUT_MS | 30000 | Batas waktu untuk panggilan REST Azure Monitor |
HTTPS_PROXY | Setel proxy jika diperlukan, seperti http://my.proxy.com:80 | |
DEBUG | Gunakan value app:* untuk mengaktifkan pencatatan internal. Berguna untuk pemecahan masalah |
Jalankan perintah berikut di 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 dirancang untuk digunakan dengan plugin logging Docker bawaan gelf. Untuk mengaktifkannya, ubah /etc/docker/daemon.json
sebagai berikut:
{
"log-driver" : " gelf " ,
"log-opts" : {
"gelf-address" : " udp://172.16.0.13:12201 "
}
}
docker build --pull --no-cache -t gimmi/gelf2azure:latest .