기술 노트/rsyslog

ubuntu에서 rsyslog 설정

미래의억만장자 2025. 6. 12. 16:39

rsyslog.conf 설정

# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
module(load="imudp") <- 해당 라인 '#' 주석 제거
input(type="imudp" port="514") <- 해당 라인 '#' 주석 제거

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

###########################
#### GLOBAL DIRECTIVES ####
###########################

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

 

로그 수집 폴더 설정

root@rsyslog:/etc/rsyslog.d# cd /var/log
root@rsyslog:/var/log# mkdir rsyslog
root@rsyslog:/var/log# chown syslog:adm ./rsyslog/
root@rsyslog:/var/log# ls -al | grep rsyslog
drwxr-xr-x   2 syslog            adm                   2 Jun 13 01:30 rsyslog

 

10-remote.conf 설정

root@rsyslog:/etc/rsyslog.d# vi ./10-remote.conf
# syslog 수신 시 저장할 위치 및 파일 설정 템플릿
$template Remote,"/var/log/rsyslog/%fromhost-ip%/%$YEAR%-%$MONTH%-%$DAY%.log"

# syslog 수신 시 fromhost-ip가 127.0.0.1이 아닌 경우 템플릿 Remote 정책을 적용
:fromhost-ip, !isequal, "127.0.0.1" ?Remote

# 템플릿 Remote로 수신한 경우 로그 처리 중지
# 중지하지 않을 경우, OS에서 수집하는 syslog나 message에도 로그가 수집 됨 (중복 수집)
& stop

 

rsyslogd 서비스 재시작 및 로그 확인

root@rsyslog:/var/log/rsyslog# systemctl restart rsyslog.service
root@rsyslog:/var/log/rsyslog# ls -al
total 11
drwxr-xr-x  3 syslog adm     3 Jun 13 01:45 .
drwxrwxr-x 20 root   syslog 41 Jun 13 01:30 ..
drwxr-xr-x  2 syslog syslog  3 Jun 13 01:45 1.1.1.1
root@rsyslog:/var/log/rsyslog#

 

logstash에서 로그를 읽어드릴거라면

root@rsyslog:~# cat /etc/group| grep adm
adm:x:4:syslog,outlog, logstash # logstash 계정을 rsyslog 그룹에 추가