Trans:Munin

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기

Munin

Munin은 리소스 상태의 분석을 돕고 성능을 저하하는 요소가 무엇인지에 대한 문제를 보여주는 네트워크 자원 감시 도구 입니다.

Munin은 상하위 노드 구조로 구현됐습니다. 특정 상위 노드는 수많은 하위 노드로 구성되어 있습니다. 상위노드는 하위 노드에서 데이터를 수집하며 HTML 출력을 제공합니다. 보통 이러한 상태데이터는 웹서버에서 접근 가능한 디렉터리에 위치하며 웹 브라우저에서 볼 수 있습니다.

USE 플래그

Munin에서 사용할 USE 플래그는 특이한 방법으로 다룹니다. 대부분의 플래그는 상위 노드보다는 (약간 더 혹은 덜 명백하게 예외적으로) 하위노드에 관련되어 있습니다. 그러면서 필요한 의존성을 가지고 오도록 설계했습니다. 플래그를 비활성화 하면 플러그인을 패키지에서 제거하지 않을 것이며, 이는 Munin을 다시 빌드하지 않으면 소프트웨어를 동작하게 하는 의존성을 붙이는데 충분하지 않다는 의미가 됩니다. 이(플래그 지정 상태)는 플러그인이 보통 어떤 의존성을 지니느냐에 따라 정적인 상태를 지니기 때문에 빌드 초기에 의존성을 결정합니다.

언급 할 수 있는 예외가 있다면 java USE 플래그인데 실제로 몇가지 플러그인을 없앱니다. 간단한 이유를 대보자면 동작할 플러그인에 대해 Munin의 일부인 JAR 라이브러리가 필요하며, 이들은 java 플러그인을 활성화 했을 때만 만들어집니다. 따라서 패키지를 다시 빌드 할 때 이걸 그대로 활성화하거나 비활성화 해야 합니다.

USE 플래그 기본 추천 설명
asterisk 없음 Asterisk 를 감시하는데 필요한 패키지를 설치함. 그 어떤 플러그인 파일도 제거하지 않으려면 이 플래그를 비활성화 하십시오.
doc Yes Yes 전체 소프트웨어에서 출력하는 로컬 복사본 HTML 문서를 만들고 설치합니다. 문서 원본을 처리하는데 dev-python/sphinx 가 필요합니다
irc No IRC를 감시하는데 필요한 패키지를 설치합니다. 그 어떤 플러그인 파일도 제거하지 않으려면 비활성화 하십시오.
java No JMX 호환 프로그램을 감시하려 자바 기반 플러그인을 만듭니다. jmx 모니터링 플러그인을 제거하려면 비활성화 하십시오
memcached No memcached를 감시하는데 필요한 패키지를 설치합니다. 그 어떤 플러그인 파일도 제거하지 않으려면 비활성화 하십시오.
minimal No munin-node와 플러그인만을 설치합니다. 웹페이지와 그래프를 생성하는 스크립트는 제외합니다.
mysql No MySQL을 감시하는데 필요한 패키지를 설치합니다. 그 어떤 플러그인 파일도 제거하지 않으려면 비활성화하십시오.
postgres No PostgreSQL을 감시하는데 필요한 패키지를 설치합니다. 그 어떤 플러그인 파일도 제거하지 않으려면 비활성화하십시오
ssl No No 보안 소켓 계층(SSL) 연결 지원을 추가합니다.
cgi Yes No 실시간으로 웹페이지와 그래프를 생성하는 CGI 호환 스크립트를 설치합니다. minimal USE 플래그를 비활성화 했을때만 의미가 있습니다.
ipv6 No Yes munin-node에 IPv6지원을 추가합니다. 상위 노드로의 IPv6 지원은 항상 활성화 상태입니다. 그러나 하위 노드에 대해서는 IPv6 소켓 감청을 위해 dev-perl/net-server 최신 버전이 필요합니다.
syslog Yes Yes syslog에 기본적으로 로그온하는 노드를 설정합니다. virtual/perl-Sys-Syslog가 버전 2.0.2 정도 있어야 합니다. 상위 노드의 스크립트는 syslog가 아닌 파일로만 기록을 남깁니다

설치와 설정

Munin 설치는 net-analyzer/munin 패키지 하나만 설치하면 되므로 꽤 쉬우며 기본적으로 추가 플러그인 이상의 것은 들어있지 않습니다.


코드 예제 2.1: munin 설치 요소 확인
root # emerge --ask munin


그러나 munin은 기본적으로 두가지 요소 - 상위 노드와 하위 노드 - 로 구성되어 있기에 위 상자에 주어진 요소중에 설정하려는 요소가 무엇인지를 먼저 결정해야 합니다.


참고: 어떤 설정은 sudo 명령으로 실행해야 합니다. 이런 조치가 필요한 이유는 기본적으로 플러그인과 상위노드 스크립트를 munin 사용자 권한으로 실행하기 때문입니다. 적당하게 설정하면 su 명령을 실행하는 대신에 더 쉽게 처리할 수 있습니다


노드 (클라이언트)

Munin 노드는 여러가지 스크립트(플러그인이라고 칭함)의 결과를 보고하는 작업을 합니다. 갖춰진 형식으로 보고 데이터가 구성되어 있어 상위노드에서 값을 기록할 수 있고 보고서를 만들 수 있습니다. 보통 여러분이 감시하려는 대로 각각의 상자에서 하나의 상위 노드를 포함한 하나의 하위 노드를 설정 하게 됩니다.

보고서를 작성하지 않고 데이터를 가져오는 단일 노드를 설정하려면 minimal USE 플래그를 활성화 하는것을 추천합니다. 이렇게 하면 상위 노드에만 영향을 주는 net-analyzer/rrdtool 패키지의 수많은 추가 의존성을 막을 수 있습니다. minimal을 비활성화 하면 이 플래그는 2.0.2버전부터 기본 플래그로 지정한 cgi도 비활성화 해야 합니다.


코드 예제 2.1.1: /etc/portage/package.use
net-analyzer/munin minimal -cgi


이 노트는 보통 Gentoo에 한해 특정 일부 설정에 대해 필요한건 아니므로, 업스트림의 메뉴얼을 따르는 것이 좋습니다. 보통 시스템에서 사용할 수 있는 모든 플러그인을 활성화하려면 munin-node-configure 명령을 사용할 수 있습니다. 어떤 데이터는 관심거리가 아닐수도 있으며 실행했을 경우 시스템에 불러와서 추가할 수 있기에 추천요소는 아닙니다.

어떤 플러그인을 활성화 했는지 확인하려면 다음 명령을 사용할 수 있습니다.


코드 예제 2.1.2: 플러그인 활성화 상태 확인
root # sudo -u munin munin-node-configure --shell


설치한 플러그인 중 어떤 플러그인은 의존성 요소가 빠져 동작하지 않을 수도 있습니다. 더 자새한 정보를 보시려면 USE 플래그 설명을 확인하십시오

선택한 요소가 맞는것 같다면 다음 명령을 사용하여 스크립트를 실행하거나, 원하는 플러그인을 직접 링크걸 수 있습니다.


코드 예제 2.1.3: 플러그인 연결
root # sudo -u munin munin-node-configure --shell


마지막으로 서비스를 시작하고 자동으로 시작하도록 설정하면 됩니다.


코드 예제 2.1.4: 서비스 시작 및 자동 시작 설정
root # /etc/init.d/munin-node start
root # rc-update add munin-node default


마스터(상위 노드)

Munin 상위 노드는 하위 노드에서 보고한 값을 가져오는 작업을 하며 HTML 페이지와 PNG 형식의 그래프로 구성된 보고서를 생성합니다. 이는 cron 작업을 통해 또는 설치할 때 기본적으로 따라오는 CGI 스크립트로 처리할 수 있습니다(따라서 페이지는 정적으로 생성됩니다). 각각의 경우에 대해 보고서를 확인하려면 웹서버가 필요할지도 모릅니다.

Munin 상위 노드 설정 과정에서 minimal USE 플래그를 비활성화 하면 안됩니다.


코드 예제 3.1: /etc/portage/package.use
net-analyzer/munin -minimal


버전 2부터, HTML 페이지와 CGI 스크립트가 만드는 그래프 이미지를 얻을 수 있습니다. 업스트림에서 기본적으로 활성화 한 상태입니다만 잠깐동안은 비활성화 했습니다. 2.0.7-r6 부터 ebuild에서의 CGI 지원은 거의 완료됐습니다.

cron 설정

Munin 상위 노드는 설정한 노드에서 데이터를 가져오기 위한 스크립드를 주기적으로 실행해야 합니다. 다음 명령을 사용하면 간단하게 설정할 수 있습니다.


코드 예제 3.1.1: net-analyzer/munin 설정
root # emerge --config net-analyzer/munin


이 명령을 실행하면 매 5분마다 한번씩 munin 사용자가 cron 작업을 실행하도록 설정합니다. (2.0.3 버전에서) vixie-cron, dcron, fcron 에서 동작하도록 설계했습니다. 서비스를 사용하기 위해 필요한 cron 그룹에 사용자가 있어야 합니다.

cron에서 보고서 만들기

정적으로 보고서를 만들려면 cgi USE 플래그를 비활성화 해야 합니다. 참고로 cgi USE 플래그를 비활성화 하면 그래프 확대가 안됨을 유념하시기 바랍니다.


코드 예제 3.1.2: /etc/portage/package.use
net-analyzer/munin -minimal -cgi


기본 설정은 Apache 2 에서 마련한 작업공간인 /var/www/localhost/htdocs/munin 에 파일을 만들 것이며 lighttpd에서는 http://localhost/munin/과 같이 나타납니다. 그러나 여러분의 설정 사항에 대해 이러한 방식이 적당하지 않거나 만족스럽지 못할 수가 있습니다. 파일을 저장할 경로를 바꾸려면 /etc/munin/munin.conf를 편집하여 다른 가상 호스트를 지정하거나 다른 경로를 지정하십시오.


코드 예제 3.1.3: /etc/munin/munin.conf
graph_strategy cron

html_strategy cron

# we want to use http://localhost/monitor/ to access the report

htmldir /var/www/localhost/htdocs/monitor