Cara Mengurus Log Sistem (Konfigurasikan, Putar dan Import Ke Pangkalan Data) di RHEL 7 - Bahagian 5

Cara Mengurus Log Sistem (Konfigurasikan, Putar dan Import Ke Pangkalan Data) di RHEL 7 - Bahagian 5

Untuk menjaga anda RHEL 7 Sistem selamat, anda perlu tahu bagaimana memantau semua aktiviti yang berlaku pada sistem tersebut dengan memeriksa fail log. Oleh itu, anda akan dapat mengesan aktiviti yang tidak biasa atau berpotensi berniat jahat dan melakukan penyelesaian masalah sistem atau mengambil tindakan yang sesuai.

Peperiksaan RHCE: Mengurus Sistem Logsusing RSYSLOGD dan Logrotate - Bahagian 5

Dalam RHEL 7, daemon rsyslogd bertanggungjawab untuk pembalakan sistem dan membaca konfigurasinya dari /etc/rsyslog.Conf (Fail ini menentukan lokasi lalai untuk semua log sistem) dan dari fail di dalamnya /etc/rsyslog.d, jika ada.

Konfigurasi rsyslogd

Pemeriksaan cepat rsyslog.conf akan membantu untuk memulakan. Fail ini dibahagikan kepada 3 bahagian utama: Modul (Sejak rsyslog mengikuti reka bentuk modular), Global arahan (digunakan untuk menetapkan sifat global daemon rsyslogd), dan Peraturan. Seperti yang anda mungkin akan meneka, bahagian terakhir ini menunjukkan apa yang akan dilog masuk atau ditunjukkan (juga dikenali sebagai pemilih) dan di mana, dan akan menjadi tumpuan kami sepanjang artikel ini.

Garis khas di rsyslog.Conf adalah seperti berikut:

Konfigurasi rsyslogd

Dalam gambar di atas, kita dapat melihat bahawa pemilih terdiri daripada satu atau lebih pasangan Kemudahan: Keutamaan dipisahkan oleh titik -titik besar, di mana kemudahan menerangkan jenis mesej (rujuk Bahagian 4.1.1 dalam RFC 3164 untuk melihat senarai lengkap kemudahan yang tersedia untuk rsyslog) dan keutamaan menunjukkan keparahannya, yang boleh menjadi salah satu kata-kata yang jelas-jelas:

  1. debug
  2. maklumat
  3. notis
  4. amaran
  5. err
  6. mengkritik
  7. amaran
  8. muncul

Walaupun bukan keutamaan itu sendiri, kata kunci Tiada tidak bermaksud keutamaan di semua kemudahan yang diberikan.

Catatan: Bahawa keutamaan yang diberikan menunjukkan bahawa semua mesej keutamaan dan ke atas harus dilog masuk. Oleh itu, garis dalam contoh di atas mengarahkan rsyslogd Daemon untuk log semua mesej maklumat keutamaan atau lebih tinggi (tanpa mengira kemudahan) kecuali yang dimiliki oleh mereka mel, AuthPriv, dan Cron perkhidmatan (tiada mesej yang datang dari kemudahan ini akan diambil kira) ke /var/log/mesej.

Anda juga boleh mengumpulkan pelbagai kemudahan menggunakan tanda kolon untuk memohon keutamaan yang sama kepada mereka semua. Oleh itu, garis:

*.maklumat; mel.Tiada; AuthPriv.Tiada; Cron.tiada/var/log/mesej 

Boleh ditulis semula sebagai

*.maklumat; mel, authpriv, cron.tiada/var/log/mesej 

Dengan kata lain, kemudahan mel, AuthPriv, dan Cron dikelompokkan dan kata kunci Tiada digunakan untuk ketiga -tiga mereka.

Membuat fail log tersuai

Untuk log semua mesej daemon ke /var/log/tecmint.log, kita perlu menambah baris berikut sama ada di rsyslog.Conf atau dalam fail berasingan (lebih mudah untuk dikendalikan) di dalam /etc/rsyslog.d:

Daemon.*/var/log/tecmint.log 

Mari mulakan semula daemon (perhatikan bahawa nama perkhidmatan tidak berakhir dengan a d):

# Systemctl mulakan semula rsyslog 

Dan periksa kandungan log tersuai kami sebelum dan selepas memulakan semula dua daemon rawak:

Buat fail log tersuai

Sebagai latihan sendiri, saya akan mengesyorkan anda bermain-main dengan kemudahan dan keutamaan dan sama ada log mesej tambahan kepada fail log sedia ada atau membuat yang baru seperti contoh sebelumnya.

Kayu berputar menggunakan logrotat

Untuk mengelakkan fail log dari berkembang tanpa henti, Logrotate Utiliti digunakan untuk berputar, memampatkan, mengeluarkan, dan melegakan log mail, dengan itu mengurangkan pentadbiran sistem yang menghasilkan sejumlah besar fail log.

Cadangan Baca: Cara Menyiapkan dan Mengurus Putaran Log Menggunakan Logrotat di Linux

Logrotate berjalan setiap hari sebagai Cron pekerjaan (/etc/cron.Harian/Logrotate) dan membaca konfigurasinya dari /etc/logrotate.Conf dan dari fail yang terletak di /etc/logrotate.d, jika ada.

Seperti kes rsyslog, Walaupun anda boleh memasukkan tetapan untuk perkhidmatan tertentu dalam fail utama, membuat fail konfigurasi berasingan bagi setiap orang akan membantu mengatur tetapan anda dengan lebih baik.

Mari kita lihat biasa Logrotate.Conf:

Konfigurasi logrotat

Dalam contoh di atas, Logrotate akan melakukan tindakan berikut untuk /var/loh/wtmp: cuba berputar hanya sebulan sekali, tetapi hanya jika fail sekurang -kurangnya 1 Mb dalam saiz, kemudian buat fail log baru dengan kebenaran ditetapkan ke 0664 dan pemilikan yang diberikan kepada akar dan kumpulan pengguna utmp. Seterusnya, hanya menyimpan satu log yang diarkibkan, seperti yang ditentukan oleh arahan berputar:

Logrotate Logs setiap bulan

Mari kita pertimbangkan contoh lain seperti yang terdapat di /etc/logrotate.D/httpd:

Putar fail log Apache

Anda boleh membaca lebih lanjut mengenai tetapan untuk Logrotate di halaman lelaki (lelaki logrotat dan lelaki logrotat.conf). Kedua -dua fail disediakan bersama dengan artikel ini dalam format PDF untuk kemudahan bacaan anda.

Sebagai jurutera sistem, ia akan menjadi sangat terpulang kepada anda untuk memutuskan berapa lama log akan disimpan dan dalam format apa, bergantung kepada sama ada anda mempunyai /var dalam partition berasingan / Jumlah logik. Jika tidak, anda benar -benar ingin mempertimbangkan untuk mengeluarkan kayu lama untuk menjimatkan ruang simpanan. Sebaliknya, anda mungkin terpaksa menyimpan beberapa balak untuk pengauditan keselamatan masa depan mengikut dasar dalaman syarikat atau pelanggan anda.

Menyimpan log ke pangkalan data

Sudah tentu memeriksa balak (walaupun dengan bantuan alat seperti grep dan ungkapan biasa) boleh menjadi tugas yang agak membosankan. Untuk tujuan itu, rsyslog membolehkan kami mengeksportnya ke dalam pangkalan data (OTB RDBM yang disokong termasuk MySQL, MariaDB, PostgreSQL, dan Oracle.

Bahagian tutorial ini mengandaikan bahawa anda telah memasang Mariadb pelayan dan pelanggan dalam kotak RHEL 7 yang sama di mana log diuruskan:

# yum update && yum pasang mariadb mariadb-server mariadb-client rsyslog-mysql # systemctl enable MariaDB && systemctl start Mariadb 

Kemudian gunakan mysql_secure_installation utiliti untuk menetapkan kata laluan untuk pengguna root dan pertimbangan keselamatan lain:

Pangkalan Data MySQL Selamat

Catatan: Sekiranya anda tidak mahu menggunakannya Mariadb Pengguna Root Untuk memasukkan mesej log ke pangkalan data, anda boleh mengkonfigurasi akaun pengguna lain untuk melakukannya. Menjelaskan bagaimana untuk melakukannya adalah dari skop tutorial ini tetapi dijelaskan secara terperinci dalam pangkalan pengetahuan MariaDB. Dalam tutorial ini kita akan menggunakan akaun root untuk kesederhanaan.

Seterusnya, muat turun dibuatB.SQL Skrip dari GitHub dan mengimportnya ke pelayan pangkalan data anda:

# mysql -u root -p < createDB.sql 
Simpan log pelayan ke pangkalan data

Akhirnya, tambahkan baris berikut ke /etc/rsyslog.Conf:

$ Modload ommysql $ Actionommysqlserverport 3306 *.*: ommysql: localhost, syslog, root,Yourpasswordhere 

Mula semula rsyslog dan pelayan pangkalan data:

# Systemctl Restart Rsyslog # Systemctl Restart Mariadb 

Menanyakan log menggunakan sintaks SQL

Sekarang lakukan beberapa tugas yang akan mengubah suai log (seperti berhenti dan memulakan perkhidmatan, contohnya), kemudian log ke pelayan DB anda dan gunakan arahan SQL standard untuk memaparkan dan mencari dalam log:

Gunakan syslog; Pilih yang diterima, mesej dari SystemEvents; 
Log pertanyaan dalam pangkalan data

Ringkasan

Dalam artikel ini, kami telah menerangkan bagaimana untuk menyediakan pembalakan sistem, cara memutar log, dan bagaimana untuk mengalihkan mesej ke pangkalan data untuk carian yang lebih mudah. Kami berharap kemahiran ini akan membantu semasa anda mempersiapkan peperiksaan RHCE dan tanggungjawab harian anda juga.

Seperti biasa, maklum balas anda lebih daripada dialu -alukan. Jangan ragu untuk menggunakan borang di bawah untuk sampai ke kami.