Installasi dan Konfigurasi Logrotate untuk Log Nginx

#TipsLinux Installasi dan Konfigurasi Logrotate untuk Log Nginx

Installasi dan Konfigurasi Logrotate untuk Log Nginx. Logrotate adalah sebuah utilitas yang dirancang untuk mempermudah administrasi pengelolaan sistem atau service yang menghasilkan output log. Logrotate bisa merotasi file log secara otomatis, mengkompress, menghapus dan mengirim file log. Semua service atau aplikasi yang digunakan di server akan menghasilkan log dalam file sebagai catatan, baik itu catatan error, catatan peringatan, akses dll.

Bagi seorang administartor sistem, file log ini sangatlah penting. Jika tidak dilakukan rotasi, file-file log akan semakin bertambah dan semakin besar, tidak ada batasnya sampai hardisk penuh. Tentu saja hal ini akan mengurangi kinerja sistem jika harddisk penuh. Membaca file log dengan ukuran besar bukan hanya loadingnya lama, tapi juga mencari catatan diantara ribuan baris text sangatlah membosankan.

Untuk mengatasi masalah tersebut dan memelihara file log, kita bisa menggunakan “logrotate”. Sebuah tools yang dirancang untuk menyederhanakan pengelolaan file log pada sistem yang menghasilkan banyak file log besar.

Dalam artikel ini, kita akan membahas tentang installasi logrotate dan cara mengkonfigurasi rotasi log Nginx.

Instalasi

Di sebagian besar distribusi, ia diinstal dan dikonfigurasi secara default. Jika belum di install sobat bisa jalankan perintah berikut :

#yum menginstal logrotate -y

Menjalankan logrotate

Logrotate membantu administrator sistem untuk secara sistematis merollin dan mengarsipkan file log apa pun yang dihasilkan oleh sistem dan dengan demikian akan mengurangi kebutuhan ruang disk sistem operasi. Biasanya, logrotate dijalankan sebagai tugas cron harian. Artinya log akan di arsipkan sehari sekali.
# cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi

Memahami file-file Konfigurasi

Secara default, ketika logrotate diinstal, Sobat dapat menemukan file konfigurasi utamanya di sini: /etc/logrotate.conf. Termasuk di dalamnya folder /etc/logrotate.d/ dimana Sobat mengkonfigurasi log yang berbeda. Semua file konfigurasi spesifik layanan disimpan di /etc/logrotate.d/ .

File konfigurasi utama /etc/logrotate.conf berisi konfigurasi generik. Silakan lihat file konfigurasi logrotate default saya:

Pengaturan Default Logrotate

Pengaturan Default Logrotate

Baris 3 – weekly: Opsi konfigurasi ini memastikan rotasi mingguan semua file log yang didefinisikan dalam file konfigurasi utama dan di /etc/logrotate.d/ direktori.

Baris 6 – rotate 4: Ini memastikan bahwa logrotate menyimpan cadangan 4 minggu untuk semua file log.

Baris 9 – create: opsi ini menginstruksikan logrotate untuk membuat file log kosong baru setelah setiap rotasi

Baris 12 – dateext: Ini menambahkan ekstensi ke semua file log dalam bentuk tanggal ketika setiap file log tertentu diproses oleh logrotate

Baris 15 – compress: Ini mengkompress file log.

Baris 18 – include /etc/logrotate.d: Memsaukkan semua konfigurasi lain dari direktori /etc/logrotate.d.

Baris 21 – 33 berisi konfigurasi log rotasi layanan tertentu

Mengonfigurasi logrotate Nginx

Untuk sebagian besar layanan, file log konfigurasi layanan default akan dibuat secara otomatis di folder /etc/logrotate.d/. Setiap paket biasanya menyertakan konfigurasi rotasi log, meskipun logrotate tidak diinstal pada sistem. Namun, jika kita mengompilasi Nginx dari source code, pengaturan logrotate harus dilakukan secara manual di dalam folder /etc/logrotate.d/ dengan lokasi file log yang disebutkan dalam file konfigurasi Nginx.

Silakan lihat konfigurasi rotasi log Nginx default yang dibuat di server saya oleh instalasi.

# cat -n /etc/logrotate.d/nginx
1 /var/log/nginx/*log {
2 create 0644 nginx nginx
3 daily
4 rotate 10
5 missingok
6 notifempty
7 compress
8 sharedscripts
9 postrotate
10 /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
11 endscript
12 }
13

Baris 1 – /var/log/nginx/*log: Ini mendefinisikan semua file log Nginx yang terletak di /var log/nginx /. TIP: Jika Sobat ingin menyertakan beberapa file log dalam satu file konfigurasi, gunakan wildcard, seperti ini “/var/log/nginx/* log“. Untuk file log tunggal, Sobat dapat menyebutkan file log tersebut sebagai “/var/log/nginx/error.log“.

Baris 2 – create:  membuat file log baru dan mengatur izin 644 dengan kepemilikan oleh nginx .

Jalur 3 – daily: memastikan rotasi harian

Baris 4 – rotate 10: Simpan 10 salinan file log.

Baris 5 – missingok: file log tidak dibuat jika tidak ada file log.

Baris 6 – notifempty:  file log kosong tidak dirotasi.

Baris 7 – compress: Kompres file log lama dengan gzip (1) secara default

Baris 8 – sharedscripts: Ini membuat skrip berjalan sekali, tidak peduli berapa banyak log yang cocok dengan pola wildcard (*log).

Baris 9 hingga 11 – postrotate/endscript: Garis antara postrotate dan endscript (keduanya harus muncul pada baris sendiri) dijalankan setelah file log dirotasi. Arahan ini hanya dapat muncul di dalam definisi file log.

Utilitas logrotate ini memiliki lebih banyak opsi konfigurasi. Sobat bisa mendapatkan daftar lengkap dari opsi-opsi tersebut dari halaman manualnya dengan hanya menjalankan ini:

#man logrotate

Memeriksa Status Logrotation

File “/var/lib/logrotate.status” berisi semua informasi tentang status logrotation. Oleh karena itu, untuk memvalidasi status run logrotate untuk setiap file konfigurasi yang ditambahkan dan memverifikasi status masing-masing dari log, kita dapat menjalankan perintah di bawah ini; Ini akan mencantumkan run time untuk setiap konfigurasi dibuat

#cat /var/lib/logrotate.status
status logrotate - versi 2
"/var/log/nginx/error.log" 2017-8-14-7: 45: 47
"/var/log/yum.log" 2017-8-14-7: 45: 47
"/var/log/chrony/*.log" 2017-8-14-7: 0: 0
"/ var / log / wtmp" 2017-8-14-7: 45: 47
"/ var / log / spooler" 2017-8-14-7: 0: 0
"/ var / log / btmp" 2017-8-14-7: 45: 47
"/ var / log / maillog" 2017-8-14-7: 45: 47
"/var/log/wpa_supplicant.log" 2017-8-14-7: 0: 0
"/ var / log / secure" 2017-8-14-7: 45: 47
"/var/log/nginx/access.log" 2017-8-14-7: 45: 47
"/ var / log / ppp / connect-errors" 2017-8-14-7: 0: 0
"/ var / log / messages" 2017-8-14-7: 45: 47
"/ var / log / cron" 2017-8-14-7: 45: 47

Ini akan memberi Sobat status logrotate terbaru.

Kita dapat menjalankan file logrotate spesifik secara manual atau paksa dengan perintah berikut.

logrotate -f /etc/logrotate.d/nginx

Atau kita bahkan bisa memutar semua log dalam mode verbose dengan perintah di bawah ini:

logrotate -f -v /etc/logrotate.conf

Logrotate membantu Sobat mengelola file log secara efisien dan menghemat ruang disk dengan mengompresi / menghapus file log. Ini juga dapat membantu Sobat mengarsipkan file-file log untuk referensi di masa mendatang dengan membuat salinan tambahan atau dengan mengirim email file-file log yang dirotasi. Kita bahkan dapat menyesuaikan konfigurasi untuk menangani setiap file log harian, mingguan, bulanan, atau ketika ukurannya terlalu besar.

Installasi dan Konfigurasi Logrotate untuk Log Nginx

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply