用monit监控mongodb和rabbitmq
2017年10月31日 20:37:16 jackjoe-ly 阅读数:539
什么是monit
安装
yum install monit
如何配置
使用yum安装默认配置文件在:
/etc/monitrc # 全局参数配置文件
/etc/monit.d/ # 在这个目录下新增每个待监控服务的配置
先说说全局参数配置文件/etc/monitrc,我的配置如下:
#设置周期,每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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
下面列举两种最常见的服务监控方式,端口监控和进程号变更监控
监控mongodb配置示例(利用端口监控)
在/etc/monit.d/下新增配置文件mongo.monitrc.conf,内容如下:
#匹配进程名
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
监控rabbitmq配置示例(利用进程ID变更监控)
在/etc/monit.d/下新增配置文件rabbitmq.monitrc.conf,内容如下:
#匹配进程名
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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
monit相关命令
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服务
图形化管理界面M/Monit
可以基于图形化界面管理多个monit host,但是这个是要收费的,可以免费试用30天