기사 디렉토리
이전에 Chen Weiliang의 블로그에서는 CentOS 6에 Monit을 설치하고 구성하는 방법에 대한 튜토리얼을 공유했습니다. ▼
하지만 CentOS 7에서 Monit 모니터링 프로그램을 구성하는 방법은 CentOS 6과 다소 다르며, 완전히 동일하지는 않습니다.
Linux 호스트 에서 CentOS 7을 실행 중이고 Vesta CP 패널에 Monit을 설치했다면 이 튜토리얼을 따라 Monit 모니터링 프로그램을 구성할 수 있습니다.
모니터링 프로세스 서비스
다음은 모니터링 모니터링 프로세스의 서비스 구성 내용입니다(사용 빈도가 낮은 모니터링 서비스 일부 삭제).
모니터링 구성 모니터링
CentOS 6 및 7에서는 Monit 구성 파일 이름이 다릅니다.
- CentOS 6용 Monit 구성 파일의 이름은 "monit.conf"입니다.
- CentOS 7의 Monit 구성 파일 이름은 "monitrc"입니다.
SFTP 소프트웨어를 사용하여 Linux 서버에 접속한 후 Monit 설정 파일을 편집하십시오. ▼
/etc/monitrc
이 "monitrc" 파일에 다음 구성 내용을 추가합니다 ▼
##
## 陈沩亮博客示例monit配置文件说明:
## 1. 域名以 www.etufo.org 为例。
## 2. 后面带xxx的均是举例用的名字,需要根据自己的需要修改。
##
################################################## #############################
## Monit control file
################################################## #############################
#
# 检查周期,默认为2分钟,对于网站来说有点长,可以根据需要自行调节,这改成30秒。
set daemon 30
include /etc/monit.d/*
# 日志文件
set logfile /var/log/monit.log
#
# 邮件通知服务器
#
#set mailserver mail.example.com
set mailserver localhost with timeout 30 seconds
#
# 通知邮件的格式设置,下面是默认格式供参考
#
## Monit by default uses the following alert mail format:
##
## --8<--
## From: monit@$HOST # sender
## Subject: monit alert -- $EVENT $SERVICE # subject
##
## $EVENT Service $SERVICE #
## #
## Date: $DATE #
## Action: $ACTION #
## Host: $HOST # body
## Description: $DESCRIPTION #
## #
## Your faithful employee, #
## monit #
## --8<--
##
## You can override the alert message format or its parts such as subject
## or sender using the MAIL-FORMAT statement. Macros such as $DATE, etc.
## are expanded on runtime. For example to override the sender:
#
# 简单的,这只改了一下发送人,有需要可以自己修改其它内容。
set mail-format { from: admin@xxxx }
# 设置邮件通知接收者。建议发到gmail,方便邮件过滤。
set alert xxx@xxxx
set httpd port 2812 and #设置http监控页面的端口
use address www.etufo.org # http监控页面的IP或域名
##allow localhost # 允许本地访问
##allow 203.82.90.239 # 允许指定IP访问
allow user:password # 访问用户名密码
################################################## #############################
## Services
################################################## #############################
#
# 系统整体运行状况监控,默认的就可以,可以自己去微调
#
# 系统名称,可以是IP或域名
#check system www.etufo.org
# if loadavg (1min) > 4 then alert
# if loadavg (5min) > 2 then alert
# if memory usage > 75% then alert
# if cpu usage (user) > 70% then alert
# if cpu usage (system) > 30% then alert
# if cpu usage (wait) > 20% then alert
# 可选的ssl端口的监控,如果有的话
# if failed port 443 type tcpssl protocol http
# with timeout 15 seconds
# then restart
# 监控mariadb
check process mysql with pidfile /var/run/mariadb/mariadb.pid
start program = "/usr/bin/systemctl start mariadb"
stop program = "/usr/bin/systemctl stop mariadb"
if failed host 127.0.0.1 port 3306 for 2 cycles then restart
if 2 restarts within 4 cycles then timeout
# 监控httpd
check process httpd with pidfile /var/run/httpd/httpd.pid
start program = "/usr/bin/systemctl start httpd"
stop program = "/usr/bin/systemctl stop httpd"
# if children > 120 for 2 cycles then restart
# if failed host localhost port 8080 protocol http for 2 cycles then restart
# if 4 restarts within 10 cycles then timeout
# 监控nginx
check process nginx with pidfile /var/run/nginx.pid
start program = "/usr/bin/systemctl start nginx"
stop program = "/usr/bin/systemctl stop nginx"
# if failed host localhost port 443 protocol http for 2 cycles then restart
# if 4 restarts within 10 cycles then timeout
# 监控sshd
check process sshd with pidfile /var/run/sshd.pid
start program = "/usr/bin/systemctl start sshd"
stop program = "/usr/bin/systemctl stop sshd"
if failed host localhost port 22 protocol ssh for 2 cycles then restart
if 4 restarts within 10 cycles then timeout
# 监控vesta-nginx
check process vesta-nginx with pidfile /var/run/vesta-nginx.pid
start program = "/usr/bin/systemctl start vesta"
stop program = "/usr/bin/systemctl stop vesta"
if failed host localhost port 8083 protocol https for 2 cycles then restart
if 4 restarts within 10 cycles then timeout
# 监控vesta-php
check process vesta-php with pidfile /var/run/vesta-php.pid
start program = "/usr/bin/systemctl start vesta"
stop program = "/usr/bin/systemctl stop vesta"
if failed host localhost port 8083 protocol https for 2 cycles then restart
if 4 restarts within 10 cycles then timeout
# 监控vsftpd
check process vsftpd with match vsftpd
start program = "/usr/bin/systemctl start vsftpd"
stop program = "/usr/bin/systemctl stop vsftpd"
if failed host localhost port 21 protocol ftp for 2 cycles then restart
if 4 restarts within 10 cycles then timeout
#监控crond
check process crond with pidfile /var/run/crond.pid
start program = "/usr/bin/systemctl start crond"
stop program = "/usr/bin/systemctl stop crond"
if 5 restarts within 5 cycles then timeout
#监控dovecot
check process dovecot with pidfile /var/run/dovecot/master.pid
start program = "/usr/bin/systemctl start dovecot"
stop program = "/usr/bin/systemctl stop dovecot"
if failed host localhost port 143 protocol imap for 2 cycles then restart
if 4 restarts within 10 cycles then timeout
#监控exim
check process exim with pidfile /var/run/exim.pid
start program "/usr/bin/systemctl start exim"
stop program "/usr/bin/systemctl stop exim"
if failed host localhost port 25 protocol smtp for 2 cycles then restart
if 4 restarts within 10 cycles then timeoutMONIT 구성 내용을 수정한 경우 적용하려면 Monit 서비스를 다시 시작해야 합니다▼
systemctl restart monit
2018년 5월 26일 업데이트:
- 위의 구성 내용을 사용하는 것을 권장합니다 ▲
- 다음 SSH 명령은 모니터링 서비스에 대한 파일을 생성하는 데 권장되지 않습니다.
cd /etc/monit.d/
git clone https://github.com/infinitnet/vesta-centos7-monit.git ./ && rm -f README.md
myip=1.2.3.4
sed -i 's/host localhost/host '$myip'/g' /etc/monit.d/*.conf
systemctl restart monit- 공유 IP로 교체1.2.3.4.
오류가 발생할 수 있으므로 git bash 명령을 찾을 수 없습니다 ▼
이 명령을 입력한 후 ▼
sed -i 's/host localhost/host '$myip'/g' /etc/monit.d/*.conf
▼ 다음과 같은 오류 메시지가 나타납니다.
sed: can't read /etc/monit.d/*.conf: No such file or directory
모니터링 로그 보기 오류
SSH 보기 monit.log 로그 파일 명령▼
tailf /var/log/monit.log
- SSH를 통해 monit.log 파일을 보려면 마지막 10줄의 로그만 표시할 수 있습니다.
SFTP 로그인을 권장합니다 /var/log/monit.log 이전 monit.log 로그 파일의 상태를 완전히 보려면
이메일 전송 오류
모니터 메일을 보낼 수 없는 경우 다음과 같은 오류 메시지가 나타납니다 ▼
error : Cannot open a connection to the mailserver localhost:25 -- Operation now in progress error : Mail: Delivery failed -- no mail server is available
이메일 전송 오류 수정
Chen Weiliang은 Gmail SMTP 사용을 권장합니다 ▼
set mailserver smtp.gmail.com port 587 username "[email protected]" password "password" using tlsv1 with timeout 30 seconds
해결 방법은 Monit 구성 파일에서 설정된 메일 서버를 교체하는 것입니다. 자세한 내용은 이 튜토리얼을 확인하세요 ▼
파일 시스템 통계 오류
monit.log 로그 파일에서 다음과 같은 오류가 발견되면 ▼
filesystem statistic error: cannot read /proc/diskstats -- No such file or directory
- Linux는 기본적으로 최소 설치로 설정되어 있기 때문일 수 있습니다. VestaCP패널, 존재하지 않음
/proc/diskstats디스크 상태 모니터링 파일.
파일 시스템 통계 오류 해결
1 단계:SSH 입력 /etc/monit.d 카탈로그 ▼
cd /etc/monit.d
2단계: Monit 모니터링 서비스 파일 "root-space.conf"를 삭제합니다. ▼
rm -rf root-space.conf
3단계: SSH를 통해 Monit 모니터링을 재시작합니다 ▼
systemctl restart monit.service
모니터 명령(CentOS 7 전용)
모니터 시작 상태 보기 ▼
systemctl status monit.service
모니터 서비스 시작 ▼
systemctl start monit.service
모니터 서비스 닫기▼
systemctl stop monit.service
모니터 서비스 다시 시작 ▼
systemctl restart monit
부팅 시 모니터 서비스 시작 ▼
systemctl enable monit.service
모니터 서비스 켜고 끄기 ▼
systemctl disable monit.service
Chen Weiliang님의 블로그( https://www.chenweiliang.com/ ) 에 공유된 "CentOS 7의 Vesta CP 패널에서 Monit 프로세스를 구성하는 방법"이라는 글이 여러분께 도움이 되기를 바랍니다.
이 기사 링크( https://www.chenweiliang.com/cwl-730.html )를 자유롭게 공유해 주세요.

