서버 모니터링 · 4 min read · Oct 18, 2025

중앙 집중식 RSYSLOG 서버 모니터링

중앙 집중식 RSYSLOG 서버 모니터링

이 튜토리얼은 Debian 6 (Squeeze)에서 RSYSLOG 서버를 설치하고 여러 클라이언트 서버에서 syslog 데이터를 전송하는 방법에 대한 단계별 지침을 제공합니다. 또한 syslog 데이터를 수집하기 위해 Apache 웹 서버와 MySQL 데이터베이스 서버를 설치하는 방법과 수집된 데이터를 웹 브라우저로 쉽게 탐색할 수 있도록 LogAnalyzer를 설치하는 방법을 보여줍니다.

저는 이 설정을 위해 미리 만들어진 OpenVZ 가상화 템플릿을 사용하고 있지만, 대부분의 Debian 기반 운영 체제에서도 작동해야 합니다.

이것이 여러분에게 작동할 것이라는 보장은 하지 않습니다!

RSYSLOG 서버 설치하기

이 첫 번째 부분에서는 클라이언트에서 syslog 데이터를 수집할 RSYSLOG 서버를 구축하는 방법을 설명합니다. 이 예제에서 우리의 서버는 rsyslog.domain.com이라고 하며 고정 IP 주소는 192.168.0.15입니다.

먼저 몇 가지 종속성을 설치합니다.

apt-get update
apt-get upgrade

apt-get install rsyslog rsyslog-mysql unzip zip binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libdb4.6-dev libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

설치 중에 MySQL 서버 비밀번호를 입력하라는 메시지가 표시될 때 비밀번호를 생성하세요!

제 OpenVZ 템플릿에는 이미 이것이 포함되어 있었으므로 이 명령은 여러분에게도 필요하지 않을 수 있습니다…

apt-get install linux-kernel-headers

** 서비스가 실행 중인지 확인하세요…

/etc/init.d/rsyslog restart
/etc/init.d/mysql restart
/etc/init.d/apache2 restart

서버가 적절한 TCP IP 포트(80 및 3306)에서 수신 대기 중인지 확인합니다. 현재 RSYSLOG는 어떤 포트에서도 수신 대기하지 않습니다.

rsyslog:~# netstat -tapn

활성 인터넷 연결 (서버 및 설정됨)
Proto Recv-Q Send-Q Local Address
Foreign Address
State PID/Program name
tcp
0 0
127.0.0.1:3306
0.0.0.0:
LISTEN
415/mysqld
tcp
0 0
0.0.0.0:80
0.0.0.0:

LISTEN 581/apache2

그런 다음 rsyslog 데이터베이스를 생성할 수 있습니다:

mysqladmin -u root -p create rsyslog

다음으로 MySQL 명령 셸을 시작하고 rsyslog 사용자를 생성합니다:

mysql -u root -p

GRANT SELECT, INSERT, UPDATE, DELETE ON rsyslog.* TO ‘rsyslog’@’localhost’ IDENTIFIED BY ‘ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE’;

FLUSH PRIVILEGES;
quit

다음으로 rsyslog 서버가 TCP 포트 514에서 수신 대기하도록 구성합니다:

vi /etc/rsyslog.conf

이 줄을 추가하세요… (MySQL 서버의 rsyslog 사용자를 생성할 때 입력한 비밀번호로 변경하는 것을 잊지 마세요.)

$ModLoad MySQL
*.*       >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE

…그리고 TCP syslog 수신과 관련된 줄 앞의 주석을 제거합니다.

# /etc/rsyslog.conf Configuration file for rsyslog v3.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
$ModLoad MySQL
*.* >127.0.0.1,rsyslog,rsyslog,ENTER-YOUR-NEW-RSYSLOG-PASSWORD-HERE
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
#$ModLoad immark # provides --MARK-- message capability
# provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
###########################
#### GLOBAL DIRECTIVES ####
###########################

그리고 rsyslog 서비스를 재시작합니다.

/etc/init.d/rsyslog restart

서버가 적절한 TCP IP 포트(80, 514 및 3306)에서 수신 대기 중인지 확인합니다.

rsyslog:~# netstat -tapn

활성 인터넷 연결 (서버 및 설정됨)
Proto Recv-Q Send-Q Local Address
Foreign Address
State PID/Program name
tcp
0 0
0.0.0.0:514
0.0.0.0:
LISTEN 618/rsyslogd
tcp
0 0
127.0.0.1:3306
0.0.0.0:

LISTEN
415/mysqld
tcp
0 0
0.0.0.0:80
0.0.0.0:*
LISTEN 581/apache2

그런 다음 LogAnalyzer를 다운로드하고 Apache 웹 서버를 구성하여 로그를 표시합니다.

cd /tmp

wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.1.tar.gz

tar xvzf loganalyzer-3.4.1.tar.gz
mv loganalyzer-3.4.1/ /var/www/
cd /var/www

그런 다음 Apache 웹 서버를 위한 www 폴더의 사용자 권한을 구성합니다.

chown www-data:www-data * . -Rf

그리고 LogAnalyzer 폴더에서 약간의 ‘정리 작업’을 합니다.

mv loganalyzer-3.4.1/ loganalyzer
cd contrib/
cp * ./../src/
cd ./../src/
sh ./configure.sh

그리고 우리는 웹 브라우저를 사용하여 LogAnalyzer의 최종 설정을 입력할 준비가 되었습니다. 웹 브라우저를 rsyslog 서버의 고정 IP 주소인 http://192.168.0.15/loganalyzer/src/install.php로 지정하세요.

간단한 설정 스크립트를 진행하세요 (거의 다음 -> 다음입니다).

이제 작동하는 rsyslog 서버와 LogAnalyzer가 실행 중이어야 합니다.

다음으로 RSYSLOG 클라이언트를 구성하여 syslog 데이터를 rsyslog 서버로 전송합니다:

RSYSLOG 클라이언트 구성하기

보통 우리가 해야 할 일은 rsyslog.conf 파일을 구성하고 서비스를 재시작하는 것입니다. (거의 모든 Debian에는 rsyslog가 미리 설치되어 있습니다.)

vi /etc/rsyslog.conf

네트워크 연결이 끊길 경우 사용되는 작업 스풀 디렉토리 줄을 추가하고 rsyslog 서버 IP 주소를 192.168.0.15로 변경합니다. (mkdir 명령으로 /rsyslog/work 스풀 디렉토리를 생성할 수도 있습니다.)

# provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
$WorkDirectory /rsyslog/work # default location for work (spool) files
$ActionQueueType LinkedList # use asynchronous processing
$ActionQueueFileName srvrfwd # set file name, also enables disk mode
$ActionResumeRetryCount -1 # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down
*.* @@YOUR-RSYSLOG-SERVER-ADDRESS-HERE
###########################
#### GLOBAL DIRECTIVES ####
###########################

그리고 rsyslog 서비스를 재시작합니다.

/etc/init.d/rsyslog restart

서버가 적절한 TCP IP 포트(514)에 연결되어 있는지 확인합니다.

root@ic1:~# netstat -tapn

활성 인터넷 연결 (서버 및 설정됨)
Proto Recv-Q Send-Q Local Address
Foreign Address
State PID/Program name
tcp
0 0
192.168.0.100:49188
192.168.0.15:514
ESTABLISHED 13289/rsyslogd

이것이 성공적인 설정의 모습입니다.

스크린샷 - LogAnalyzer 사용 중

| | 사미 마틸라 인터넷-콘텐츠.europa SM OY

전화: +358.9.42833310
휴대전화: +358.400.749692
이메일: [email protected]
상점: https://shop.internet-content.net
사이트: http://www.internet-content.net
블로그: http://www.internet-content.net/en/blog |

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.