Knowledgebase Arahan mudah untuk bekerja dengan perkhidmatan Profitserver
Utama Knowledgebase Bagaimana untuk membaca log Linux dan di mana untuk mencarinya

Bagaimana untuk membaca log Linux dan di mana untuk mencarinya


Apabila anda menghadapi sebarang masalah dengan prestasi pelayan anda, perkara pertama yang anda ingin lakukan ialah menyemak log Linux anda . Dalam log sistem, anda boleh menemui beberapa mesej diagnostik yang berguna daripada pelbagai komponen sistem pengendalian seperti kernel atau pelbagai perkhidmatan, jadi kemungkinan besar anda akan menemui punca kegagalan di sana.

Setiap mesej dalam log dijana dalam hasil peristiwa tertentu dalam sistem pengendalian: daripada pengguna, kebenaran kepada penutupan perkhidmatan atau kegagalan aplikasi. Peristiwa ini mempunyai keutamaan yang berbeza bergantung pada tahap kritikalnya. Terdapat jenis acara berikut dalam Linux:

  1. emerg - kegagalan, keutamaan tertinggi;
  2. alert - amaran segera;
  3. crit - peristiwa kritikal;
  4. err - ralat biasa;
  5. warn - amaran biasa;
  6. notice - pemberitahuan;
  7. info - mesej maklumat;
  8. debug - maklumat penyahpepijatan;

Pada masa ini, perkhidmatan pengumpulan log utama dalam Linux ialah rsyslog dan systemd-journald . Ia menggunakan kebanyakan pakej pengedaran moden dan berfungsi secara bebas.

rsyslog

Log perkhidmatan ini terletak dalam folder " /var/log/ " dalam bentuk fail teks biasa. Mesej log diletakkan dalam fail yang berbeza bergantung pada jenis peristiwa. Contohnya, " /var/log/auth.log " mengandungi maklumat tentang kebenaran pengguna dalam sistem, dan " /var/log/kern.log " mengandungi mesej kernel. Nama fail boleh berbeza mengikut pakej pengedaran, jadi mari kita lihat fail konfigurasi untuk mendapatkan idea tentang di mana " /etc/rsyslog.d/50-default.conf " berada.

Сбор логов Linux утилитой rsyslog

Peraturan ini memaparkan fail yang mengandungi setiap jenis mesej log. Bahagian kiri memaparkan jenis mesej dalam bentuk berikut “ [Sumber].[Keutamaan] ” dan bahagian kanan memaparkan nama fail log. Semasa menulis jenis mesej, aksara “ * ” boleh ditambah. Ia bermaksud nilai kosong atau “ tiada ” yang akan mengalih keluarnya daripada senarai. Mari kita lihat dengan lebih dekat dua peraturan pertama.

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

Peraturan pertama bermaksud semua mesej yang diterima daripada mekanisme kebenaran akan direkodkan ke dalam fail " /var/log/auth.log ". Semua percubaan kebenaran (berjaya dan tidak) akan didaftarkan dalam fail ini. Peraturan kedua menunjukkan bahawa semua mesej kecuali yang berkaitan dengan kebenaran akan direkodkan ke dalam fail " /var/log/syslog ". Kedua-dua fail ini biasanya yang paling popular. Peraturan berikut menentukan laluan untuk menyimpan log kernel " kern.* " dan log perkhidmatan mel " mail.* ".

Fail log boleh dibuka dengan bantuan mana-mana editor teks, seperti less , cat , tail . Mari kita buka fail “ /var/log/auth.log ” .

less /var/log/auth.log
Запись в лог-файле Линукс о неудачной попытке авторизации SSH

Setiap baris fail adalah mesej berasingan yang diterima daripada aplikasi atau perkhidmatan. Semua mesej tanpa mengira sumbernya mempunyai satu format dan terdiri daripada 5 bahagian. Mari kita ambil mesej yang diserlahkan dalam tangkapan skrin sebagai contoh.

  1. Cap masa mesej - “12 Feb 06:18:33”
  2. Nama komputer yang menghantar mesej - "vds"
  3. Nama aplikasi atau perkhidmatan yang menghantar mesej - "sshd"
  4. ID Proses - [653]
  5. Teks mesej - "Kata laluan diterima untuk mihail dari 188.19.42.165 port 2849 ssh2"

Ini adalah contoh sambungan yang berjaya ke SSH.

Dan inilah cara percubaan log masuk yang tidak berjaya kelihatan:

Читаем логи Linux

Fail ini juga merekodkan arahan dengan kebenaran lanjutan

Как правильно прочитать лог Linux

Mari kita buka fail / var/log/syslog

Mesej yang diserlahkan pada tangkapan skrin ialah mesej tentang penutupan antara muka rangkaian.

Утилита logorotate

Untuk mencari maklumat melalui fail teks panjang, gunakan utiliti grep . Anda boleh menemui semua mesej yang diterima daripada perkhidmatan pptpd dalam fail “ /var/log/syslog ”.

grep 'pptpd' /var/log/syslog
файл “/etc/logrotate.d/rsyslog”

Semasa diagnostik, anda boleh menggunakan utiliti tail yang boleh memaparkan beberapa baris terakhir fail. Arahan " tail -f /var/log/syslog " akan membolehkan anda menonton rakaman log dalam masa nyata.

Perkhidmatan rsyslog sangat fleksibel dan berkuasa. Ia boleh digunakan untuk menuai log dalam sistem tempatan serta di peringkat perusahaan. Anda boleh mendapatkan dokumentasi penuh di laman web rasmi https://www.rsyslog.com/

Log putaran dalam Linux

Rakaman log berlaku secara berterusan, jadi saiz fail sentiasa bertambah. Mekanisme putaran memastikan pengarkiban automatik log lama dan penciptaan fail baharu. Bergantung pada peraturan, ia boleh berlaku setiap hari, mingguan, bulanan atau mengikut had saiz. Apabila log baharu dicipta, log lama boleh dipadamkan atau dihantar melalui e-mel. Putaran log dilakukan oleh utiliti logrotate . Anda boleh menemui konfigurasi utama dalam fail " /etc/logrotate.conf ". Kandungan fail juga diproses dalam folder " /etc/logrotate.d/ ".

Peraturan baharu boleh dilog masuk ke dalam fail konfigurasi utama. Walau bagaimanapun, adalah lebih baik untuk mencipta fail berasingan dalam " /etc/logrotate.d/ ". Secara lalai, terdapat beberapa fail dalam direktori ini.

Настраиваем ротацию логов в Линукс

Mari kita lihat fail “ /etc/logrotate.d/rsyslog " yang mengandungi peraturan penggiliran untuk log perkhidmatan rsyslog.

Contoh вывода всех ошибок pptpd в лог-файлах

Pertama, peraturan harus mengandungi laluan ke fail log dan kemudian pergi semua garis panduan dalam kurungan melengkung.

  • putar 7 - bilangan fail untuk disimpan - 7
  • harian - buat fail baharu setiap hari
  • tekanan - memampatkan dan mengarkibkan fail lama
Учимся читать логи Линукс

Anda boleh lihat pada tangkapan skrin bahawa dalam folder " /var/log/ " terdapat log utama " syslog " dan 7 arkib, yang sepadan dengan peraturan dalam fail konfigurasi.

Anda boleh mendapatkan penerangan yang lebih terperinci tentang logrotate dalam manual, dengan melaksanakan arahan " man logrotate ".

Mengumpul log Linux - jurnal

Perkhidmatan pengumpulan log systemd-journald ialah sebahagian daripada sistem permulaan systemd . Fail log Linux disimpan dalam " /var/log/journal/ " dalam format khas dan boleh dibuka dengan bantuan utiliti journalctl . Format rekod adalah sama seperti dalam rsyslog.

Perintah journalctl tanpa atribut menunjukkan semua rekod tetapi ia tidak sesuai untuk log yang lebih besar. Mari kita lihat beberapa pilihan utiliti ini.

  • journalctl -b - tunjukkan semua rekod sejak permulaan terakhir
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - tunjukkan rekod dalam tempoh masa tertentu
  • journalctl -u pptpd - tunjukkan rekod perkhidmatan tertentu
  • journalctl -k - tunjukkan mesej kernel
  • journalctl -p err - tunjukkan mesej keutamaan tertentu, mesej keutamaan lebih tinggi dalam kes ini (crit, alert, emerg)
  • journalctl -f - tunjukkan mesej dalam masa nyata

Untuk fleksibiliti yang lebih baik, anda boleh menggabungkan pilihan ini. Mari kita tunjukkan semua ralat perkhidmatan pptpd

journalctl -u pptpd -p err
утилита lepas

Jika anda menentukan laluan ke fail boleh laku sebagai atribut, utiliti tersebut akan memaparkan semua mesej yang dihantar oleh fail ini. Mari kita paparkan semua mesej yang dihantar oleh fail “ /usr/bin/sudo ” sejak 04:15 pada 18 Februari 2020. Malah, ia akan memaparkan semua arahan yang dilaksanakan dengan kebenaran yang lebih tinggi.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
командой lastb

Untuk mengetahui berapa banyak fail log ruang cakera yang diperlukan untuk melaksanakan arahan berikut

journalctl --disk-usage

Untuk mengehadkan fail log kepada 1Gb jalankan arahan berikut

journalctl --vacuum-size=1G

Membuka fail binari

Sekarang mari kita lihat beberapa fail khas dalam folder “ /var/log/ ” tempat semua percubaan log masuk disimpan. Fail-fail ini adalah binari dan hanya boleh dibuka dengan program khas.

/var/log/wtmp mengandungi maklumat tentang percubaan log masuk yang berjaya. Gunakan utiliti terakhir untuk membukanya.

утилита lastlog

/var/log/btmp - mengandungi semua percubaan log masuk yang gagal. Ia boleh dibuka dengan lastb dengan kebenaran lanjutan. Atribut -n mentakrifkan bilangan baris yang dipaparkan dari akhir fail.

/var/log/lastlog - mengandungi masa tindakan log masuk terakhir untuk setiap rekod akaun. Ia boleh dibuka dengan lastlog

❮ Artikel sebelumnya Penyunting teks Linux
Artikel seterusnya ❯ Bagaimana untuk mengkonfigurasi antara muka rangkaian dalam CentOS

Tanya kami tentang VPS

Kami sentiasa bersedia untuk menjawab soalan anda pada bila-bila masa siang atau malam.