[system] rsyslog logserver

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

 

 

 

댓글 남기기