· Monit 简介
Monit是一个轻量级(500KB)跨平台的用来监控Unix/linux系统的开源工具。部署简单,并且不依赖任何第三方程序、插件或者库。
Monit可以监控服务器进程、文件、文件系统、网络状态(HTTP/SMTP等协议)、远程主机、服务器资源变化等等。 并且可以设定资源变化后需要做的动作,比如服务失败后自动重启,邮件告警等等。
Monit内置了WEB UI,可以一目了然地了解监控项的情况。Monit是监控本机服务的工具,M/Monit是其配套产品用以对Monit统一管理,但是M/Monit并不是开源的,需要购买。
本文我们介绍在CentOS7上部署Monit用来监控进程状态,并实现服务失败后自动重启以及邮件告警通知的功能。监控其他资源的方法在默认配置文件中都有举例这里不一一介绍。
Monit官网:https://mmonit.com/monit
Monit手册:Monit Manual
· Monit 安装
# yum -y install epel-release
# yum install -y monit
·Monit 常用命令
monit -t # 配置文件检测
monit # 启动monit daemon
monit -c /etc/monitrc # 启动monit daemon时指定配置文件
monit reload # 重新加载配置文件
monit status # 查看所有监控项务状态
monit status nginx # 查看nginx服务状态
monit stop all # 停止所有服务,这里需要注意的是,如果开启了自动重启功能,停止某个被监控的服务必须用monit stop xxx,若用系统命令停止服务,Monit会自动再把服务起来。
monit stop nginx # 停止nginx服务
monit start all # 启动所有服务
monit start nginx # 启动nginx服务
monit -V # 查看版本
主配置文件: /etc/monitrc
修改开放端口和地址:
配置邮箱告警和格式:如果开启了授权码password填入的就是授权码而非用户密码!
按照实际情况进行配置。
后在配置目录包含的子配置目录中添加一个监控配置:用于监控nginx
[root@test monit.d]# vim /etc/monit.d/nginx
check process nginx with pidfile /run/nginx.pid
start program = "/usr/bin/systemctl start nginx"
stop program = "/usr/bin/systemctl stop nginx"
填写完成后重新加载配置。
[root@test monit.d]# monit reload
Reinitializing monit daemon
访问该服务器的IP:2812端口:nginx进程已在其中。将nginx进程于系统命令关闭后会monit会重新启动该进程。并且发送告警到填写的邮件中。