RabbitMQ监控(一):使用AMQP模拟检测来确认RabbitMQ是否运行

#RabbitMQ 监控(一)

  本RabbitMQ监控博文内容均来自于《RabbitMQ实战高效部署分布式消息队列》一书。书籍上的代码是使用Python实现的,我用Java尝试了一下,该系列代码都在我的github上。

  监控RabbitMQ并不只是确保端口5672是开启的并能接收TCP连接而已,对于这样复杂的系统,需要能够模拟AMQP客户端来确保连接之后获取信道、使用REST API来找出所有构成Rabbit的Erlang部件都正常运行,并且它们之间能正确通信的话才能算是一个完整的健康检测程序。   

##1.为Nagios编写健康检测   我对监控框架不是很了解,只知道我司使用的是Zabbix,Zabbix也支持多语言、自定义监控脚本等。Nagios健康检测是一个独立的程序,它在运行时监控服务并在程序终止运行时退出代码来指示服务的健康状况。Nagios健康检测可以用任何语言编写,检测程序需要将可读状态打印到STDOUT上,并且返回下列四种整形退出代码之一:
  
  * 0——OK——接收检测的服务工作正常,并且各项指标都处于通过命令行参数设定的阀值之内。

  * 1——WARNING——服务运行处于退化状态(或者说是遇到了问题),但是这个问题并不紧急。

  * 2——CRITICAL——服务关闭了,无响应,并且/或者超过了受监控的临界度量阀值。

  * 3——UNKNOWN——从技术上来讲,这意味着服务的状态或者监控的度量值无法确定。

  在理解Nagios期望从健康检测程序中获得的值之后,首先需要编写一个返回Nagios状态代码的健康检测程序。 ###清单1.1 返回Nagios状态代码的健康检测程序

1.状态码枚举 ExitType.java

/**
 * 健康检测程序的几种状态
 */
public enum ExitType {

    WARN("warning"),

    CRITICAL("critical"),

    UNKNOWN("unknown"),

    OK("ok");

    private String value;

    ExitType(String value) {
        this.value = value;
    }

    public String getValue() {
        retur
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值