跳转至

ActiveMQ

Apache ActiveMQ 是最流行的开源面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。

Cloud Insight 通过收集 ActiveMQ 数据来可视化 ActiveMQ 传输速率消息存储等消息通信情况,以及和其它应用关联时的性能变化。


性能指标

Cloud Insight 采集 ActiveMQ 以下性能指标:

指标 单位 具体含义
activemq.broker.memory_pct percent 内存使用百分比
activemq.broker.store_pct percent 存储(store)使用百分比
activemq.broker.temp_pct percent temporary 使用百分比
activemq.queue.avg_enqueue_time milliseconds 消息队列的平均排队时间(milliseconds)
activemq.queue.consumer_count 消费者(consumer)连接数
activemq.queue.dequeue_count 自上次重新启动出队列的消息数量
activemq.queue.dispatch_count 发送给消费者(consumer)的总消息数量(dequeue + in_flig)
activemq.queue.enqueue_count 自上次重新启动发送到队列中的消息总数
activemq.queue.expired_count 未传送已过期的消息数量
activemq.queue.in_flight_count 发送给消费者(consumer)还没应答的消息数量
activemq.queue.max_enqueue_time milliseconds 最大的出队列的消息数量(milliseconds)
activemq.queue.memory_pct percent 目前内存使用百分比
activemq.queue.min_enqueue_time milliseconds 最小的出队列的消息数量(milliseconds)
activemq.queue.producer_count 生产者(producer)连接数
activemq.queue.size 排队的消息数量

配置 ActiveMQ 监控

启动 JMX Remote

Cloud Insight Agent 通过 JMX 获取 ActiveMQ 中的性能指标,所以确保 JMX Remote 是 enabled 状态。

1.当 ActiveMQ 的版本为 5.8,进入 activemq 的软件目录,修改文件 bin/activemq 的 ACTIVEMQ_SUNJMX_START 参数;当 ActiveMQ 的版本大于 5.8,进入 activemq 的软件目录,修改文件 bin/env 的 ACTIVEMQ_SUNJMX_START 参数。 ACTIVEMQ_SUNJMX_START 参数配置如下:

ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/conf/jmx.access -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_BASE}/conf/jmx.password";

2.进入 conf 目录,执行 chmod 444 ./jmx.*,将 jmx.access 和 jmx.password 权限修改为只读;

3.进入 conf 目录,编辑 activemq.xml。在 broker 节点增加 useJmx="true", <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">。在 managementContext 节点将 createConnector 设置为true,并增加连接端口:<managementContext createConnector="true" connectorPort="1099"/>

由于每个实体最多可以监控 350 个性能指标,所以您需要按照下方的配置方法,修改配置文件来确定自己需要哪些指标。

更多信息,请查阅 ActiveMQ 官方手册

编辑配置文件

编辑配置文件,使 Cloud Insight Agent 可以与 ActiveMQ 通信。

instances:
  - host: localhost
    port: 7199
    user: username
    password: password
    name: activemq_instance


# List of metrics to be collected by the integration

init_config:
  conf:
    - include:
        Type: Queue
        attribute:
          AverageEnqueueTime:
            alias: activemq.queue.avg_enqueue_time
            metric_type: gauge
          ConsumerCount:
            alias: activemq.queue.consumer_count
            metric_type: gauge
          ProducerCount:
            alias: activemq.queue.producer_count
            metric_type: gauge
          MaxEnqueueTime:
            alias: activemq.queue.max_enqueue_time
            metric_type: gauge
          MinEnqueueTime:
            alias: activemq.queue.min_enqueue_time
            metric_type: gauge
          MemoryPercentUsage:
            alias: activemq.queue.memory_pct
            metric_type: gauge
          QueueSize:
            alias: activemq.queue.size
            metric_type: gauge
          DequeueCount:
            alias: activemq.queue.dequeue_count
            metric_type: counter
          DispatchCount:
            alias: activemq.queue.dispatch_count
            metric_type: counter
          EnqueueCount:
            alias: activemq.queue.enqueue_count
            metric_type: counter
          ExpiredCount:
            alias: activemq.queue.expired_count
            type: counter
          InFlightCount:
            alias: activemq.queue.in_flight_count
            metric_type: counter

    - include:
        Type: Broker
        attribute:
          StorePercentUsage:
            alias: activemq.broker.store_pct
            metric_type: gauge
          TempPercentUsage:
            alias: activemq.broker.temp_pct
            metric_type: gauge
          MemoryPercentUsage:
            alias: activemq.broker.memory_pct
            metric_type: gauge
  • 若 ActiveMQ 版本大于或等于 5.8,编辑配置文件 conf.d/activemq_58.yaml
instances:
  - host: localhost
    port: 7199
    user: username
    password: password
    name: activemq_instance

# List of metrics to be collected by the integration

init_config:
  conf:
    - include:
        destinationType: Queue
        attribute:
          AverageEnqueueTime:
            alias: activemq.queue.avg_enqueue_time
            metric_type: gauge
          ConsumerCount:
            alias: activemq.queue.consumer_count
            metric_type: gauge
          ProducerCount:
            alias: activemq.queue.producer_count
            metric_type: gauge
          MaxEnqueueTime:
            alias: activemq.queue.max_enqueue_time
            metric_type: gauge
          MinEnqueueTime:
            alias: activemq.queue.min_enqueue_time
            metric_type: gauge
          MemoryPercentUsage:
            alias: activemq.queue.memory_pct
            metric_type: gauge
          QueueSize:
            alias: activemq.queue.size
            metric_type: gauge
          DequeueCount:
            alias: activemq.queue.dequeue_count
            metric_type: counter
          DispatchCount:
            alias: activemq.queue.dispatch_count
            metric_type: counter
          EnqueueCount:
            alias: activemq.queue.enqueue_count
            metric_type: counter
          ExpiredCount:
            alias: activemq.queue.expired_count
            metric_type: counter
          InFlightCount:
            alias: activemq.queue.in_flight_count
            metric_type: counter

    - include:
        type: Broker
        attribute:
          StorePercentUsage:
            alias: activemq.broker.store_pct
            metric_type: gauge
          TempPercentUsage:
            alias: activemq.broker.temp_pct
            metric_type: gauge
          MemoryPercentUsage:
            alias: activemq.broker.memory_pct
            metric_type: gauge

重启 Agent

重启 Cloud Insight Agent,使配置生效。

您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。

Checks
======

[...]

activemq
--------
  - instance #0 [OK]
  - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作


5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题