Centralized Nodes & Network Devices Log with Log/Syslog Server

cov

Log, SysLog, EventLog, AccessLog.. barang yang dulunya males aku baca, biasanya isinya banyak dan sekilas nggak jelas..haha… Tapi ternyata didalemnya kita bisa dapet buanyak informasi pernting. Misal ketika Troubleshoot, kita bisa jadikan logs ini sebagai referesi buat cari kira-kira kesalahan dimana. Selain itu bisa juga sebagai referensi kita ketika maintenance, selama periode waktu tertentu bisa kita lihat terjadi kejadian apa saja sih, bisa kita lihat dari Log (kalo kecatet).

Satu lagi kegunaan log, kalo elu pinter bab pemrograman, filter-filter data (bahasanya “parsing” kalo nggak salah yaa?), dari syslog ini bisa kamu kembangin lagi. Misal jika di log ditemukan string *AUTH_ERROR* , atau *INTERFACE_Tun*_Down* maka nanti system bakal otomatis ngasih tau kamu via SMS – “Dap, interface X rutermu sek iki mati dap, gek dandadnono!!”. Gitu bisa, keren kan??? πŸ˜€ satu lagi, lu tau proxy kan? tau access.log? tau proxy access monitoring macem SARG gitu? nah dia itu sebenernya nge-Generate report berdasarkan access.log itu tadi. You get it?? ok sekarang semoga udah paham mengenai kegunaan dan pemanfaatan Log πŸ™‚

Nah skenario kali ini, saya jelaskan mengenai build syslog server linux based buat nampung Logs dari network devices. Dalam hal ini saya pakai linux Debian, lalu pake syslog-ng untuk penampungan lognya. Devices yang akan kita catat lognya adalah cisco yang ada di jaringan dengan topologi dibawah ini :

Mickey
Mickey

*Fokus ke topologi, jangan ke gambar, aku emang suka iseng bikin beginian..haha… karena dalam segala apapun ada seninya, termasuk di networking πŸ™‚ . Β Kalo gambar kurang gede monggo diklik biar jelas. Ceritanya itu ada 1 Switch (coreswi1) dan 2 router (hqrtr1 & rsrtr1). Nah log dari perangkat itu akan kita kirim ke Syslog server yang aku simulasiin di VMware. Begitulah kira-kira.

Apa cuma bisa nampung lognya cisco devices?? Kagak, mau mikrotik kek, syslog linux kek, juniper kek, ato apalah, asal lu bisa ngelempar lognya, mau nampung apa aja bisa.

konsepnya sederhana. Kita build Syslog servernya, lalu kita konfig devices yang mau di-log supaya ngelempar lognya ke syslog server πŸ˜€ .. dah gitu doang… πŸ˜€ (ya iyalah, sampe sini gw jg udah paham…wkwkwk)

Ok, pertama mari kita build syslog servernya dulu. Install syslog-ng di debian. Lalu kita perlu konfig syslog-ng di /etc/syslog-ng/syslog-ng.conf. Nah konsep konfigurasinya begini :

1. Define listen Address & Listen Port dengan tag “src”

2. Define destination log file (buat nampung log) dengan tag “destination”

3. Kalo mau misah-misahin log antara devices satu dengan devices lainnya, kita bisa pake tag “filter”, kita bisa filter by source address. Kalo nggak mau difilter jg bisa, tapi lognya nanti nyampur jadi satu.

4. Lalu setelah kita define tag-tag tersebut, kita gabungkan, dengan tag “log”. disini kita main logika “and”. gampang kok πŸ™‚ . misal logikanya ada kondisi a,b,c, lalu log(a,b) –> akan dijalankan jika kondisi a & b terpenuhi πŸ™‚

Berikut contoh konfigurasinya di /etc/syslog-ng/syslog-ng.conf :

### Define Listen Address & Port. dikosongi maka akan pakai default (0.0.0.0:514)

source all-in {
udp();
};

## Define filter, based on source address

filter coreswi1 {
host(“192.168.10.77”);
};

filter hqrtr1 {
host(“192.168.10.111”);
};

## Define Destination Log

destination coreswi1 {
file(“/backup/cisco-log/coreswi1.log”);
};

destination hqrtr1 {
file(“/backup/cisco-log/hqrtr1.log”);
};

## Kita “masak” tag-tag yang udah di define tadi.

log { source(all-in); filter(coreswi1); destination(coreswi1); };
log { source(all-in); filter(hqrtr1); destination(hqrtr1); };

——-

Ok, that’s all. jangan lupa restart servicenya supaya perubahan konfignya ke-apply πŸ™‚

Now we face a problem!!! kalo kita nampung log, kalo nggak rajin-rajin kita bersihin, atau bahasanya disini kita rotate, maka isi file log itu nanti bakal terus membesar karena diisi log-terus menerus. Lama-lama bisa habis space harddisk. Maka kita perlu yang namanya nge-rotate alias pembersihan alias penghapusan alias pemusnahan secara periodik. Nah kita bisa manfaatin service logroratenya linux. Kita tambahkan file log yang mau kita rotate di /etc/logrotate.d/syslog-ng. Formatnya tinggal nyesuaian yang sudah ada disitu aja. misal dibawah ini aku mau nge-rotate lognya hq-rtr1 setiap minggu :

/backup/cisco-log/hqrtr1.log
{
rotate 7
weekly
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d syslog-ng reload > /dev/null
endscript
}

Oke, log server sudah siap disajikan. Sekarang mari kita konfig node yang mau ngelempar lognya. Di cisco sebenernya gampang buat ngelempar log, tinggal kita tentuin severity log levelnya dan destination lognya, dah itu doang πŸ™‚ (versi sederhana)

Tengok ni :

confDi cisco ada log severity level, dari level 0-7, angka kecil adalah semakin darurat, angka gede adalah informational. Sesuaikan kebutuhan mengenai logging severity levelnya. Lalu konfig gampangnya seperti diatas, Sederhana kan?? πŸ˜€

Btw buat pengujian atau troubleshoot, kita bisa pake syslog server versi guampang dulu pake tools di windows tftpd (cari download sendiri).

Btw begini nih hasilnya, log si cisco misal disini contohnya hqrtr1 lognya kesimpen di server :

loghqrtr

Nah lumayan kan, dari log itu bisa dibikin sesuatu seperti yang udah aku jelasi di awal tadi, parsing parsingan, generate report, create notification..dlll πŸ˜€

Aku kemaren sempat iseng-iseng ngisi waktu ngerjain syslog di topologi dibawah ini, barangkali kalian tertantang buat bikin topologi versi kalian sendiri πŸ˜€

ch

Monggo, kalo nemu kebingungan atau apa, bisa kontak aku, disamping ada kolom “kentang goreng” tuh, disitu ada kontah FB, Linkedin, TW….

Btw ini bisa dibikin lebih seru lagi kalo dicisco, kita bisa tambahin sambil mainan EEM (Embeded Event Manager) buat if-then event tertentu, atau supaya parsingnya lebih gampang… tapi….. nanti deh, barangkali lain waktu kepikiran buat nulis bab itu… (sekarang aja belum lancar…haha) πŸ˜€

 

Komen dimari gann....

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s