如何在CentOS Webpanel(CWP7)安装Monit监控软件?

在本教程中,我们将向你展示如何在CentOS 7上的CentOS Webpanel(CWP7)安装Monit监控

Monit监控是什么?

Monit监控是一个免费的开源软件,它是一个非常有用的Linux监控程序。

  • 它可以自动监视和管理UNIX / Linux中的服务器进程、文件、目录、校验和权限,文件系统和服务。
  • 例如:Apache、Nginx、MySQL、FTP、SSH、Postfix等 ……
  • 基于系统的系统管理,为系统管理员提供了出色的监控功能。

为何安装Monit监控?

你可以使用Monit监控来减少停机时间,对电商网站的SEO网络营销是有辅助效果的。

因为当任何服务关闭时,Monit都会检查它并自动启动服务。

例如:如果你的Apache或Nginx服务无故宕机关闭了,那么monit会检查,如果发现它关闭了,那么monit会自动启动相关服务。

一件有趣的事是monit运行它自己的httpd服务。

如果你的apache服务已关闭,monit将使用其自己的服务运行。

CWP 7如何安装安装Monit监控软件?

要完成本教程,你将需要准备以下先决条件:

  1.  CentOS Linux版本7(核心)
  2.  CWP7
  3.  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 admin@xxxxx #receive all alerts
set alert admin@xxxxx 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文件位置地址 ▼

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文件的方法,请查看下方教程 ▼

Monit监控服务的另一种方式(推荐)

1)下载Monit监控服务文件▼

  • 在下载页面,点击普通下载里的“立即下载”按钮,即可免费下载Monit监控服务文件。
  • (访问密码: 5588)

2)解压后上传到/etc/monit.d/目录。

  • 假如在Monit配置文件 /etc/monitrc 内已有同样配置的监控服务,需Monit配置文件 /etc/monitrc 删除掉,否则会出错。

创建所需的配置文件后,测试是否语法错误 ▼

monit -t

若出现以下提示 ▼

monit -t
/etc/monit.d/cwp.mariadbd:1: Service name conflict, mysql already defined '"/usr/sbin/mariadbd"'
  • 意思是说 /etc/monit.d/cwp.mariadbd:1: 服务名称冲突;mysql 已经定义 '"/usr/sbin/mariadbd"'
  • 这是说明cwp.mariadbd文件已存在,只需删除掉cwp.mysqld文件即可。

如果没有错误,启用并重新启动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

如何在CentOS Webpanel(CWP7)安装Monit监控程序?

现在,使用你先前设置的Monit用户名和密码,登录到monit服务器。

登录URL:http://SERVER_FQDN:2812

解决Monit服务总是不受监控

Monit包括用于启用和禁用对所有或特定服务的监视的命令。

如果Monit服务总是不受监控,你可以使用以下命令 ▼

monit monitor mysql

或重新启用所有监控 ▼

monit monitor all
  • 请注意,你必须启用 Monit HTTP 接口才能使这些命令发挥作用。

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

希望陈沩亮博客( https://www.chenweiliang.com/ ) 分享的《如何在CentOS Webpanel(CWP7)安装Monit监控软件?》,对您有帮助。

欢迎分享本文链接:https://www.chenweiliang.com/cwl-1443.html

解锁 AI 助力,告别低效工作!🔓💼

🌟 立刻在频道置顶目录中,抢先体验这些神奇的AI神兵利器!🌟

喜欢就分享和按赞!您的分享和按赞,是我们持续的动力!

 

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动到顶部