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

Debian Squeeze에서 munin과 monit으로 서버 모니터링하기

Debian Squeeze에서 munin과 monit으로 서버 모니터링하기

버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요

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

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

이 튜토리얼은 Debian Squeeze를 위해 작성되었지만, 구성은 다른 배포판에서도 약간의 변경으로 적용될 수 있습니다.

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

1 사전 참고

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

2 munin 설치 및 구성

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

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

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

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

munin을 위한 Apache 구성 파일 /etc/apache2/conf.d/munin(실제로는 /etc/munin/apache.conf에 대한 심볼릭 링크)를 찾아야 합니다. 이 파일은 munin의 HTML 출력 디렉토리 /var/cache/munin/www에 대한 별칭인 munin을 정의하고 있습니다. 이는 이 서버의 모든 웹 사이트에서 상대 경로 /munin을 사용하여 munin에 접근할 수 있음을 의미합니다(예: http://www.example.com/munin).

localhost 127.0.0.0/8 ::1에서의 허용 줄을 주석 처리하고 대신 Allow from all로 변경해야 합니다(그렇지 않으면 localhost에서만 munin 출력을 접근할 수 있습니다):

vi /etc/apache2/conf.d/munin

| Alias /munin /var/cache/munin/www Order allow,deny Allow from all #Allow from localhost 127.0.0.0/8 ::1 Options None # 이 파일은 .htaccess 파일로 사용될 수 있거나, apache 구성 파일의 일부로 사용될 수 있습니다. # # .htaccess 파일 옵션이 작동하려면 munin www 디렉토리 # (/var/cache/munin/www)에 "AllowOverride all" 또는 비슷한 것이 설정되어야 합니다. # # AuthUserFile /etc/munin/munin-htpasswd # AuthName "Munin" # AuthType Basic # require valid-user # 다음 부분은 mod_expires가 활성화되어야 합니다. # # 파일의 기본 만료 시간을 생성(수정) 시간으로부터 5분 10초로 설정합니다. 그때쯤 새로운 파일이 있을 것입니다. # ExpiresActive On ExpiresDefault M310 |

Apache를 재시작합니다:

/etc/init.d/apache2 restart

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

/etc/init.d/munin-node restart

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

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

3 munin 출력 디렉토리 비밀번호 보호(선택 사항)

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

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

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

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

vi /etc/apache2/conf.d/munin

… 그리고 다음 섹션의 주석을 제거합니다:

| [...] AuthUserFile /etc/munin/munin-htpasswd AuthName "Munin" AuthType Basic require valid-user [...] |

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

/etc/init.d/apache2 restart
Share: X/Twitter LinkedIn

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

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