서버 관리 · 6 min read · Nov 01, 2025

Debian 9에 Monit 설치 및 구성하는 방법

Monit은 웹 브라우저와 명령줄을 사용하여 시스템 프로세스를 모니터링하는 데 사용할 수 있는 무료 오픈 소스 프로세스 모니터링 도구입니다. 또한 파일, 디렉터리 및 장치의 크기 변경 및 권한 변경을 모니터링하는 데 사용됩니다. Monit은 특정 프로세스가 중단되면 자동으로 복구합니다. Monit은 또한 Linux 기반 시스템에서 Apache, Sendmail, Nginx, FTP, SSH 및 MySQL과 같은 거의 모든 서비스를 모니터링할 수 있습니다. Monit을 사용하여 원격 호스트의 TCP/IP 포트, 프로토콜 및 핑을 모니터링할 수 있습니다. Monit은 높은 리소스를 사용하는 특정 프로세스를 중지할 수 있는 기능이 있습니다. Monit은 서버를 감시하고 모든 중요한 오류 조건 및 복구 상태에 대한 경고를 보냅니다.

기능

  1. 특정 프로세스를 자동으로 시작, 중지 및 종료합니다.
  2. 상태 모니터링을 위한 사용자 친화적인 웹 인터페이스.
  3. 중요한 조건에 대해 이메일로 알림.
  4. 시스템 부하, CPU 사용량, RAM 사용량, 디스크, 파일 크기 변경, 권한 변경 등을 확인합니다.
  5. HTTP, FTP, SSH, POP, IMAP, LDAP, IMAP 및 SMTM과 같은 다양한 프로토콜을 모니터링합니다.
  6. syslog 또는 자체 로그 파일을 통한 로깅.

이 튜토리얼에서는 Debian 9에서 Monit을 설정하고 사용하는 방법을 설명합니다.

요구 사항

  • 시스템에 설치된 새로운 Debian 9 서버.
  • 서버에 root 비밀번호가 설정되어 있습니다.

1. 시스템 업데이트

시스템을 최신 안정 버전으로 업데이트하는 것으로 시작하겠습니다. 다음 명령어로 업데이트할 수 있습니다:

apt-get update -y  
apt-get upgrade -y

시스템이 업데이트되면 다음 명령어로 이러한 변경 사항을 적용하기 위해 시스템을 재부팅합니다:

reboot

재부팅 후 root 사용자로 로그인하고 다음 단계로 진행합니다.

2. Monit 설치

기본적으로 Monit은 Ubuntu 저장소에서 사용할 수 있습니다. 다음 명령어를 실행하여 쉽게 설치할 수 있습니다:

apt-get install monit -y

Monit이 설치되면 Monit 서비스를 시작하고 부팅 시 시작되도록 활성화하려면 다음 명령어를 실행합니다:

systemctl start monit  
systemctl enable monit

다음 명령어를 실행하여 언제든지 Monit 서비스의 상태를 확인할 수 있습니다:

systemctl status monit

3. Monit 구성

Monit의 기본 구성 파일인 monitrc는 /etc/monit/ 디렉터리에 위치하며, 다른 프로세스 및 서버 특정 구성 파일은 /etc/monit/conf-available/ 디렉터리에 위치합니다. Monit은 내장된 웹 인터페이스를 제공하지만 기본적으로 비활성화되어 있습니다. 다음과 같이 /etc/monit/monitrc 파일을 편집하여 활성화할 수 있습니다:

nano /etc/monit/monitrc

다음 줄을 변경합니다:

# set httpd port 2812 and
# use address localhost # only accept connection from localhost
# allow localhost # allow localhost to connect to the server and
# allow admin:monit # require user 'admin' with password 'monit'

다음으로 변경합니다:

set httpd port 2812 and
allow admin:monit # require user 'admin' with password 'monit'

작업이 완료되면 파일을 저장하고 닫은 다음 다음 명령어로 Monit 서비스를 재시작하여 이러한 변경 사항을 적용합니다:

systemctl restart monit

다음 명령어로 Monit 서비스 상태를 확인할 수 있습니다:

netstat -ant | grep :2812

다음과 같은 출력을 볼 수 있어야 합니다:

tcp 0 0 0.0.0.0:2812 0.0.0.0:* LISTEN 1615/monit
tcp6 0 0 :::2812 :::* LISTEN 1615/monit

4. Monit 웹 인터페이스 접근

URL http://192.168.0.227:2812를 사용하여 Monit 웹 인터페이스에 접근할 수 있으며, 사용자 이름 admin과 비밀번호 monit를 입력합니다. 다음과 같은 Monit 대시보드를 볼 수 있어야 합니다:

다음 명령어로 Minit의 상태를 확인할 수 있습니다:

monit status

다음과 같은 출력을 볼 수 있어야 합니다:

System 'localhost'
  status                            Running
  monitoring status                 Monitored
  load average                      [0.68] [0.78] [0.45]
  cpu                               0.0%us 0.0%sy 0.0%wa
  memory usage                      294.1 MB [14.7%]
  swap usage                        0 B [0.0%]
  data collected                    Mon, 07 Aug 2017 20:12:36

작업이 완료되면 다음 단계로 진행할 수 있습니다.

5. 모니터링 서비스 추가

Monit 웹 인터페이스가 구성되면 모니터링할 서비스를 추가해야 합니다.

여기에서는 Apache, Proftpd 및 Rsyslog와 같은 서비스를 모니터링하는 예를 제공합니다.

Apache 서비스에 대한 Monit 구성

기본적으로 Monit은 일부 프로세스 및 서비스에 대한 미리 정의된 템플릿을 제공합니다. 이러한 템플릿은 /etc/monit/conf-available/ 디렉터리에서 찾을 수 있습니다. Apache에 대한 기본 템플릿이 Monit에 제공되므로 이를 활성화하기만 하면 됩니다. 다음 명령어를 실행하여 활성화할 수 있습니다:

ln -s /etc/monit/conf-available/apache2 /etc/monit/conf-enabled/

다음으로, 다음 명령어로 Monit 서비스를 재시작하여 이러한 변경 사항을 적용합니다:

systemctl restart monit

Rsyslog 서비스에 대한 Monit 구성

먼저, 다음 명령어로 Rsyslog 템플릿을 활성화합니다:

ln -s /etc/monit/conf-available/rsyslog /etc/monit/conf-enabled/

다음으로, 다음 명령어로 Monit 서비스를 재시작하여 이러한 변경 사항을 적용합니다:

systemctl restart monit

Proftpd 서비스에 대한 Monit 구성

Proftpd에 대한 템플릿은 Monit에 제공되지 않습니다. 따라서 Proftpd에 대한 구성 파일을 생성해야 합니다. 다음과 같이 /etc/monit/conf-available/ 디렉터리에 proftpd 파일을 생성하여 수행할 수 있습니다:

nano /etc/monit/conf-available/proftpd

다음 줄을 추가합니다:

check process proftpd with pidfile /var/run/proftpd.pid
   start program = "/etc/init.d/proftpd start"
   stop  program = "/etc/init.d/proftpd stop"
if failed port 21 protocol ftp then restart

작업이 완료되면 파일을 저장하고 닫은 다음, 다음 명령어로 구성 파일을 활성화합니다:

ln -s /etc/monit/conf-available/proftpd /etc/monit/conf-enabled

다음으로, 다음 명령어로 구문 오류가 있는지 구성 파일을 확인합니다:

monit -t

마지막으로, 다음 명령어로 Monit 서비스를 재시작하여 이러한 변경 사항을 적용합니다:

systemctl restart monit

필요한 모든 서비스를 구성한 후, 웹 인터페이스에 접근하여 모든 서비스를 모니터링할 수 있습니다:

다음으로, Apache 서비스를 클릭하여 Apache에 대한 자세한 정보를 확인합니다:

6. 명령줄을 통한 Monit 모니터링

명령줄에서 Monit을 모니터링할 수도 있습니다. 다음 명령어를 실행하여 Monit의 간단한 요약을 볼 수 있습니다:

monit summary

다음과 같은 출력을 볼 수 있어야 합니다:

The Monit daemon 5.16 uptime: 0m 

Process 'rsyslogd'                  Initializing - start pending
File 'rsyslogd_bin'                 Accessible
File 'rsyslogd_rc'                  Accessible
File 'rsyslog_file'                 Does not exist
Process 'proftpd'                   Running
Process 'apache'                    Execution failed
File 'apache_bin'                   Accessible
File 'apache_rc'                    Accessible
System 'localhost'                  Running

다음 명령어로 모든 서비스의 상태를 볼 수 있습니다:

monit status

다음과 같은 출력을 볼 수 있어야 합니다:

The Monit daemon 5.16 uptime: 0m 

Process 'rsyslogd'
  status                            Initializing - start pending
  monitoring status                 Initializing
  data collected                    Mon, 07 Aug 2017 20:41:18

File 'rsyslogd_bin'
  status                            Accessible
  monitoring status                 Monitored
  permission                        755
  uid                               0
  gid                               0
  size                              585.3 kB
  timestamp                         Tue, 25 Oct 2016 11:38:40
  checksum                          d71f3d1c58df065e3aac1e2c566a6436 (MD5)
  data collected                    Mon, 07 Aug 2017 20:41:18

File 'rsyslogd_rc'
  status                            Accessible
  monitoring status                 Monitored
  permission                        755
  uid                               0
  gid                               0
  size                              2.7 kB
  timestamp                         Tue, 25 Oct 2016 11:48:29
  checksum                          a1ef1bb01ba370040d705c92fc09e92e (MD5)
  data collected                    Mon, 07 Aug 2017 20:41:18

File 'rsyslog_file'
  status                            Does not exist
  monitoring status                 Monitored
  data collected                    Mon, 07 Aug 2017 20:41:18

Process 'proftpd'
  status                            Running
  monitoring status                 Monitored
  pid                               4915
  parent pid                        1
  uid                               0
  effective uid                     119
  gid                               65534
  uptime                            3m 
  threads                           1
  children                          0
  memory                            3.6 MB
  memory total                      3.6 MB
  memory percent                    0.2%
  memory percent total              0.2%
  cpu percent                       0.0%
  cpu percent total                 0.0%
  port response time                10.737 ms to [localhost]:21 type TCP/IP protocol FTP
  data collected                    Mon, 07 Aug 2017 20:41:18

Process 'apache'
  status                            Execution failed
  monitoring status                 Monitored
  data collected                    Mon, 07 Aug 2017 20:41:48

File 'apache_bin'
  status                            Accessible
  monitoring status                 Monitored
  permission                        755
  uid                               0
  gid                               0
  size                              647.0 kB
  timestamp                         Sat, 29 Jul 2017 22:19:09
  checksum                          ef2a678bdcd791948ceabc3013d9a2c0 (MD5)
  data collected                    Mon, 07 Aug 2017 20:41:18

File 'apache_rc'
  status                            Accessible
  monitoring status                 Monitored
  permission                        755
  uid                               0
  gid                               0
  size                              7.9 kB
  timestamp                         Mon, 07 Aug 2017 20:40:33
  checksum                          744ef9ca584493299c353e2251cbf993 (MD5)
  data collected                    Mon, 07 Aug 2017 20:41:18

System 'localhost'
  status                            Running
  monitoring status                 Monitored
  load average                      [0.96] [0.60] [0.46]
  cpu                               0.0%us 0.0%sy 0.0%wa
  memory usage                      266.4 MB [13.3%]
  swap usage                        2.1 MB [0.4%]
  data collected                    Mon, 07 Aug 2017 20:41:18

Proftpd 서비스에 대한 자세한 정보를 보려면 다음 명령어를 실행합니다:

monit status proftpd

다음과 같은 출력을 볼 수 있어야 합니다:

The Monit daemon 5.16 uptime: 2m 

Process 'proftpd'
  status                            Running
  monitoring status                 Monitored
  pid                               4915
  parent pid                        1
  uid                               0
  effective uid                     119
  gid                               65534
  uptime                            6m 
  threads                           1
  children                          0
  memory                            3.6 MB
  memory total                      3.6 MB
  memory percent                    0.2%
  memory percent total              0.2%
  cpu percent                       0.0%
  cpu percent total                 0.0%
  port response time                7.945 ms to [localhost]:21 type TCP/IP protocol FTP
  data collected                    Mon, 07 Aug 2017 20:43:49

축하합니다! Debian 9 서버에 Monit을 성공적으로 설치하고 구성했습니다.

Share: X/Twitter LinkedIn

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

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