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.

Catatan

Saat ini, Anda hanya dapat mengirim data peristiwa dari instans kontainer Linux ke Log Analytics.

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. Catat:
    • 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 bekerja dengan gambar publik.

az container create \
    --resource-group myResourceGroup \
    --name mycontainergroup001 \
    --image fluent/fluentd \
    --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 bekerja dengan gambar publik.

apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
  containers:
  - name: mycontainer001
    properties:
      environmentVariables: []
      image: fluent/fluentd
      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, dibutuhkan beberapa menit (hingga 10) agar entri log pertama muncul di portal Microsoft 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.

Log Search results in the Azure portal

Melihat kejadian

Anda juga dapat melihat peristiwa untuk instans kontainer di portal Microsoft Azure. Kejadian mencakup waktu instans dibuat dan kapan instans 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.

Event Search results in the Azure portal

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 di bawah ini hanya ada sebagai bagian dari skema, dan tidak akan memiliki data yang dipancarkan dalam log. Kolom ini ditandai di bawah ini dengan deskripsi 'Kosong'.

ContainerInstanceLog_CL

Kolom Jenis 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 tanggalwaktu 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

Kolom Jenis 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 tanggalwaktu 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 Kosong
ResourceGroup string Nama grup sumber daya yang dikaitkan dengan rekaman
SubscriptionId string Pengidentifikasi unik untuk langganan yang dikaitkan dengan catatan
TimeGenerated tanggalwaktu 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

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: