在本教程中,我们将向你展示如何在CentOS 7上的CentOS Webpanel(CWP7)安装Monit监控。
Monit监控是什么?
Monit监控是一个免费的开源软件,它是一个非常有用的Linux监控程序。
为何安装Monit监控?
你可以使用Monit监控来减少停机时间,对电商网站的SEO和网络营销是有辅助效果的。
因为当任何服务关闭时,Monit都会检查它并自动启动服务。
例如:如果你的Apache或Nginx服务无故宕机关闭了,那么monit会检查,如果发现它关闭了,那么monit会自动启动相关服务。
一件有趣的事是monit运行它自己的httpd服务。
如果你的apache服务已关闭,monit将使用其自己的服务运行。
CWP 7如何安装安装Monit监控软件?
要完成本教程,你将需要准备以下先决条件:
- CentOS Linux版本7(核心)
- CWP7
- CSF防火墙
第 1 步:SSH更新你的YUM存储库,然后安装Monit监控 ▼
yum update -y
yum install monit
第 2 步:在CSF防火墙上打开2812端口 ▼
vi /etc/csf/csf.conf # Allow incoming TCP ports TCP_IN = "20,21,22,2812,25,53,80,110,143,443,465,587,993,995,2030,2031,2082,2083,2086,2087,2095,2096"
第 3 步:重新启动CSF防火墙 ▼
csf -r
第 4 步:用SFTP软件进入Linux服务器后,编辑Monit配置文件/etc/monitrc
▼
set daemon 30 # check services at 30 seconds intervals
set log syslog
set pidfile /var/run/monit.pid
set idfile /var/.monit.id
set statefile /var/.monit.state
include /etc/monit.d/*
set mailserver localhost port 25
set eventqueue
basedir /var/monit # set the base directory where events will be stored
slots 100 # optionally limit the queue size
set alert [email protected] #receive all alerts
set alert [email protected] not on { instance, action }
set httpd port 2812 and use address 0.0.0.0
allow 0.0.0.0/0.0.0.0
allow admin:monit # require user 'admin' with password 'monit'
第 5 步:检查Monit语法是否有错误 ▼
# monit -t Control file syntax OK
如果缺少,请创建以下文件:
# touch /var/run/monit.pid # touch /var/log/moinit.log
如果有安装Redis,可能需要手动配置Redis的pid文件位置地址 ▼
Redis找不到pid?Redis启动后如何配置pid文件位置地址
Redis启动找不到pid文件位置?Redis的pid文件在哪里?Linux怎么查看Redis进程pid文件位置地址?Linux 查找redis进程命令 ▼ps -ef | grep redis返回显示以下查询结果 ▼redis 28221……
Monit添加监控服务
现在,我们将监控一些服务,例如amavisd,clamd,crond,php-fpm和cwpsrv。打开monit配置文件/etc/monitrc
,并在行尾添加以下代码:
Monitor CWP.amavisd
# vi /etc/monitrc check process amavisd with pidfile /var/run/amavisd/amavisd.pid start program "/usr/bin/systemctl start amavisd.service" stop program "/usr/bin/systemctl stop amavisd.service" if failed unixsocket /var/run/amavisd/amavisd.sock then restart if cpu > 70% for 4 cycles then alert if cpu > 90% for 8 cycles then restart if 4 restarts within 8 cycles then timeout
监控CWP.clamd
# vi /etc/monitrc check process clamd with pidfile /var/run/clamd.amavisd/clamd.pid start program "/usr/bin/systemctl start clamd.service" stop program "/usr/bin/systemctl stop clamd.service" if failed unixsocket /var/run/clamd.amavisd/clamd.sock then restart if cpu > 70% for 4 cycles then alert if cpu > 90% for 8 cycles then restart if 4 restarts within 8 cycles then timeout
监视CWP.crond
# vi /etc/monitrc check process crond with pidfile /var/run/crond.pid start program = "/usr/bin/systemctl start crond.service" stop program = "/usr/bin/systemctl stop crond.service"
监控CWP.cwp-phpfpm
# vi /etc/monitrc check process cwp-phpfpm matching "cwp-phpfpm" start program "/usr/bin/systemctl start cwp-phpfpm.service" stop program "/usr/bin/systemctl stop cwp-phpfpm.service" if failed unixsocket /usr/local/cwp/php71/var/sockets/cwpsrv.sock then restart if failed unixsocket /usr/local/cwp/php71/var/sockets/cwpsvc.sock then restart if failed unixsocket /usr/local/cwp/php71/var/sockets/login.sock then restart if cpu > 70% for 4 cycles then alert if cpu > 90% for 8 cycles then restart if 4 restarts within 8 cycles then timeout
监控cwp.cwpsrv
# vi /etc/monitrc check process cwpsrv with pidfile /usr/local/cwpsrv/var/run/nginx.pid start program "/usr/bin/systemctl start cwpsrv.service" stop program "/usr/bin/systemctl stop cwpsrv.service" if 4 restarts within 8 cycles then timeout
配置完成后,monit应该重新加载并重新读取配置文件,并且Web界面将可用:
monit reload
查询MySQL数据库进程pidfile文件的方法,请查看下方教程 ▼
MySQL数据库进程pidfile文件在哪里?查询MySQL pidfile命令
由于Linux系统的MySQL进程会出现宕机的情况,但是安装配置MONIT监控程序,需要调用MySQL系统进程的pidfile文件,却不知道在哪里找到这个pidfile文件,更不知道如何找到这个MySQL的pidfile文件……
Monit监控服务的另一种方式(推荐)
1)下载Monit监控服务文件▼
点此进入 下载Monit监控服务文件 免费下载页面
2)解压后上传到/etc/monit.d/目录。
创建所需的配置文件后,测试是否语法错误 ▼
monit -t
若出现以下提示 ▼
monit -t
/etc/monit.d/cwp.mariadbd:1: Service name conflict, mysql already defined '"/usr/sbin/mariadbd"'
如果没有错误,启用并重新启动monit服务 ▼
systemctl enable monit systemctl restart monit
开机启动 Monit 服务 ▼
systemctl enable monit.service
现在检查监控日志 ▼
tail -f /var/log/monit.log
Monit监控基本命令
使用以下命令启动monit ▼
monit
检查Monit状态 ▼
monit status
重新加载它,让更改生效 ▼
monit reload
开始运行所有受Monit监控的程序 ▼
monit start all
重新启动所有Monit监空服务 ▼
monit restart all
启动、停止和重新启动特定服务,可以用monit start name
这样的命令 ▼
monit start httpd
monit stop sshd
monit restart nginx
Monit监控摘要 ▼
monit summary
现在,使用你先前设置的Monit用户名和密码,登录到monit服务器。
登录URL:http://SERVER_FQDN:2812
Monit命令(CentOS 7专用)
查看 Monit 启动状态 ▼
systemctl status monit.service
启动 Monit 服务 ▼
systemctl start monit.service
关闭 Monit 服务 ▼
systemctl stop monit.service
重新启动 Monit 服务 ▼
systemctl restart monit
开机启动 Monit 服务 ▼
systemctl enable monit.service
开机关闭 Monit 服务 ▼
systemctl disable monit.service
Monit注意事项
Monit监视着进程服务,这意味着Monit所监视的服务不能使用一般的方法来停止,因为一停止,Monit又会将其启动。
要停止Monit所监视的服务,应该使用类似monit stop name
这样的命令,例如要停止 nginx ▼
monit stop nginx
若要停止全部Monit所监视的服务,输入以下命令▼
monit stop all
卸载Monit监控程序 ▼
yum remove monit