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:

  1. Di portal Microsoft Azure, navigasikan ke ruang kerja Log Analytics
  2. Di menu Pengaturan, pilih Manajemen agen
  3. 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:

  1. Di portal Microsoft Azure, navigasikan ke ruang kerja Log Analytics
  2. Di menu Umum, pilih Log
  3. Ketik kueri berikut: ContainerInstanceLog_CL | limit 50
  4. 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.

Hasil Pencarian Log di portal Microsoft Azure

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:

  1. Di portal Microsoft Azure, navigasikan ke ruang kerja Log Analytics
  2. Di menu Umum, pilih Log
  3. Ketik kueri berikut: ContainerEvent_CL | limit 50
  4. 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.

Hasil Pencarian Kejadian di portal Microsoft Azure

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: