Grup kontainer dan pengelogan instans dengan log Azure Monitor
Ruang kerja Log Analytics menyediakan lokasi terpusat untuk menyimpan dan mengkueri data log tidak hanya dari sumber daya Azure, tetapi juga sumber daya lokal dan sumber daya di cloud lain. Azure Container Instances menyertakan dukungan bawaan untuk mengirim log dan data peristiwa ke log Azure Monitor.
Untuk mengirim log grup kontainer dan data peristiwa ke log Azure Monitor, tentukan ID ruang kerja Log Analytics dan kunci ruang kerja yang ada saat mengonfigurasi grup kontainer.
Bagian berikut ini menjelaskan cara membuat grup kontainer berkemampuan pengelogan dan cara mengkueri log. Anda juga dapat memperbarui grup kontainer dengan ID ruang kerja dan kunci ruang kerja untuk mengaktifkan pengelogan.
Catatan
Artikel ini baru-baru ini diperbarui untuk menggunakan istilah log Azure Monitor alih-alih Analitik Log. Data log masih disimpan di ruang kerja Analitik Log dan masih dikumpulkan dan dianalisis oleh layanan Analitik Log yang sama. Kami memperbarui terminologi untuk mencerminkan peran log di Azure Monitor dengan lebih baik. Lihat Perubahan terminologi Azure Monitor untuk detailnya.
Prasyarat
Untuk mengaktifkan pengelogan dalam instans kontainer, Anda memerlukan yang berikut ini:
Dapatkan info masuk Log Analytics
Azure Container Instances memerlukan izin untuk mengirim data ke ruang kerja Log Analytics Anda. Untuk memberikan izin ini dan mengaktifkan pengelogan, Anda harus memberikan ID ruang kerja Log Analytics dan salah satu kuncinya (baik utama atau sekunder) saat membuat grup kontainer.
Untuk mendapatkan ID ruang kerja log analytics dan kunci utama:
- Di portal Microsoft Azure, navigasikan ke ruang kerja Log Analytics
- Di menu Pengaturan, pilih Manajemen agen
- Perhatikan:
- ID Ruang Kerja
- Kunci utama
Membuat grup kontainer
Sekarang setelah Anda memiliki ID ruang kerja log analytics dan kunci utama, Anda siap untuk membuat grup kontainer dengan dukungan pengelogan.
Contoh berikut menunjukkan dua cara untuk membuat grup kontainer yang terdiri dari satu kontainer fluentd: Azure CLI, dan Azure CLI dengan templat YAML. Kontainer fluentd menghasilkan beberapa baris output dalam konfigurasi defaultnya. Karena output ini dikirim ke ruang kerja Analitik Log Anda, output ini berfungsi dengan baik untuk mendemonstrasikan tampilan dan kueri log.
Menyebarkan dengan Azure CLI
Untuk menyebarkan menggunakan Azure CLI, tentukan parameter --log-analytics-workspace
dan --log-analytics-workspace-key
dalam perintah az container create. Ganti dua nilai ruang kerja dengan nilai yang Anda peroleh di langkah sebelumnya (dan perbarui nama grup sumber daya) sebelum menjalankan perintah berikut ini.
Catatan
Contoh berikut menarik gambar kontainer publik dari Docker Hub. Sebaiknya Anda menyiapkan rahasia penarikan untuk diautentikasi menggunakan akun Docker Hub alih-alih membuat permintaan penarikan anonim. Untuk meningkatkan keandalan saat bekerja dengan konten publik, impor dan kelola gambar di registri kontainer Azure privat. Pelajari lebih lanjut cara menangani citra publik.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Menyebarkan dengan YAML
Gunakan metode ini jika Anda lebih suka menyebarkan grup kontainer dengan YAML. YAML berikut mendefinisikan grup kontainer dengan satu kontainer. Salin YAML ke dalam file baru, lalu ganti LOG_ANALYTICS_WORKSPACE_ID
dan LOG_ANALYTICS_WORKSPACE_KEY
dengan nilai yang Anda peroleh di langkah sebelumnya. Simpan file sebagai deploy-aci.yaml.
Catatan
Contoh berikut menarik gambar kontainer publik dari Docker Hub. Sebaiknya Anda menyiapkan rahasia penarikan untuk diautentikasi menggunakan akun Docker Hub alih-alih membuat permintaan penarikan anonim. Untuk meningkatkan keandalan saat bekerja dengan konten publik, impor dan kelola gambar di registri kontainer Azure privat. Pelajari lebih lanjut cara menangani citra publik.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
Selanjutnya, jalankan perintah berikut untuk menyebarkan grup kontainer. Ganti myResourceGroup
dengan grup sumber daya di langganan Anda (atau pertama-tama buat grup sumber daya bernama "myResourceGroup"):
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Anda akan menerima respons dari Azure yang berisi detail penyebaran tak lama setelah mengeluarkan perintah.
Menampilkan log
Setelah Anda menyebarkan grup kontainer, diperlukan waktu beberapa menit (hingga 10) agar entri log pertama muncul di portal Azure.
Untuk menampilkan log grup kontainer dalam tabel ContainerInstanceLog_CL
:
- Di portal Microsoft Azure, navigasikan ke ruang kerja Log Analytics
- Di menu Umum, pilih Log
- Ketik kueri berikut:
ContainerInstanceLog_CL | limit 50
- Pilih Jalankan
Anda akan melihat beberapa hasil yang ditampilkan oleh kueri. Jika pada awalnya Anda tidak melihat hasil apa pun, tunggu beberapa menit, lalu pilih tombol Jalankan untuk menjalankan kueri lagi. Secara default, entri log ditampilkan dalam format Tabel. Anda kemudian dapat memperluas baris untuk melihat konten entri log individual.
Menampilkan kejadian
Anda juga dapat melihat peristiwa untuk instans kontainer di portal Microsoft Azure. Peristiwa termasuk waktu instans dibuat dan kapan dimulai. Untuk melihat data peristiwa dalam tabel ContainerEvent_CL
:
- Di portal Microsoft Azure, navigasikan ke ruang kerja Log Analytics
- Di menu Umum, pilih Log
- Ketik kueri berikut:
ContainerEvent_CL | limit 50
- Pilih Jalankan
Anda akan melihat beberapa hasil yang ditampilkan oleh kueri. Jika pada awalnya Anda tidak melihat hasil apa pun, tunggu beberapa menit, lalu pilih tombol Jalankan untuk menjalankan kueri lagi. Secara default, entri ditampilkan dalam format Tabel. Anda kemudian dapat memperluas baris untuk melihat konten entri individual.
Mengkueri log kontainer
Log Azure Monitor menyertakan bahasa kueri ekstensif untuk menarik informasi dari ribuan baris output log yang berpotensi.
Struktur dasar kueri adalah tabel sumber (dalam artikel ini, ContainerInstanceLog_CL
atau ContainerEvent_CL
) diikuti oleh serangkaian operator yang dipisahkan oleh karakter pipa (|
). Anda dapat menghubungkan beberapa operator untuk menyempurnakan hasil dan melakukan fungsi lanjutan.
Untuk melihat contoh hasil kueri, tempelkan kueri berikut ke dalam kotak teks kueri, dan pilih tombol Jalankan untuk menjalankan kueri. Kueri ini menampilkan semua entri log yang bidang "Pesan"-nya berisi kata "peringatkan":
ContainerInstanceLog_CL
| where Message contains "warn"
Kueri yang lebih kompleks juga didukung. Misalnya, kueri ini hanya menampilkan entri log untuk grup kontainer "mycontainergroup001" yang dibuat dalam satu jam terakhir:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Skema log
Catatan
Beberapa kolom yang tercantum dalam tabel berikut ini hanya ada sebagai bagian dari skema, dan tidak akan memiliki data apa pun yang dikeluarkan dalam log. Kolom ini ditandai dengan deskripsi 'Kosong'.
ContainerInstanceLog_CL
Column | Tipe | Deskripsi |
---|---|---|
Komputer | string | Kosong |
ContainerGroup_s | string | Nama grup kontainer yang terkait dengan rekaman |
ContainerID_s | string | Pengidentifikasi unik untuk kontainer yang terkait dengan rekaman |
ContainerImage_s | string | Nama citra kontainer yang terkait dengan rekaman |
Location_s | string | Lokasi sumber daya yang terkait dengan rekaman |
Pesan | string | Jika berlaku, pesan dari kontainer |
OSType_s | string | Nama sistem operasi kontainer didasarkan pada |
RawData | string | Kosong |
ResourceGroup | string | Nama grup sumber daya yang dikaitkan dengan rekaman |
Source_s | string | Nama komponen pencatatan, "LoggingAgent" |
SubscriptionId | string | Pengidentifikasi unik untuk langganan yang dikaitkan dengan catatan |
TimeGenerated | datetime | Tanda waktu ketika peristiwa dihasilkan oleh layanan Azure yang memproses permintaan yang sesuai dengan peristiwa |
Jenis | string | Nama tabel |
_ResourceId | string | Pengidentifikasi unik untuk sumber daya yang terkait dengan rekaman |
_SubscriptionId | string | Pengidentifikasi unik untuk langganan yang dikaitkan dengan catatan |
ContainerEvent_CL
Column | Tipe | Deskripsi |
---|---|---|
Komputer | string | Kosong |
ContainerGroupInstanceId_g | string | Pengidentifikasi unik untuk grup kontainer yang terkait dengan rekaman |
ContainerGroup_s | string | Nama grup kontainer yang terkait dengan rekaman |
ContainerName_s | string | Nama kontainer yang terkait dengan rekaman |
Count_d | real | Berapa kali aktivitas itu terjadi sejak polling terakhir |
FirstTimestamp_t | datetime | Tanda waktu pertama kali aktivitas terjadi |
Location_s | string | Lokasi sumber daya yang terkait dengan rekaman |
Pesan | string | Jika berlaku, pesan dari kontainer |
OSType_s | string | Nama sistem operasi kontainer didasarkan pada |
RawData | string | Kosong |
Reason_s | string | Status grup kontainer saat ini |
ResourceGroup | string | Nama grup sumber daya yang dikaitkan dengan rekaman |
SubscriptionId | string | Pengidentifikasi unik untuk langganan yang dikaitkan dengan catatan |
TimeGenerated | datetime | Tanda waktu ketika peristiwa dihasilkan oleh layanan Azure yang memproses permintaan yang sesuai dengan peristiwa |
Jenis | string | Nama tabel |
_ResourceId | string | Pengidentifikasi unik untuk sumber daya yang terkait dengan rekaman |
_SubscriptionId | string | Pengidentifikasi unik untuk langganan yang dikaitkan dengan catatan |
Menggunakan Pengaturan Diagnostik
Pengaturan diagnostik untuk grup kontainer adalah fitur pratinjau dan dapat diaktifkan melalui opsi fitur pratinjau di portal Azure. Setelah fitur ini diaktifkan untuk langganan, Diagnostik Pengaturan dapat diterapkan ke grup kontainer. Menerapkan Pengaturan Diagnostik menyebabkan grup kontainer dimulai ulang.
Misalnya, berikut cara menggunakan perintah New-AzDiagnosticSetting untuk menerapkan objek Diagnostik Pengaturan ke grup kontainer.
$log = @()
$log += New-AzDiagnosticSettingLogSettingsObject -Enabled $true -Category ContainerInstanceLog -RetentionPolicyDay 7 -RetentionPolicyEnabled $true
New-AzDiagnosticSetting -Name test-setting -ResourceId <container-group-resource-id> -WorkspaceId <log-analytics-workspace-id> -Log $log
Langkah berikutnya
Log Azure Monitor
Untuk informasi selengkapnya tentang mengkueri log dan mengonfigurasi peringatan di log Azure Monitor, lihat:
Memantau penggunaan CPU dan memori kontainer
Untuk informasi tentang memantau penggunaan CPU instans kontainer dan sumber daya memori, lihat: