Kadang kita perlu menyimpan log dari mesin2 tertentu ke sebuah syslog server agar diperoleh report yang dibutuhkan, lebi seru lagi kalau datanya disimpan di database server seperti mysql jadi mudah untuk di query.
Berikut adalah cara instalasi syslog server yang datanya disimpan di mysql pada distro debian.
Pertama install syslog-ng
apt-get install syslog-ng syslog-summary
kemudian tambahkan file di /etc/syslog-ng/syslog-ng.
source net { udp(); };
destination d_mysql {
pipe("/tmp/mysql.pipe"
template("INSERT INTO logs (host, facility, priority, level, tag, date,
time, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL','$TAG',
'$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes));
};
log { source(net); destination(d_mysql); };
save lalu restart syslog-ng
/etc/init.d/syslog-ng restart
buat fifo pipe untuk syslog-ng caranya:
mkfifo /tmp/mysql.pipe
buat database syslogdb di mysql dengan perintah SQL berikut:
perintah SQL ini bisa diinput melalui phpmysql atau melalui console, kalau saya paling praktis menggunakan phpmysql, sorry di artikel ini saya tidak menjelaskan instalasi mysqlnya, jadi asumsi mysqlnya udah jalan dengan benar.
CREATE DATABASE syslogdb;
USE syslogdb;
CREATE TABLE logs (
host varchar(32) default NULL,
facility varchar(10) default NULL,
priority varchar(10) default NULL,
level varchar(10) default NULL,
tag varchar(10) default NULL,
date date default NULL,
time time default NULL,
program varchar(15) default NULL,
msg text,
seq int(10) unsigned NOT NULL auto_increment,
PRIMARY KEY (seq),
KEY host (host),
KEY seq (seq),
KEY program (program),
KEY time (time),
KEY date (date),
KEY priority (priority),
KEY facility (facility)
) TYPE=MyISAM;
berikutnya buat script /etc/syslog-ng/rc.syslog-ng-to-myqsl
yang isinya:
#
# Created by Tadghe Patrick Danu
#
#!/bin/bash
if [ -e /tmp/mysql.pipe ]; then
while [ -e /tmp/mysql.pipe ]
do
mysql -u root --password='password root mysql yang digunakan' syslogdb < /tmp/mysql.pipe done
else
mkfifo /tmp/mysql.pipe
fi
kemudian chmod 750 /etc/syslog-ng/rc.syslog-ng-to-mysql hati-hati di file itu ada password root msyql jadi jangan lupa utk dibuat 750 ya supaya orang lain selain root tidak bisa lihat isinya, atau bisa juga buat user khusus utk syslogdb di mysqlnya.
kalau sudah tinggal restart syslog-ng /etc/init.d/syslog-ng restart dan eksekusi /etc/syslog-ng/rc.syslog-ng-to-mysql & atau bisa juga dimasukkin ke /etc/rc.local supaya otomatis jalan kalau debiannya direboot. ini hasilnya kalau dilihat di phpmyadmin.
sebagai tambahan kalau dari mesin cisco mau dilempar lognya ke syslog server commandnya spt ini:
conf t
logging IP_address_of_UNIX_host
logging facility local7 (use local7 syslog facility)
logging trap level_of_debugging (default is "informational")
logging on
reference:
http://kryptoz.wordpress.com/2008/04/10/configure-syslog-ng-syslogd-remote-log-server/
http://vermeer.org/docs/1
http://www.brandonhutchinson.com/Remote_Cisco_logging.html
Menjadikan debian sebagai syslog server yang disimpan di mysql
Labels:
Ngoprex Linux Etc