syslog-ng를 이용하여 로그서버 구축

syslog로  원격지의 시스템 로그를 받아 볼수 있지만…

로그를 보내는 클라이언트 수가 많은 경우 골치 아파진다.

날짜별.. 호스트별… 구분해서 저장해야 관리가 되는데 syslog로는 역부족 하다.

syslog-ng가  이러한 모든 고민을 해결해준다.

시스템 log서버를 별도로 만들려고 하는경우  로그를 받는 로그서버에만
syslog.-ng를 설치 해주면 된다  편하게 rpm으로~ ㄱㄱㄱ.

**– 클라이언트 서버 설정 –
**
우선  로그를 보내는 클라이언트 서버의  /etc/syslog.conf 열어서
아래의 부분 추가 후 syslog  리스타트

*.*                                                            @로그서버 IP

**

– 로그 서버 설정 –
**
우선 아래의 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 파일 백업 해 두고 아래의 내용으로 변경 한다

options { sync (0);
          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/

형식으로 구분되어서 저장되는것을 볼수 있을것이다.

Written on November 11, 2010