Apache ActiveMQ是一个基于JMX规范的纯Java消息中间件,它为应用系统提供高效、灵活的消息同步与异步传输处理、存储转发、可靠传输的特性。

消息队列对于应用的健康运行非常重要,作为运维人员,我们需要时刻注意:

消息队列的长度,以便确认是否存在大量堆积消息;

消息生产与消费的速率,以便确认业务的吞吐量与波动趋势;

消息队列本身的运行健康指标,以避免由于消息无法传递大范围的影响应用;

使用优云Monitor,通过简单操作,即可实现ActiveMQ监控。下面,我们演示部署的过程与监控的成果。

部署

Monitor通过Agent,采用web控制台或者JMX的方式进行ActiveMQ监控。

本文以CentOS 7上的ActiveMQ为例。采用web控制台的方式进行监控。

下面,将逐步骤说明配置过程:

步骤一:安装代理

通过优云Monitor的部署指令,即可快速完成代理的部署:

进入 部署 界面

选择对应的操作系统,复制命令,并在目录操作系统上执行即可:

步骤二:配置插件

由于ActiveMQ的监控需要用户名与密码,我们必须修改代理的配置,提供监控连接信息:

#通过ActiveMQ的web控制台获取相关指标cd /etc/monitor-agent/conf.d/

cp activemq_xml.yaml.example activemq_xml.yaml#修改配置连接activemq web consolevi activemq_xml.yaml

文件修改如下:

init_config:

instances:

- url: http://127.0.0.1:8161

# the url will probably be something like http://:8161

username:********

password: *************

步骤三:重启代理,并确认数据采集结果

[root@localhost ~]$ service datamonitor-agent restart

[root@localhost ~]$ service datamonitor-agent info

activemq_xml

------------- instance #0 [OK]- Collected 118 metrics, 0 events & 2 service checks#上述表示已经采集到118个指标,说明采集正确

监控

在部署完成后,我们即可在优云平台上查看ActiveMQ的详细指标,以帮助我们快速、准确定位问题。

操作系统方面指标

Monitor采集代理默认周期采集系统的cpu,内存,磁盘等指标, 用以辅助分析相关应用运行情况

由上述图片可知,该系统已超负荷运行,可能是由于运行了太多的应用程序。

消息队列方面指标

通过Monitor可以清晰观察ActiveMQ队列的消息消费者、生产者等变化信息,以便分析相关服务上线、离线时间

通过观察ActiveMQ队列的入队、出队以及队列未被消费的消息数量,可以分析出相关服务是否正常以及队列消费能力是否存在瓶颈

由上述图片可知,该队列的消费者已全部下线。

消息主题方面指标

通过Monitor可以持续追踪ActiveMQ主题的发布、订阅等信息,以便分析对应服务上线、离线时间

通过观察ActiveMQ主题的入队、出队以及队列未被消费的消息数量,可以分析出相关服务是否正常以及对应服务是否存在瓶颈

上述文章介绍的方式为通过ActiveMQ的web控制台采集相应的指标。当然,我们也能通过JMX的方式监控,以获取更多详细的指标。

用Monitor简单3步监控中间件ActiveMQ的更多相关文章

  1. 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】

    说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...

  2. 简单几步配置gitlab

    简单几步配置gitlab 之前配置gitlab需要很多步骤,要装apache2.ruby.tomcat.mysql等一片东西.有没有更简单的方式呢?现在可以借助bitnami,简化了很多. 可以参考v ...

  3. css3简单几步画一个乾坤图

    原文:[原创]css3简单几步画一个乾坤图 效果如上,鼠标移上去会有动画. 代码如下非常简单: <html> <head> <style> .outer{heigh ...

  4. 【转】简单十步让你全面理解SQL

    简单十步让你全面理解SQL 很多程序员认为SQL是一头难以驯服的野兽.它是为数不多的声明性语言之一,也因为这样,其展示了完全不同于其他的表现形式.命令式语言. 面向对象语言甚至函数式编程语言(虽然有些 ...

  5. 最简单的 RabbitMQ 监控方法 - 每天5分钟玩转 OpenStack(158)

    这是 OpenStack 实施经验分享系列的第 8 篇. 先来看张图:这是 Nova 的架构图,我们可以看到有两个组件处于架构的中心位置:数据库和Queue.数据库保存状态信息,而几乎所有的 nova ...

  6. 大麦盒子(domybox)无法进入系统解决方案!【简单几步】

    大麦无法进入系统解决方案![简单几步]前提准备:电脑一台盒子控制台软件盒子开机并联网并且盒子和电脑处于同一个路由器下的网络! 前提准备:电脑一台盒子控制台软件盒子开机并联网并且盒子和电脑处于同一个路由 ...

  7. 如何将新项目添加到github仓库中?只需简单几步~即可实现

    问题描述:新建了一个项目,如何将其设置为git项目?如何关联到github上的仓库? 只需简单几步,但前提是需要已经安装好了git,并且有github账户 本文使用IntelliJ IDEA 其他编辑 ...

  8. 简单几步实现 IOS UITextField输入长度的控制

    在ios开发过程中,我们有时候需要对UITextField的输入长度进行控制,比如输入手机号码最大长度为11位等,而ios自身又不像android那样可以设置输入框的输入长度,接下来通过简单几步实现这 ...

  9. 简单三步同步你的 VSCode 用户配置

    https://www.cnblogs.com/knight-errant/p/10444777.html 设备重装,换设备,VSCode 又要重新配置了?不不不,简单三步,让你的 VSCode 配置 ...

随机推荐

  1. selenium之 chromedriver与chrome版本映射表(更新至v2.31)

    转自:http://blog.csdn.net/huilan_same/article/details/51896672 chromedriver版本 支持的Chrome版本 v2.31 v58-60 ...

  2. Cesium添加水面

    var viewer = new Cesium.Viewer('cesiumContainer');var waterPrimitive = new Cesium.Primitive({ //show ...

  3. DexArchiveBuilderException

    出现这个问题大概是因为版本资源问题 比如把TextView  改为CompatTextView 解决方法一: 在项目的build.gradle文件中查看自己导入的依赖,看看是否有重复的,如果有的话删除 ...

  4. nginx安装教程

    一.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 二.首先要安装 PCRE ...

  5. AngularJS的初步学习(1)

    AngularJS 是一个Javascript框架.它可通过 <script> 标签添加到 HTML 页面.AngularJS 通过 指令 扩展了 HTML,且通过 表达式绑定数据到 HT ...

  6. java上传并压缩图片(等比例压缩或者原尺寸压缩)

    本文转载自http://www.voidcn.com/article/p-npjxrbxr-kd.html 先看效果: 原图:1.33M 处理后:27.4kb 关键代码; package codeGe ...

  7. php文件的处理和操作

    好长时间没有看php手册了,有些关于文件操作方面的知识点发现从没有学过,现补习一下,顺便整理一下: 1.文件的打开:fopen()   此函数的第一个参数含有要打开的文件的名称,第二个参数规定了使用哪 ...

  8. python基础知识-GUI编程-TK-StringVar

    1.如何引出StringVar 之前一直认为StringVar就是类似于Java的String类型的对象变量,今天在想要设置StringVar变量的值的时候,通过搜索发现StringVar并不是pyt ...

  9. Python GUI编程之WxPython

    https://en.wikipedia.org/wiki/WxPython 官网: Overview of wxPython: https://wxpython.org/pages/overview ...

  10. @components问题

    场景:在引入组件的时候,希望解决"../components/page/member"这样的引入: 希望:像vue的项目中用@components/page/member引入组件 ...