Panduan pemecahan masalah Syslog untuk Agen Azure Monitor untuk Linux

Perhatian

Artikel ini mereferensikan CentOS, distribusi Linux yang mendekati status End Of Life (EOL). Harap pertimbangkan penggunaan dan perencanaan Anda yang sesuai. Untuk informasi selengkapnya, lihat panduan Akhir Masa Pakai CentOS.

Gambaran umum Azure Monitor Agent untuk koleksi Linux Syslog dan standar RFC yang didukung:

  • Agen Azure Monitor menginstal konfigurasi output untuk daemon Syslog sistem selama proses penginstalan. File konfigurasi menentukan cara alur peristiwa antara daemon Syslog dan Agen Azure Monitor.
  • Untuk rsyslog (sebagian besar distribusi Linux), file konfigurasinya adalah /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf. Untuk syslog-ng, file konfigurasinya adalah /etc/syslog-ng/conf.d/azuremonitoragent-tcp.conf.
  • Agen Azure Monitor mendengarkan port TCP untuk menerima peristiwa dari rsyslog / syslog-ng. Port untuk komunikasi ini dicatat di /etc/opt/microsoft/azuremonitoragent/config-cache/syslog.port.

    Catatan

    Sebelum Azure Monitor Agent versi 1.28, ia menggunakan soket domain Unix alih-alih port TCP untuk menerima peristiwa dari rsyslog. omfwd modul output dalam rsyslog menawarkan mekanisme penampungan dan coba lagi untuk meningkatkan keandalan.

  • Daemon Syslog menggunakan antrean saat penyerapan Agen Azure Monitor tertunda atau ketika Agen Azure Monitor tidak dapat dijangkau.
  • Agen Azure Monitor menyerap peristiwa Syslog melalui soket yang disebutkan sebelumnya dan memfilternya berdasarkan kombinasi fasilitas atau tingkat keparahan dari konfigurasi aturan pengumpulan data (DCR) di /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks/. Setiap facility atau severity tidak ada dalam DCR dihilangkan.
  • Agen Azure Monitor mencoba mengurai peristiwa sesuai dengan RFC3164 dan RFC5424. Ini juga tahu cara mengurai format pesan yang tercantum di situs web ini.
  • Agen Azure Monitor mengidentifikasi titik akhir tujuan untuk peristiwa Syslog dari konfigurasi DCR dan mencoba mengunggah peristiwa.

    Catatan

    Agen Azure Monitor menggunakan persistensi lokal secara default. Semua peristiwa yang diterima dari rsyslog atau syslog-ng diantrekan jika gagal diunggah /var/opt/microsoft/azuremonitoragent/events .

Terbitan

Anda mungkin mengalami masalah berikut.

Data Rsyslog tidak diunggah karena masalah ruang disk penuh pada Agen Azure Monitor untuk Linux

Bagian berikutnya menjelaskan masalahnya.

Gejala

Data Syslog tidak diunggah: Saat Anda memeriksa log kesalahan di /var/opt/microsoft/azuremonitoragent/log/mdsd.err, Anda melihat entri tentang Kesalahan saat menyisipkan item ke Penyimpanan persisten lokal... Tidak ada ruang yang tersisa di perangkat yang mirip dengan cuplikan berikut:

2021-11-23T18:15:10.9712760Z: Error while inserting item to Local persistent store syslog.error: IO error: No space left on device: While appending to file: /var/opt/microsoft/azuremonitoragent/events/syslog.error/000555.log: No space left on device

Penyebab

Peristiwa /var/opt/microsoft/azuremonitoragent/events buffer Agen Azure Monitor untuk Linux sebelum penyerapan. Pada Agen Azure Monitor default untuk penginstalan Linux, direktori ini mengambil ~650 MB ruang disk diam. Ukuran pada disk meningkat ketika berada di bawah beban pengelogan berkelanjutan. Ini akan dibersihkan sekitar setiap 60 detik dan mengurangi kembali ke ~ 650 MB ketika beban kembali menganggur.

Mengonfirmasi masalah disk lengkap

df Perintah menunjukkan hampir tidak ada ruang yang tersedia di /dev/sda1, seperti yang ditunjukkan dalam output berikut. Perhatikan bahwa Anda harus memeriksa item baris yang berkorelasi dengan direktori log (misalnya, /var/log atau /var atau /).

   df -h
Filesystem Size  Used Avail Use% Mounted on
udev        63G     0   63G   0% /dev
tmpfs       13G  720K   13G   1% /run
/dev/sda1   29G   29G  481M  99% /
tmpfs       63G     0   63G   0% /dev/shm
tmpfs      5.0M     0  5.0M   0% /run/lock
tmpfs       63G     0   63G   0% /sys/fs/cgroup
/dev/sda15 105M  4.4M  100M   5% /boot/efi
/dev/sdb1  251G   61M  239G   1% /mnt
tmpfs       13G     0   13G   0% /run/user/1000

Anda dapat menggunakan du perintah untuk memeriksa disk untuk menentukan file mana yang menyebabkan disk penuh. Contohnya:

   cd /var/log
   du -h syslog*
6.7G    syslog
18G     syslog.1

Dalam beberapa kasus, du mungkin tidak melaporkan file atau direktori besar apa pun. Ada kemungkinan bahwa file yang ditandai sebagai (dihapus) mengambil ruang. Masalah ini dapat terjadi ketika beberapa proses lain telah mencoba menghapus file, tetapi proses dengan file masih terbuka. Anda dapat menggunakan perintah untuk memeriksa file tersebut lsof . Dalam contoh berikut, kita melihat bahwa /var/log/syslog ditandai sebagai dihapus tetapi membutuhkan ruang disk 3,6 GB. Ini belum dihapus karena proses dengan PID 1484 masih membuka file.

   sudo lsof +L1
COMMAND   PID   USER   FD   TYPE DEVICE   SIZE/OFF NLINK  NODE NAME
none      849   root  txt    REG    0,1       8632     0 16764 / (deleted)
rsyslogd 1484 syslog   14w   REG    8,1 3601566564     0 35280 /var/log/syslog (deleted)

Konfigurasi default Rsyslog mencatat semua fasilitas ke /var/log/

Pada beberapa distro populer (misalnya, Ubuntu 18.04 LTS), rsyslog dikirim dengan file konfigurasi default (/etc/rsyslog.d/50-default.conf), yang mencatat peristiwa dari hampir semua fasilitas ke disk di /var/log/syslog. Peristiwa Syslog keluarga RedHat/CentOS disimpan di bawah /var/log/ tetapi dalam file yang berbeda: /var/log/messages.

Agen Azure Monitor tidak mengandalkan peristiwa Syslog yang dicatat ke /var/log/. Sebaliknya, ini mengonfigurasi layanan rsyslog untuk meneruskan peristiwa melalui port TCP langsung ke azuremonitoragent proses layanan (mdsd).

Perbaikan: Hapus fasilitas volume tinggi dari /etc/rsyslog.d/50-default.conf

Jika Anda mengirim volume log tinggi melalui rsyslog dan sistem Anda disiapkan untuk mencatat peristiwa untuk fasilitas ini, pertimbangkan untuk memodifikasi konfigurasi rsyslog default untuk menghindari pengelogan dan menyimpannya di bawah /var/log/. Peristiwa untuk fasilitas ini masih akan diteruskan ke Agen Azure Monitor karena rsyslog menggunakan konfigurasi yang berbeda untuk penerusan yang ditempatkan di /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf.

  1. Misalnya, untuk menghapus local4 peristiwa agar tidak masuk atau /var/log/syslog/var/log/messages, ubah baris ini dari /etc/rsyslog.d/50-default.conf cuplikan ini:

    *.*;auth,authpriv.none          -/var/log/syslog
    

    Ke cuplikan ini (tambahkan local4.none;):

    *.*;local4.none;auth,authpriv.none          -/var/log/syslog
    
  2. sudo systemctl restart rsyslog

Agen Azure Monitor untuk buffer peristiwa Linux mengisi disk

Jika Anda mengamati /var/opt/microsoft/azuremonitor/events direktori yang tumbuh tidak terbatas (10 GB atau lebih tinggi) dan tidak mengurangi ukuran, ajukan tiket. Untuk Ringkasan, masukkan Azure Monitor Agent Event Buffer sedang mengisi disk. Untuk Jenis masalah, masukkan Saya memerlukan bantuan untuk mengonfigurasi pengumpulan data dari VM.

Ajukan tiket

  1. Buka aturan pengumpulan data dan di menu di sebelah kiri, pilih Permintaan Dukungan Baru. Anda juga dapat membuka panel Bantuan + dukungan dan memilih Buat permintaan dukungan.
  2. Pilih:
    • Jenis masalah: Teknis.
    • Langganan: Pilih langganan tempat komputer Anda berada.
    • Jenis layanan: Aturan pengumpulan data dan Agen Azure Monitor.
    • Apakah masalah Anda terkait dengan sumber daya?: Ya. Pilih komputer Anda dengan menggunakan pemilih sumber daya.
  3. Masukkan Ringkasan dan Jenis masalah seperti yang ditunjukkan dari langkah-langkah pemecahan masalah. Informasi yang akurat mengarah pada penyelesaian masalah yang lebih cepat.
  4. Pilih Berikutnya dan tinjau solusi yang direkomendasikan untuk melihat apakah solusi tersebut membantu.
  5. Jika tidak membantu, pilih Berikutnya dan isi kumpulan detail berikutnya.
  6. Pilih Berikutnya, tinjau detail akhir, dan pilih Buat.