Development 2012/03/30 20:46
1. rsyslog 설치
mysql을 소스컴파일로 설치를 하였기 때문에 yum을 사용하지 않고 rsyslog도 소스컴파일을 통해 설치함.
소스 다운로드
여기까지 하면 syslog를 대체하는 rsyslog의 설치가 끝난 것이다.
하지만 rsyslog의 log format과 syslog의 log format은 차이가 있으므로
syslog에 익숙한 사용자라면 rsyslog.conf를 변경을 해주면 된다.
2. mysql 연동
우선은 기본으로 제공하는 sql파일을 사용하도록 하자.
mysql에 들어가 보면 Syslog라는 DB와 SystemEvents, SystemEventsProperties라는 테이블이 생성된 걸 확인할 수 있다.
rsyslog에서 mysql 접속을 위한 사용자 추가한다(user 및 password는 변경 가능).
이제 rsyslog.conf에 들어가 설정하면 된다.
위 설정의 경우는 로그를 파일과 DB에 모두 남기도록 하는 것이다. DB에 만 남기고 싶다면 윗줄 삭제.
rsyslog를 재시작한 뒤 DB에 로그가 제대로 들어가는지 확인해보자.
mysql을 소스컴파일로 설치를 하였기 때문에 yum을 사용하지 않고 rsyslog도 소스컴파일을 통해 설치함.
소스 다운로드
# /etc/init.d/syslog stop # tar zxf rsyslog-5.8.9.tar.gz # cd rsyslog-5.8.9 # ./configure --enable-mysql # make # make install # cp ./rsyslog.conf /etc/ # cp /etc/sysconfig/syslog /etc/sysconfig/rsyslog # vi /etc/init.d/rsyslog
#!/bin/bash
# chkconfig: 2345 12 88
# Source function library.
. /etc/init.d/functions
RETVAL=0
start() {
[ -x /usr/local/sbin/rsyslogd ] || exit 5
# Source config
if [ -f /etc/sysconfig/rsyslog ] ; then
. /etc/sysconfig/rsyslog
else
SYSLOGD_OPTIONS="-c3"
fi
umask 077
echo -n $"Starting system logger (rsyslog): "
daemon /usr/local/sbin/rsyslogd $SYSLOGD_OPTIONS
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down system logger (rsyslog): "
killproc rsyslogd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/rsyslog
return $RETVAL
}
rhstatus() {
status rsyslogd
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
rhstatus
;;
restart|reload)
restart
;;
condrestart)
[ -f /var/lock/subsys/rsyslog ] && restart || :
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart}"
exit 2
esac
exit $?
# chmod +x /etc/init.d/rsyslogd # /etc/init.d/rsyslog start
여기까지 하면 syslog를 대체하는 rsyslog의 설치가 끝난 것이다.
하지만 rsyslog의 log format과 syslog의 log format은 차이가 있으므로
syslog에 익숙한 사용자라면 rsyslog.conf를 변경을 해주면 된다.
@@ -9,6 +9,9 @@ $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # kernel logging (formerly provided by rklogd) +$template OldFormat,"%timegenerated% %HOSTNAME% %syslogtag% %msg%\n" +$ActionFileDefaultTemplate OldFormat + # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console
2. mysql 연동
우선은 기본으로 제공하는 sql파일을 사용하도록 하자.
# mysql -uroot -p < ./plugins/ommysql/createDB.sql
mysql에 들어가 보면 Syslog라는 DB와 SystemEvents, SystemEventsProperties라는 테이블이 생성된 걸 확인할 수 있다.
rsyslog에서 mysql 접속을 위한 사용자 추가한다(user 및 password는 변경 가능).
GRANT ALL ON Syslog.* to rsyslog@'localhost' identified by 'rsyslog';
이제 rsyslog.conf에 들어가 설정하면 된다.
@@ -8,6 +8,7 @@ $ModLoad immark # provides --MARK-- message capability $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) $ModLoad imklog # kernel logging (formerly provided by rklogd) +$ModLoad ommysql $template OldFormat,"%timegenerated% %HOSTNAME% %syslogtag% %msg%\n" $ActionFileDefaultTemplate OldFormat @@ -25,6 +26,7 @@ # Log all the mail messages in one place. mail.* -/var/log/maillog +mail.* :ommysql:localhost,Syslog,rsyslog,rsyslog # Log cron stuff cron.* -/var/log/cron
위 설정의 경우는 로그를 파일과 DB에 모두 남기도록 하는 것이다. DB에 만 남기고 싶다면 윗줄 삭제.
rsyslog를 재시작한 뒤 DB에 로그가 제대로 들어가는지 확인해보자.
http://blog.combel.net/trackback/25



0