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
. Untuksyslog-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 dalamrsyslog
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/
. Setiapfacility
atauseverity
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
atausyslog-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
.
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
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
- 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.
- 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.
- Masukkan Ringkasan dan Jenis masalah seperti yang ditunjukkan dari langkah-langkah pemecahan masalah. Informasi yang akurat mengarah pada penyelesaian masalah yang lebih cepat.
- Pilih Berikutnya dan tinjau solusi yang direkomendasikan untuk melihat apakah solusi tersebut membantu.
- Jika tidak membantu, pilih Berikutnya dan isi kumpulan detail berikutnya.
- Pilih Berikutnya, tinjau detail akhir, dan pilih Buat.