Apabila anda menghadapi sebarang masalah dengan prestasi pelayan anda, perkara pertama yang anda mahu lakukan ialah semak log Linux anda. Dalam log sistem, anda boleh menemui beberapa mesej diagnostik yang berguna daripada komponen sistem pengendalian yang berbeza 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:
emerg- kegagalan, keutamaan tertinggi;alert- amaran segera;crit- peristiwa kritikal;err- ralat biasa;warn- amaran biasa;notice- pemberitahuan;info- mesej maklumat;debug- maklumat penyahpepijatan;
Pada masa ini, perkhidmatan penuaian balak utama di Linux adalah rsyslog and systemd-journad. Mereka menggunakan kebanyakan pakej pengedaran moden dan bekerja secara bebas.
rsyslog
Log perkhidmatan ini terletak di "/ var / log /” dalam bentuk fail teks biasa. Mesej log dimasukkan ke dalam fail yang berbeza bergantung pada jenis acara. Contohnya, “/var/log/auth.log” mengandungi maklumat mengenai kebenaran pengguna dalam sistem, dan “/var/log/kern.log" mengandungi mesej kernel. Nama fail boleh berbeza merentasi pakej pengedaran, jadi mari kita lihat fail konfigurasi untuk mendapatkan idea di mana "/etc/rsyslog.d/50-default.conf".
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 mengeluarkannya 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 bermakna semua mesej yang diterima daripada mekanisme kebenaran akan direkodkan ke dalam “/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 "/ var / log / syslog"fail. Kedua-dua fail ini biasanya yang paling popular. Peraturan berikut menentukan laluan untuk menyimpan log kernel "kern.*” dan log perkhidmatan mel “mel.*"
Fail log boleh dibuka dengan bantuan mana-mana editor teks, seperti kurang, kucing, ekor. Jom buka “/var/log/auth.log” fail
less /var/log/auth.log
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.
- Cap masa mesej - “12 Feb 06:18:33”
- Nama komputer yang menghantar mesej - "vds"
- Nama aplikasi atau perkhidmatan yang menghantar mesej - "sshd"
- ID Proses - [653]
- 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:
Fail ini juga merekodkan arahan dengan kebenaran lanjutan
Mari kita buka / var / log / syslog fail
Mesej yang diserlahkan pada tangkapan skrin ialah mesej tentang penutupan antara muka rangkaian.
Untuk mencari maklumat melalui fail teks panjang gunakan grep utiliti. Anda boleh mencari semua mesej yang diterima daripada pptpd perkhidmatan dalam "/ var / log / syslog” fail.
grep 'pptpd' /var/log/syslog
Semasa diagnostik yang anda boleh gunakan ekor utiliti yang boleh memaparkan beberapa baris terakhir fail. Perintah "ekor -f / var / log / syslog” akan membolehkan anda menonton rakaman log dalam masa nyata.
Perkhidmatan rsyslog adalah sangat fleksibel dan berkuasa. Ia boleh digunakan untuk menuai balak dalam sistem tempatan dan juga pada 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 berkembang. 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. Memandangkan log baharu dibuat, log lama boleh dipadamkan atau dihantar melalui e-mel. Putaran log dilakukan oleh logrotate utiliti. Anda boleh menemui konfigurasi utama dalam “/etc/logrotate.conffail ". Kandungan fail juga diproses dalam "/etc/logrotate.d/Folder
Peraturan baharu boleh dilog masuk ke fail konfigurasi utama. Walau bagaimanapun, yang terbaik adalah 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 putaran untuk log rsyslog perkhidmatan.
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 "/ var / log /"folder 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, melaksanakan "lelaki melotot” perintah
Mengumpul log Linux - jurnal
Perkhidmatan menuai balak systemd-journad adalah sebahagian daripada sistem permulaan sistem. Fail log Linux disimpan dalam “/var/log/jurnal/” dalam format khas dan boleh dibuka dengan bantuan jurnalctl utiliti. Format rekod adalah sama seperti dalam rsyslog.
Perintah jurnalctl 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 terakhirjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- tunjukkan rekod dalam tempoh masa tertentujournalctl -u pptpd- tunjukkan rekod perkhidmatan tertentujournalctl -k- tunjukkan mesej kerneljournalctl -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 tunjukkan semua kesilapan pptpd perkhidmatan
journalctl -u pptpd -p err
Jika anda menentukan laluan ke fail boleh laku sebagai atribut utiliti akan menunjukkan semua mesej yang dihantar oleh fail ini. Mari tunjukkan semua mesej yang dihantar oleh fail “/usr/bin/sudo” sejak 04:15 pada 18 Februari 2020. Malah, ia akan menunjukkan semua perintah yang dilaksanakan dengan kebenaran yang lebih tinggi.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
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 “/ var / log /” folder di mana semua percubaan log masuk disimpan. Fail ini adalah binari dan boleh dibuka dengan program khas sahaja.
/var/log/wtmp mengandungi maklumat tentang percubaan log masuk yang berjaya. Gunakan utiliti terakhir untuk membukanya.
/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 hujung fail.
/var/log/loadlog - mengandungi masa tindakan log masuk terakhir untuk setiap rekod akaun. Ia boleh dibuka dengan blog terakhir