Manajemen Log Lokal (syslog) pada sistem NetBSD
Pada sistem operasi NetBSD seluruh log pada sistem operasi NetBSD diatur oleh syslog daemon atau syslogd(8). Direktori dimana log-log ditempatkan berada di /var/log/ dan hasil keluaran dari syslog diatur melalui file konfigurasinya yang terletak di /etc/syslog.conf. Berikut adalah isi /var/log secara umum pada sistem operasi NetBSD :
File konfigurasi /etc/syslog.conf berisi cara memanajemen log lokal, isinya sebagai berikut :
Untuk dapat mengerti detil dari syslog.conf bisa dilihat informasi detail dengan perintah man syslogd, namun secara singkat akan tetap saya jelaskan. File berbentuk teks ini konfigurasinya dibagi berdasarkan baris, dan masing-masing baris dibagi 2 kelompok dimana :
- kelompok pertama (bagian selector) berisi informasi-informasi log yang akan disaring oleh syslogd. Informasi ini mempunyai format
- facility – menjelaskan bagian dari sistem yang mengeluarkan log, beberapa fasilitas yang tersedia adalah : auth, authpriv, cron, ftp, daemon,
kern, lpr, mail, mark, news, syslog, user, uucp dan local0 sampai
local7. - comparison flag – merupakan perbandingan level yang akan dilog, secara default komparasinya adalah >= (lebih besar sama dengan)
- level – merupakan tingkat kegentingan dari pesan log yang disampaikan, secara berurutan dari yang paling genting ke yang paling rendah adalah : emerg, alert, crit, err, warning, notice, info dan debug
- facility – menjelaskan bagian dari sistem yang mengeluarkan log, beberapa fasilitas yang tersedia adalah : auth, authpriv, cron, ftp, daemon,
- kelompok kedua (bagian action) berisi output kemana log tersebut disimpan, sebagai contoh dibaris pertama action dari log yang masuk adalah disampaikan kepada consol sehingga akan keluar pada tampilan CLI pengguna, sedangkan pada baris kedua log akan disimpan pada berkas /var/log/messages.
Melihat Hasil Log
Untuk melihat log yang ada, kita dapat menggunakan sebuah editor teks bila ingin memudahkan mencari teks yang diinginkan, namun tidak disarankan karena dapat merubah isinya secara tidak sengaja. Disarankan dilihat isinya dengan perintah tail untuk melihat beberapa baris terakhir dan digabung dengan perintah grep untuk mencari sebuah kata kunci yang dicari didalam log, berikut adalah contoh mencari 5 baris terakhir yang memiliki kata “webmaster” didalam file /var/log/authlog.
tapi ada juga file log yang berbentuk data binary yang tidak dapat dibuka oleh teks editor seperti lastlog, wtmp dan wtmpx. Untuk membukanya harus menggunakan perintah last, berikut contoh penggunaanya:
Manajemen Rotasi Log dengan newsyslog
Rotasi log dibutuhkan agar berkas log tidak terlalu panjang dan dipecah-pecah menjadi berkas yang lebih kecil dan dikompres agar tidak memakan banyak media penyimpanan. Berbeda dengan sistem linux, NetBSD tidak menggunakan logrotate untuk memanajemen rotasi berkas-berkas log, melainkan menggunakan sebuah utilitas yang bernama newsyslog. Newsyslog ini sebenarnya dijalankan secara berkala oleh cron(8), dan ketika dijalankan akan menyimpan berkas log yang lama kedalam sebuah berkas terkompresi apabila sesuai dengan prasyarat yang telah ditentukan didalam file konfigurasi newsyslog. Prasyarat itu sendiri bisa berupa ukuran dari file log yang sudah dicapai, atau bisa juga berdasarkan lamanya umur berkas log. File konfigurasinya terdapat pada file /etc/newsyslog.conf
Seperti yang bisa kita lihat diatas bahwa untuk konfigurasinya berdasarkan baris dan tiap baris dibagi 9 (sembilan) field, yaitu :
- logfilename – pada field ini berisi nama file log yang akan diatur rotasinya
- owner:group – adalah pemilik dan group pemilik log file tersebut
- mode – adalah representasi desimal dari hak mode akses yang dimiliki file
- ngen – jumlah file yang disimpan selain file utama log
- size – apabila sebuah log telah mencapai ukuran tertentu maka akan dirotasi, satuannya adalah kilobyte, apabila diisi dengan asteriks (*) maka ukuran file tidak menjadi parameter dalam rotasi.
- when – adalah interval dimana file log dirotasi, satuan yang digunakan adalah jam, sama dengan diatas, apabila diisi dengan asteriks (*) maka tidak akan menjadi parameter rotasi.
- flags – adalah hal-hal optional
- flag Z berarti menggunakan format gzip untuk kompresi
- flag B berarti menggunakan format Binary
- flag N berarti no signal
- pidfile – adalah letak file pid dimana process id daemon servis yang hendak dilog diletakan. Referensi letak berkas wajib berawal dari root direktori “/”.
- sigtype – diisi dengan tipe signal yang hendak digunakan (opsional).
Menambahkan Log Aplikasi pada newsyslog
Newsyslog tidak saja memanajemen log yang dikelola oleh syslogd, namun juga dapat mengelelola log yang merupakan output aplikasi atau servis lainya seperti log dari Ngingx, PHP-FPM, Mysql dlsb. Pada gambar konfigurasi newsyslog.conf diatas pada 3 baris terakhir dapat dilihat tambahan baris-baris untuk rotasi log dari PHP dan Nginx yang ditambahkan sendiri. Pada NetBSD seringkali setelah instalasi diberikan masukan mengenai bagaimana sebaiknya log rotate diimplementasikan pada newsyslog, seperti 3 baris tersebut adalah saran yang terdapat setelah instalasi selesai.
Manajemen Log Jarak Jauh / Remote dengan rsyslog
rsyslog adalah sebuah servis yang membantu menjadi jembatan dari berbagai macam jenis log untuk dikirim kesebuah log server untuk disimpan kedalam berbagai jenis format penyimpanan baik itu berbentuk teks, binary maupun basis data. Untuk tugas ini, kita akan belajar membuat rsyslog pada sistem operasi NetBSD untuk melaporkan log kepada log server yang berjalan diatas sistem NetBSD lainnya.
Instalasi rsyslog
rsyslog tidak terinstal secara otomatis pada NetBSD sehingga harus menginstall secara manual baik pada server maupun pada host, keduanya menggunakan langkah yang sama yaitu:
# pkgin install rsyslog # cp /usr/pkg/share/examples/rc.d/rsyslogd /etc/rc.d # echo "rsyslogd=YES" >> /etc/rc.conf
Manajemen Server rsyslog
Perbedaan pada instalasi server dan host rsyslog hanya terdapat pada isi berkas konfigurasinya, yang pada NetBSD terdapat pada /usr/pkg/etc/rsyslog.conf.
pada setingan server yang perlu dilakukan adalah mengatur pada port mana input log akan didengarkan oleh sistem, disini standar yang biasa digunakan adalah UDP port 514, UDP digunakan untuk menghemat bandwith, namun apabila lebih menghendaki kestabilan dan kekonsistenan sebaiknya menggunakan TCP pada port 514. Setelah berkas konfigurasi selesai disunting dan disimpan jangan lupa dijalankan servernya
# /etc/rc.d/rsyslogd start
Manajemen host rsyslog
Server yang telah kita konfigurasi diatas sudah dapat menerima kiriman log, sekarang kita akan mengatur host agar mengirim log. Informasi yang dibutuhkan hanya nama host atau nomor IP dari server rsyslog, kemudian kita edit berkas konfigurasi dan tambahkan baris berikut pada baris paling bawah :
*.* @ALAMAT_IP:514
kemudian disimpan berkas konfigurasinya, dan aktifkan servernya dengan
# /etc/rc.d/rsyslogd start
Demikian penjelasan manajemen log pada sistem NetBSD