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 通信。
- 若 ActiveMQ 版本小于 5.8,编辑配置文件 conf.d/activemq.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:
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 常用操作。
常见问题
- 注意看清楚 ActiveMQ 的版本,根据不同版本配置不同的文件。
- Cloudn't launch JMXTerm. Is Java in your PATH ?
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。