rsyslog logserver
rsyslog server 구성
rsyslog(Log-Server) , server1(Log-Client) , server2(Log-Client)
rsyslog 설치 확인
[root@rsyslog ~]# rpm -aq |grep -i rsyslog rsyslog-8.24.0-12.el7.x86_64
rsyslog 설정
(UDP / TCP 중 선택 하여 설정 할수 있으며 514 Port 를 사용합니다.)
[root@rsyslog ~]# vi /etc/rsyslog.conf # Provides UDP syslog reception #$ModLoad imudp #$UDPServerRun 514 ## TCP 를 사용하여 테스트 하기 위하여 아래 내용의 주석을 제거 합니다. # Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
rsyslog Rule 설정
[root@rsyslog ~]# vi /etc/rsyslog.conf #### RULES #### # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg :omusrmsg:* # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log ## 아래 내용을 추가 합니다. # Rsyslog Server Rules $template TmplAuth, "/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log" $template TmplMsg, "/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log" authpriv.* ?TmplAuth *.info,mail.none,authpriv.none,cron.none ?TmplMsg
rsyslog 재시작
[root@rsyslog ~]# systemctl restart rsyslog
rsyslog 재시작후 /var/log/rsyslog 디렉토리가 생성 되며 hostname 별로 디렉토리가 생성 됩니다.
[root@rsyslog ~]# ls -al /var/log/rsyslog/ total 4 drwx------ 3 root root 21 Feb 2 10:07 . drwxr-xr-x. 7 root root 4096 Feb 2 10:07 .. drwx------ 2 root root 64 Feb 2 10:07 rsyslog [root@rsyslog ~]#
rsyslog client 설정
[root@server1 ~]# vi /etc/rsyslog.conf *.* @@192.168.192.100:514 [root@server2 ~]# vi /etc/rsyslog.conf *.* @@192.168.192.100:514
( rsyslog server ip 설정 @=UDP @@=TCP 입니다.)
Client rsyslog 재시작
[root@server1 ~]# systemctl restart rsyslog [root@server2 ~]# systemctl restart rsyslog
Test 를 위하여 server1, server2 에서 ssh login 을 진행 한후 rsyslog server 에서 /var/log/rsyslog 디렉토리를 확인 합니다.
[root@rsyslog rsyslog]# ls -al total 4 drwx------ 5 root root 51 Feb 2 10:24 . drwxr-xr-x. 7 root root 4096 Feb 2 10:22 .. drwx------ 2 root root 80 Feb 2 10:09 rsyslog drwx------ 2 root root 87 Feb 2 10:24 server1 drwx------ 2 root root 87 Feb 2 10:24 server2 [root@rsyslog rsyslog]# cd server1 [root@rsyslog server1]# ll total 8 -rw------- 1 root root 0 Feb 2 10:24 rsyslogd.log -rw------- 1 root root 198 Feb 2 10:24 sshd.log -rw------- 1 root root 131 Feb 2 10:24 systemd.log -rw------- 1 root root 0 Feb 2 10:24 systemd-logind.log [root@rsyslog server1]#
(Client 에서 사용하는 서비스별로 log 가 취합 됩니다.)
log rotate 설정
(rsyslog 파일을 생성 합니다. )
[root@rsyslog ~]# vi /etc/logrotate.d/rsyslog /var/log/rsyslog/*/*log { weekly size 100M create 0600 root root rotate 4 }
(일주일 로그 4주 보관 24일치를 보관 합니다. Size 의 경우 100k , 100M , 100G 단위로 설정할수 있습니다.)
firewalld 사용시 permanent 514 Port 추가
[root@rsyslog ~]# firewall-cmd --permanent --add-port=514/udp [root@rsyslog ~]# firewall-cmd --permanent --add-port=514/tcp [root@rsyslog ~]# firewall-cmd --reload