본문 바로가기
Tip & Tech/Linux

서버 모니터링 Munin 설치 운영

by 변기환 2010. 7. 6.
Munin이 어떻게 서버를 모니터링 하는지는 데모 페이지인 이곳을 참고하기 바란다.

지속적인 서비스가 가능한 서버를 운영한다는 것은 결코 쉬운 일이 아니다. 물론 개인적인 목적으로 서버를 운영하고 있다면 간혹 서비스가 중단되어도 그에 따른 부담이 없지만, 상업적인 목적을 가진 서버를 맡아서 운영하고 있다면 그 스트레스는 보통이 아니다.

언제 어디에 있든 서버가 원활하게 운영되고 있는지, 무슨 문제가 있지는 않은지 여간 신경 쓰이는 게 아니다. 서버가 아무리 세팅이 잘되어 있다고 해도 그 서버가 영원히 안전하다고는 누구도 보장하지 못한다.

잘 운영되고 있던 서버가 어느 날 멈춰 있을 때도 있고 특정한 서비스가 원인 모를 이유로 서비스가 중단되어 있을 때도 있다.

이유 없는 에러에 대처할 수 있는 가장 좋은 방법이 서버를 모니터링 하는 것이다. 일정한 시간 간격으로 서버에서 이루어지는 중요한 이벤트를 로그로 기록한다면 서버에 문제가 생겼을 때 추적하기가 쉽다.

Munin 서버 모니터링 툴은 간편한 설치와 세팅만으로 각종 Plugin을 이용하여 서버의 세세한 부분까지 모니터링 가능하다.

아래 이미지는 Munin에서 모니터링 한 Apache processes의 그래픽화면이다. 일,월,주,달,년 단위로 기록하고 있으며 busy 상태 idle 상태의 Apache processes의 최소, 최대, 평균값을 수치로 표시해 주고 있다.
아래 화면은 Disk 사용률을 년,월,주,일 단위로 표시하고 있다. 수치가 아니라 그래프로 표시되기 때문에 갑자기 Disk 사용률이 늘었다거나 줄었을 경우 해당 시간대를 쉽게 알 수 있다.
특정 network interface 즉 이더넷 카드의 트래픽을 기록한 화면이다. 그래프로 표시되기 때문에 과도한 트래픽이 발생된 경우 쉽게 추적할 수 있다.
CPU 사용율
메모리 사용율
그럼 이제부터 Munin 서버를 설치해보자

필자의 CentOS 5.4 버전을 기준으로 설명하므로 배포판이 다른경우 원활히 설치되리라 장담할 수 없다.

yum rpmforge 등록하기
rpmforge 일반 미러서버에 없는 rpm 설치나, 조금 더 높은 버전의 rpm 설치를 가능하게 해준다.
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

munin 패키지 설치
yum -y install munin

Web으로 접근할 디렉토리 생성 및 권한변경
cd /
cd /home
mkdir sysinfo # 이 부분은 사용자에 맞게 지정
chown -R munin:munin /home/sysinfo

/etc/munin/munin.conf에 서비스 경로와 모니터링 할 서버를 추가해준다.
dbdir /var/lib/munin
htmldir /home/sysinfo # 이 부분은 사용자 환경에 맞게 경로를 변경한다.
logdir /var/log/munin
rundir /var/run/munin

[localhost-server]
    address 127.0.0.1
    use_node_name yes

웹 브라우저로 쉽게 접속할 수 있도록 설정한다.
apache httpd.conf
Alias /sysinfo "/home/sysinfo/www/" #munin.conf htmldir 경로를 적어준다.
<Driectory ""/home/sysinfo/www/">
     Option FollowSymLinks
     Order Deny,Allow
     php_value shor_open_tag 0

     # 보안을 위해 접속을 허용할(모니터링 하는 PC) IP를 적어준다.
     # 어느 PC에서든 접속을 허용하고 싶으면 아래 설정을 생략한다.
     Allow from <<IP>>
</Driectory>

Apache 웹서버와 Cron 데몬을 재기동한다.
service httpd restart && service crond restart

munin-node 패키지 설치
yum install munin-node

노드 설정
vi /etc/munin/munin-node.conf
# munin 서버에서 IP지정한다.
allow ^127\.0\.0\.7$#

munin-node 시작
service munin-node restart

잘 전송되는지 tail -f /var/log/munin/munin-node.log 해서 로그를 확인한다. 아래와 같이 출력되고 있으면 정상적으로 접속이 되고 있다.
업데이트가 잘 되는지 tail -f /var/log/munin/munin-update.log 해서 로그를 확인한다.

Plugin 설치

1. 아파치 모니터링
아파치 웹서버를 모니터링 할려면
ln -s /usr/share/munin/plugins/apache_* /etc/munin/plugins/
해서 플러그인을 쓸수 있도록 하고 아파치 설정에서도 server-status 를 사용할 수 있도록 수정한다.

apache httpd.conf
ExtendedStatus On

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>
마지막으로 service munin-node restart 를 하여 적용시킨다.
이제 웹브라우저를 열고 URL에 http://IP/sysinfo을 입력한다. 시간이 지나면 모니터링화면에서 갱신되어 볼 수 있다.

다른 Plugin을 사용하고 싶다면 /usr/share/munin/plugins 디렉토리에 있는 plugin을 확인한 다음
ln -s /usr/share/munin/plugins/<<plugin>> /etc/munin/plugins/
을 이용하여 주가 하고 service munin-node restart 하면 반영된다.

댓글