syslog-ng를 이용하여 로그서버 구축
syslog로 원격지의 시스템 로그를 받아 볼수 있지만…
로그를 보내는 클라이언트 수가 많은 경우 골치 아파진다.
날짜별.. 호스트별… 구분해서 저장해야 관리가 되는데 syslog로는 역부족 하다.
syslog-ng가 이러한 모든 고민을 해결해준다.
시스템 log서버를 별도로 만들려고 하는경우 로그를 받는 로그서버에만
syslog.-ng를 설치 해주면 된다 편하게 rpm으로~ ㄱㄱㄱ.
**– 클라이언트 서버 설정 –
**
우선 로그를 보내는 클라이언트 서버의 /etc/syslog.conf 열어서
아래의 부분 추가 후 syslog 리스타트
**
– 로그 서버 설정 –
**
우선 아래의 syslog-ng 설치 [ rhel4 /centos4 기준]
<A href=”ftp://ftp.pbone.net/mirror/ftp.silfreed.net/repo/rhel/4/x86_64/silfreednet/RPMS/syslog-ng-1.6.8-1.el4.i386.rpm” target=_blank><FONT color=#0000ff>ftp://ftp.pbone.net/mirror/ftp.silfreed.net/repo/rhel/4/x86_64/silfreednet/RPMS/syslog-ng-1.6.8-1.el4.i386.rpm</FONT>
</A>
기존의 syslog 지우지 않고 설치 해도 무관하다.
/etc/syslog-ng/syslog-ng.conf 파일 백업 해 두고 아래의 내용으로 변경 한다
time_reopen (10);
log_fifo_size (1000);
long_hostnames (off);
use_dns (no);
use_fqdn (no);
create_dirs (no);
keep_hostname (yes);
};
source local {
unix-stream(“/dev/log”);
internal();
};
source LOG_ZONE {
udp(ip(0.0.0.0) port(514)); # 포트는 바꾸고 싶은걸로 바꾸도 무관
};
destination hosts {
file(“/home/SYSTEM_LOG/$YEAR/$MONTH/$DAY/$HOST/$FACILITY”
owner(root) group(root) perm(0600) dir_perm(0700)
create_dirs(yes));
};
log {
source(local);
destination(hosts);
};
log {
source(LOG_ZONE);
destination(hosts);
};
방화벽 udp 514포트 오픈 , syslog-ng 리스타트
이렇게 하면…
원격지에 있는 서버들의 시스템 로그들이 /home/SYSTEM_LOG/년/월/일/ip/
형식으로 구분되어서 저장되는것을 볼수 있을것이다.