Monit是一个跨平台的用来监控Unix/linux系统(好比Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,并且很是轻量级(只有500KB大小),而且不依赖任何第三方程序、插件或者库。linux
yum install monitnginx
使用yum安装默认配置文件在:
/etc/monitrc # 全局参数配置文件
/etc/monit.d/ # 在这个目录下新增每一个待监控服务的配置web
#设置周期,每60秒自动检测一次 set daemon 60 #设置报警邮件发送格式 set mailserver smtp.exmail.qq.com port 25 USERNAME "test@outlook.com" PASSWORD "test" set mail-format { from: test@outlook.com subject: monit alert -- $EVENT $SERVICE message: $EVENT Service $SERVICE Date: $DATE Action: $ACTION Host: $HOST Description: $DESCRIPTION } #设置报警邮件发给谁,默认只会发送一次报警。 #with reminder on 3 cycles表示若是服务一直处于失败,则基于周期最多发送3次报警 set alert dev@outlook.com with reminder on 3 cycles #Monit Web界面相关的访问配置,如不使用则不须要配置(web管理界面须要额外的M/Monit项目) set httpd port 2812 allow app:app set eventqueue basedir /var/monit slots 1000 #包含全部须要监控服务的子配置项,这里使用了文件名通配符 include /etc/monit.d/*.monitrc.conf
在/etc/monit.d/下新增配置文件mongo.monitrc.conf,内容以下:mongodb
#匹配进程名 CHECK PROCESS mongo MATCHING mongo #配置服务启动和重启命令 start program = "/usr/bin/sudo service mongod start" restart program = "/usr/bin/sudo service mongod restart" #若是端口27017没法访问则认为服务失败,发报警邮件并重启服务 if failed port 27017 type tcp then alert if failed port 27017 type tcp then restart #若是在三个周期内重启了3次,则再也不监控 if 3 restarts within 3 cycles then unmonitor
在/etc/monit.d/下新增配置文件rabbitmq.monitrc.conf,内容以下:shell
#匹配进程名 check PROCESS rabbitmq with MATCHING rabbitmq #配置服务启动和重启命令 start program = "/etc/init.d/rabbitmq-server start" restart program = "/etc/init.d/rabbitmq-server restart" #若是进程号发生变化则认为服务失败,发报警邮件并重启服务 if changed pid then alert if changed pid then restart #若是在三个周期内重启了3次,则再也不监控 if 3 restarts within 3 cycles then unmonitor
monit # 启动monit daemon
monit reload # 当更新了配置文件须要重载
monit status # 查看全部服务状态
monit status nginx # 查看nginx服务状态
monit stop all # 中止全部服务
monit stop mongo # 中止mongo服务
monit start all # 启动全部服务
monit start mongo # 启动mongo服务服务器
能够基于图形化界面管理多个monit host,可是这个是要收费的,能够免费试用30天app