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

Debian 8 (Jessie)에서 Munin과 Monit으로 서버 모니터링하기

이 기사에서는 Munin과 Monit을 사용하여 Debian 8 (Jessie) 서버를 모니터링하는 방법을 설명합니다. munin은 서버의 거의 모든 측면(부하 평균, 메모리 사용량, CPU 사용량, MySQL 처리량, eth0 트래픽 등)에 대한 멋진 그래픽을 생성하며, 많은 구성 없이 사용할 수 있습니다. 반면 Monit은 Apache, MySQL, Postfix와 같은 서비스의 가용성을 확인하고, 서비스가 예상대로 작동하지 않을 경우 재시작과 같은 적절한 조치를 취합니다. 두 가지의 조합은 현재 또는 다가오는 문제를 인식할 수 있는 그래픽(예: “서버의 부하 평균이 급격히 증가하고 있으므로 더 큰 서버가 필요합니다.”)과 모니터링된 서비스의 가용성을 보장하는 감시 프로그램을 제공합니다.

Munin은 여러 서버를 모니터링할 수 있지만, 여기서는 설치된 시스템의 모니터링만 논의합니다.

이 튜토리얼은 Debian 8 (Jessie)을 위해 작성되었지만, 구성은 Ubuntu와 같은 다른 배포판에도 약간의 변경으로 적용될 수 있습니다.

먼저, 이러한 시스템을 설정하는 유일한 방법이 아니라는 점을 말씀드리고 싶습니다. 이 목표를 달성하는 방법은 여러 가지가 있지만, 제가 선택한 방법입니다. 이것이 귀하에게 작동할 것이라는 보장을 하지 않습니다!

1 사전 참고

우리 시스템의 호스트 이름은 server1.example.com이며, /var/www/www.example.com/web에 문서 루트가 있는 웹사이트 www.example.com이 있습니다.

Munin을 설치하기 전에 시스템이 최신 상태인지 확인하려면 다음 명령을 실행하십시오:

apt-get update  
apt-get upgrade

Apache는 Munin 페이지를 표시하는 데 사용되며, apache fcgid 모듈은 Munin 그래프 확대 기능에 필요합니다. apt를 사용하여 apache와 fcgid 모듈을 설치합니다.

apt-get install apache2 libcgi-fast-perl libapache2-mod-fcgid

apache에서 fcgid 모듈을 활성화합니다.

a2enmod fcgid

2 Munin 설치 및 구성

Debian Jessie에 Munin을 설치하려면 다음과 같이 합니다:

apt-get install munin munin-node munin-plugins-extra 

서버가 MySQL 또는 MariaDB를 실행 중인 경우, MySQL을 모니터링하기 위해 몇 가지 추가 Munin 플러그인을 활성화합니다:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/mysql_ mysql_  
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes  
ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb  
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_  
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries  
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries  
ln -s /usr/share/munin/plugins/mysql_threads mysql_threads

다음으로, Munin 구성 파일 /etc/munin/munin.conf를 편집해야 합니다. dbdir, htmldir, logdir, rundir 및 tmpldir 줄의 주석을 제거합니다(기본값은 괜찮습니다). HTML 출력에서 localhost.localdomain 대신 server1.example.com을 사용하도록 Munin을 설정하려고 하므로, 간단한 호스트 트리 섹션에서 localhost.localdomain을 server1.example.com으로 교체합니다. 주석이 제거된 변경된 파일은 다음과 같습니다:

nano /etc/munin/munin.conf
# Munin을 위한 예제 구성 파일, 'make build'에 의해 생성됨  
  
# 다음 세 변수는 RRD 데이터베이스, HTML 출력, 로그 및 잠금/pid 파일의 위치를 지정합니다. 모두  
# munin-cron을 실행하는 사용자가 쓸 수 있어야 합니다. 모두  
# 여기에서 볼 수 있는 값으로 기본 설정되어 있습니다.  
#  
dbdir /var/lib/munin  
htmldir /var/cache/munin/www  
logdir /var/log/munin  
rundir /var/run/munin  
  
# HTML 템플릿을 찾을 위치  
#  
tmpldir /etc/munin/templates  
  
# 정적 www 파일을 찾을 위치  
#  
#staticdir /etc/munin/static  
  
# 임시 cgi 파일이 여기에 있습니다. cgi 사용자가 쓸 수 있어야 합니다(보통 nobody 또는 httpd).  
#  
# cgitmpdir /var/lib/munin/cgi-tmp

# (정확히 하나) 모든 파일을 포함할 디렉토리.
includedir /etc/munin/munin-conf.d
[...]  
# 간단한 호스트 트리  
[server1.example.com]  
 address 127.0.0.1  
 use_node_name yes
[...]  

Apache 2.4의 Munin 구성 파일 /etc/munin/apache24.conf를 찾아야 합니다. 이 파일은 munin의 HTML 출력 디렉토리 /var/cache/munin/www에 대한 별칭을 정의하며, 이를 통해 이 서버의 모든 웹사이트에서 상대 경로 /munin을 사용하여 munin에 접근할 수 있습니다(예: http://www.example.com/munin).

apache Munin 구성은 기본적으로 활성화되어 있지 않으며, 이는 DebianWheezy에서 Jessie로 변경되었습니다. 새로운 구성 디렉토리는 /etc/apache2/conf-enabled이며, 이전 버전인 Wheezy 및 Squeeze에서 사용된 /etc/apache2/conf.d 대신입니다.

다음 명령을 실행하여 apache에 구성을 활성화하고 로드합니다.

cd /etc/apache2/conf-enabled/  
ln -s /etc/munin/apache24.conf munin.conf  
service apache2 restart

Require local 줄의 주석을 제거하고 Require all granted 및 Options FollowSymLinks SymLinksIfOwnerMatch를 대신 추가해야 합니다(그렇지 않으면 localhost에서만 Munin 출력을 접근할 수 있습니다):

nano /etc/munin/apache24.conf
Alias /munin /var/cache/munin/www  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 Require all granted  
 Options FollowSymLinks SymLinksIfOwnerMatch  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

Apache를 재시작합니다:

service apache2 restart

그런 다음 Munin을 재시작합니다:

service munin-node restart

이제 Munin이 첫 번째 출력을 생성할 수 있도록 몇 분 동안 기다린 후, 브라우저에서 http://www.example.com/munin/으로 이동하면 첫 번째 통계를 볼 수 있습니다:

Munin 그래프

(이는 munin이 생성하는 많은 그래픽 중 일부에 불과합니다…)

3 Munin 출력 디렉토리 비밀번호 보호(선택 사항이지만 강력히 권장)

이제 모든 사람이 서버에 대한 모든 작은 통계를 볼 수 있도록 하려면 munin 출력 디렉토리를 비밀번호로 보호하는 것이 좋습니다.

이를 위해 비밀번호 파일 /etc/munin/munin-htpasswd를 생성해야 합니다. admin이라는 사용자 이름으로 로그인하려고 하므로 다음과 같이 합니다:

htpasswd -c /etc/munin/munin-htpasswd admin

admin의 비밀번호를 입력합니다. 그런 다음 /etc/munin/apache24.conf를 다시 엽니다…

nano /etc/munin/apache24.conf

… “Require all granted”의 주석을 제거하고 빨간색으로 표시된 줄을 추가합니다:

Alias /munin /var/cache/munin/www  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
 Options None  
  
  
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph  
  
 # Require local  
 # Require all granted  
 AuthUserFile /etc/munin/munin-htpasswd  
 AuthName "Munin"  
 AuthType Basic  
 Require valid-user  
   
 SetHandler fcgid-script  
   
   
 SetHandler cgi-script  
   

그런 다음 Apache를 재시작합니다:

service apache2 restart

4 Munin에서 추가 모듈 활성화

Munin 명령 “munin-node-configure –suggest”를 사용하여 서버에서 활성화할 수 있는 추가 Munin 모듈에 대한 권장 사항을 얻을 수 있습니다. 실행합니다:

munin-node-configure --suggest

출력은 다음과 유사해야 합니다:

Munin 노드 구성 상태.

“used” 열은 모듈이 활성화되어 있는지 여부를 보여주고, “Suggestions” 열은 서버가 이 모듈로 모니터링할 수 있는 서비스를 실행 중인지 여부를 보여줍니다. 모듈을 활성화하려면 /etc/munin/plugins에 대한 심볼릭 링크를 생성합니다.

여기서는 apache_* 모듈을 활성화하겠습니다:

cd /etc/munin/plugins  
ln -s /usr/share/munin/plugins/apache_accesses  
ln -s /usr/share/munin/plugins/apache_processes  
ln -s /usr/share/munin/plugins/apache_volume

새 구성을 로드하기 위해 Munin을 재시작합니다.

service munin-node restart
Share: X/Twitter LinkedIn

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

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