Monit/ko
app-admin/monit은 유닉스 시스템의 프로세스, 프로그램, 파일, 디렉터리, 파일 시스템을 관리하고 감시하는 도구입니다.
설정
monit 설치
app-admin/monit 프로그램은 다음 USE 플래그를 활용합니다.
USE flags for app-admin/monit Monitoring and managing daemons or similar programs running on a Unix system
USE 플래그를 적절하게 결정했으면 emerge 명령으로 app-admin/monit을 설치하십시오:
root #
emerge --ask app-admin/monit
Monit 설정 파일
monit 프로그램은 /etc/monitrc 설정 파일을 활용합니다.
감시 항목 정의의 추가/제거를 용이하게 하기 위해 monit에서는 지정 디렉터리(보통 /etc/monit.d) 안에 파일을 넣게 해줍니다. 이 설정 파일을 활성화하려면 다음과 같이 /etc/monitrc를 편집하십시오
## It is possible to include additional configuration parts from other files or
## directories.
include /etc/monit.d/*
monit과 관련된 설정 파일을 바꾸고 나면 monit이 바뀐 설정을 다시 읽게 하십시오.
root #
monit reload
부팅할 때 monit 자동 시작
monit이 /etc/inittab설정으르 시작하여 init 자체에서 monit 프로그램을 시작하도록하고 monit이 갑자기 죽었을 때 자동으로 다시 시작하도록 하는 것이 좋습니다. init 스크립트로 monit을 시작하면 이 기능을 지원하지 않습니다.
# Run monit in standard runlevels
mo:2345:respawn:/usr/bin/monit -Ic /etc/monitrc
/etc/inittab을 업데이트한 후에는, telinit q 명령으로 monit을 바로 시작할 수 있습니다.
사용자 관리
사용자를 monit 또는 users 그룹에 추가하면 해당 사용자는 웹 인터페이스를 통해 monit에 접근할 수 있습니다.
이 그룹에 사용자를 추가하려면 gpasswd 명령을 사용하십시오:
root #
gpasswd -a $USER monit
root #
gpasswd -a $USER users
/etc/monitrc 파일에서 allow
구문은 이 그룹을 다음과 같이 참조해야합니다:
set httpd port 2812
allow @monit
allow @users
monitrc 파일에 하드코딩한 사용자 이름 및 암호를 넣을 수 있습니다만, 추천하지 않습니다. monitrc 파일에 기본 암호가 있는지 확인하고, 제거하거나 더 강력하고 특별한 암호로 바꾸십시오. 여기서 사용하는 설정 방식은 allow <username>:<password>
입니다.
monit 웹 서비스
웹 인터페이스 기본 위치는 localhost:2812이며 admin이 관리자 이름, monit은 기본 암호입니다. 기본 암호를 바꾸었는지 확인하십시오!
monit으로 프로그램 감시
monit 프로그램은 PID 파일을 사용하여 프로그램이 여전히 동작중인지를 확인합니다. PID 파일은 프로그램이 실행하는동안 반드시 있어야 하며, 그렇지 않으면 monit의 실행 여부를 보장하지 못합니다. 데몬에서 PID 파일을 만들지 않으면 래퍼en로 PID 파일을 만드십시오.
감시 목적의 PID 파일 활용(및 ps와 같은 도구로 PID 검증)은 종종 문제가 나타납니다[1]. Monit은 이런 취약점을 극복하기 위해 PID 파일을 좀 더 자주 점검하여 신뢰성을 높입니다.
/etc/monit.d/ 위치를 활용하면 추가 감시 규칙을 쉽게 추가할 수 있습니다.
여기서는 MySQL이 갑자기 멈추었을 때 자동으로 시작하게 합니다:
check process mysql with pidfile /var/run/mysqld/mysqld.pid
start program = "/bin/bash -c 'rc-service mysql start'"
stop program = "/bin/bash -c 'rc-service mysql stop'"
또 다른 예제에서는 프로세스의 메모리 사용량이 설정한 한계점을 넘었을 때 경고를 나타내도록 합니다:
check process squid with pidfile /run/squid.pid
start program = "/bin/bash -c 'rc-service squid start'"
stop program = "/bin/bash -c 'rc-service squid stop'"
if totalmem > 512 MB then alert
monit 디버깅
monit 전면 실행
monit을 전면에서 실행하고 감지하는 모든 상황에 대한 피드백을 받으려면 -lvv
옵션을 사용하십시오:
root #
monit -Ivv
... 'squid' total mem amount of 525748kB matches resource limit [total mem amount>524288kB]
외부 자료
Monit에 대한 더 많은 내용을 찾아보려한다면 다음 자료를 통해 도움을 받으실 수 있습니다.
참고 자료
- ↑ Greg Wooledge. Process management, Retrieved on January 1st, 2015