Cara Mengelola Log Sistem (Konfigurasi, Putar dan Impor ke dalam Basis Data) di RHEL 7 - Bagian 5

Cara Mengelola Log Sistem (Konfigurasi, Putar dan Impor ke dalam Basis Data) di RHEL 7 - Bagian 5

Untuk menjaga RHEL 7 Sistem aman, Anda perlu tahu cara memantau semua kegiatan yang terjadi pada sistem tersebut dengan memeriksa file log. Dengan demikian, Anda akan dapat mendeteksi aktivitas yang tidak biasa atau berpotensi berbahaya dan melakukan pemecahan masalah sistem atau mengambil tindakan lain yang sesuai.

Ujian RHCE: Kelola Sistem Logsus Rsyslogd dan Logrotate - Bagian 5

Di dalam RHEL 7, Daemon RSyslogd bertanggung jawab atas penebangan sistem dan membaca konfigurasinya dari /etc/rsyslog.conf (File ini menentukan lokasi default untuk semua log sistem) dan dari file di dalamnya /etc/rsyslog.D, jika ada.

Konfigurasi RSyslogd

Inspeksi cepat rsyslog.conf akan membantu untuk memulai. File ini dibagi menjadi 3 bagian utama: Modul (Karena rsyslog mengikuti desain modular), Global arahan (digunakan untuk mengatur sifat global dari daemon rsyslogd), dan Aturan. Seperti yang mungkin akan Anda tebak, bagian terakhir ini menunjukkan apa yang akan dicatat atau ditampilkan (juga dikenal sebagai pemilih) dan di mana, dan akan menjadi fokus kami di seluruh artikel ini.

Garis khas di rsyslog.conf adalah sebagai berikut:

Konfigurasi RSyslogd

Pada gambar di atas, kita dapat melihat bahwa pemilih terdiri dari satu atau lebih pasangan Fasilitas: Prioritas Dipisahkan oleh titik koma, di mana fasilitas menjelaskan jenis pesan (lihat Bagian 4.1.1 Dalam RFC 3164 untuk melihat daftar lengkap fasilitas yang tersedia untuk rsyslog) dan prioritas menunjukkan keparahannya, yang dapat menjadi salah satu dari kata-kata yang jelas-jelas berikut:

  1. debug
  2. info
  3. melihat
  4. peringatan
  5. berbuat salah
  6. crit
  7. peringatan
  8. muncul

Meskipun bukan prioritas itu sendiri, kata kunci tidak ada berarti tidak ada prioritas di fasilitas yang diberikan.

Catatan: Bahwa prioritas yang diberikan menunjukkan bahwa semua pesan dari prioritas tersebut dan di atas harus dicatat. Dengan demikian, baris dalam contoh di atas menginstruksikan rsyslogd Daemon untuk mencatat semua pesan info prioritas atau lebih tinggi (terlepas dari fasilitasnya) kecuali yang dimiliki surat, authpriv, Dan cron Layanan (tidak ada pesan yang datang dari fasilitas ini akan diperhitungkan) /var/log/pesan.

Anda juga dapat mengelompokkan beberapa fasilitas menggunakan tanda usus besar untuk menerapkan prioritas yang sama untuk semuanya. Jadi, garis:

*.info; surat.tidak ada; authpriv.tidak ada; cron.Tidak ada/var/log/pesan 

Bisa ditulis ulang sebagai

*.info; surat, authpriv, cron.Tidak ada/var/log/pesan 

Dengan kata lain, fasilitasnya surat, authpriv, Dan cron dikelompokkan dan kata kunci tidak ada diterapkan pada mereka bertiga.

Membuat file log khusus

Untuk mencatat semua pesan daemon /var/log/tecmint.catatan, kita perlu menambahkan baris berikut baik di rsyslog.conf atau dalam file terpisah (lebih mudah dikelola) di dalamnya /etc/rsyslog.D:

Daemon.*/var/log/tecmint.catatan 

Mari kita mulai ulang daemon (perhatikan bahwa nama layanan tidak berakhir dengan a D):

# Systemctl restart rsyslog 

Dan periksa isi log khusus kami sebelum dan sesudah memulai kembali dua daemon acak:

Buat File Log Kustom

Sebagai latihan belajar mandiri, saya akan menyarankan Anda bermain-main dengan fasilitas dan prioritas dan baik log pesan tambahan ke file log yang ada atau membuat yang baru seperti pada contoh sebelumnya.

Log putar menggunakan Logrotate

Untuk mencegah file log tumbuh tanpa henti, Logrotate Utilitas digunakan untuk memutar, mengompres, menghapus, dan sebagai alternatif log log, sehingga mengurangi administrasi sistem yang menghasilkan sejumlah besar file log.

Disarankan Baca: Cara Mengatur dan Mengelola Rotasi Log Menggunakan Logrotate Di Linux

Logrotate berjalan setiap hari sebagai a cron pekerjaan (/etc/cron.Harian/Logrotate) dan membaca konfigurasinya dari /etc/logrotate.conf dan dari file yang terletak di /etc/logrotate.D, jika ada.

Seperti halnya kasus rsyslog, Bahkan ketika Anda dapat memasukkan pengaturan untuk layanan tertentu dalam file utama, membuat file konfigurasi terpisah untuk masing -masing akan membantu mengatur pengaturan Anda dengan lebih baik.

Mari kita lihat tipikal Logrotate.conf:

Konfigurasi Logrotate

Dalam contoh di atas, Logrotate akan melakukan tindakan berikut untuk /var/loh/wtmp: mencoba berputar hanya sebulan sekali, tetapi hanya jika file itu setidaknya 1 MB dalam ukuran, lalu buat file log baru dengan izin yang diatur ke 0664 dan kepemilikan yang diberikan kepada pengguna root dan grup UTMP. Selanjutnya, hanya menyimpan satu log yang diarsipkan, sebagaimana ditentukan oleh Rotate Directive:

Log Logrotate Bulanan

Sekarang mari kita pertimbangkan contoh lain seperti yang ditemukan /etc/logrotate.d/httpd:

Putar file log apache

Anda dapat membaca lebih lanjut tentang pengaturan untuk Logrotate di halaman mannya (man loGrotate dan man loGrotate.conf). Kedua file disediakan bersama dengan artikel ini dalam format PDF untuk kenyamanan membaca Anda.

Sebagai insinyur sistem, akan cukup terserah Anda untuk memutuskan berapa lama log akan disimpan dan dalam format apa, tergantung pada apakah Anda sudah /var di partisi terpisah / volume logis. Jika tidak, Anda benar -benar ingin mempertimbangkan untuk menghapus log lama untuk menghemat ruang penyimpanan. Di sisi lain, Anda mungkin dipaksa untuk menyimpan beberapa log untuk audit keamanan di masa depan sesuai dengan kebijakan internal perusahaan atau klien Anda.

Menyimpan log ke database

Tentu saja memeriksa log (bahkan dengan bantuan alat seperti grep dan ekspresi reguler) bisa menjadi tugas yang agak membosankan. Untuk alasan itu, rsyslog memungkinkan kami untuk mengekspornya ke dalam database (OTB RDBM yang didukung termasuk MySQL, MariaDB, PostgreSQL, dan Oracle.

Bagian tutorial ini mengasumsikan bahwa Anda telah menginstal Mariadb server dan klien di kotak RHEL 7 yang sama di mana log dikelola:

# yum update && yum instal mariadb mariadb-server mariadb-client rsyslog-mysql # systemctl aktifkan mariadb && systemctl mulai mariadb 

Lalu gunakan mysql_secure_installation utilitas untuk mengatur kata sandi untuk pengguna root dan pertimbangan keamanan lainnya:

Amankan database MySQL

Catatan: Jika Anda tidak ingin menggunakan Mariadb Root User Untuk memasukkan pesan log ke database, Anda dapat mengkonfigurasi akun pengguna lain untuk melakukannya. Menjelaskan bagaimana melakukan itu adalah di luar ruang lingkup tutorial ini tetapi dijelaskan secara rinci di basis pengetahuan Mariadb. Dalam tutorial ini kita akan menggunakan akun root untuk kesederhanaan.

Selanjutnya, unduh dibuat.SQL Skrip dari GitHub dan impor ke server database Anda:

# mysql -u root -p < createDB.sql 
Simpan log server ke database

Akhirnya, tambahkan baris berikut /etc/rsyslog.conf:

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

Mengulang kembali rsyslog dan server database:

# Systemctl restart rsyslog # systemctl restart mariadb 

Meminta log menggunakan sintaks SQL

Sekarang lakukan beberapa tugas yang akan memodifikasi log (seperti berhenti dan memulai layanan, misalnya), kemudian log ke server DB Anda dan menggunakan perintah SQL standar untuk ditampilkan dan mencari di log:

Gunakan syslog; Pilih Diterima, Pesan dari SystemEvents; 
Log kueri di database

Ringkasan

Dalam artikel ini kami telah menjelaskan cara mengatur logging sistem, cara memutar log, dan cara mengarahkan kembali pesan ke database untuk pencarian yang lebih mudah. Kami berharap keterampilan ini akan membantu saat Anda mempersiapkan diri untuk ujian RHCE dan dalam tanggung jawab harian Anda juga.

Seperti biasa, umpan balik Anda lebih dari disambut. Jangan ragu untuk menggunakan formulir di bawah ini untuk menjangkau kami.