资讯专栏INFORMATION COLUMN

用monit监控mongodb和rabbitmq

Baoyuan / 1221人阅读

摘要:什么是是一个跨平台的用来监控系统比如的工具。可以监控服务器进程状态端口状态,状态码服务器资源变化文件系统变动等等,根据这些变化,可以设定邮件报警重启进程或服务。易于安装轻量级的实现以及强大的功能,让成为一个理想的后备监控工具。

什么是monit

Monit是一个跨平台的用来监控Unix/linux系统(比如Linux、BSD、OSX、Solaris)的工具。Monit特别易于安装,而且非常轻量级(只有500KB大小),并且不依赖任何第三方程序、插件或者库。

Monit可以监控服务器进程状态、端口状态,HTTP/TCP状态码、服务器资源变化、文件系统变动等等,根据这些变化,可以设定邮件报警、重启进程或服务。易于安装、轻量级的实现以及强大的功能,让Monit成为一个理想的后备监控工具。

monit不像zabbix功能那么强大,但是胜在轻量级,且具备基本所有的监控需求,比较适合中小型创业公司的使用。

官网:https://mmonit.com/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
下面列举两种最常见的服务监控方式,端口监控和进程号变更监控 监控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
监控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
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天

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67928.html

相关文章

  • spring boot - 收藏集 - 掘金

    摘要:引入了新的环境和概要信息,是一种更揭秘与实战六消息队列篇掘金本文,讲解如何集成,实现消息队列。博客地址揭秘与实战二数据缓存篇掘金本文,讲解如何集成,实现缓存。 Spring Boot 揭秘与实战(九) 应用监控篇 - HTTP 健康监控 - 掘金Health 信息是从 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring...

    rollback 评论0 收藏0
  • 分布式任务框架之celery

    摘要:架构消息代理,作为临时储存任务的中间媒介,为提供了队列服务。生产者将任务发送到,消费者再从获取任务。如果使用,则有可能发生突然断电之类的问题造成突然终止后的数据丢失等后果。任务调度器,负责调度并触发定时周期任务。 架构 showImg(https://segmentfault.com/img/bVbmDXa?w=831&h=413); Broker 消息代理,作为临时储存任务的中间媒...

    fredshare 评论0 收藏0

发表评论

0条评论

Baoyuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<