恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Telegraf ActiveMQ 输入插件实战指南:基于 Console API 采集队列、主题与订阅者指标

  • 首页
  • 资讯中心
  • /
  • Telegraf ActiveMQ 输入插件实战指南:基于 Console API 采集队列、主题与订阅者指标

相关资讯

YOLOV5图像分类实战:小麦叶病害识别从数据整理到模型部署 2026/9/14 9:28:30
Vector 配置格式迁移:YAML 成为默认配置语言的原理、兼容性策略与 convert-config 实战 2026/9/14 9:23:30
OpenCV与深度神经网络:计算机视觉两大技术路线对比 2026/9/14 9:23:30

最新资讯

Tamagui 多仓 Agent 操作契约:AGENTS.md 中的完成标准、测试流水线与认证调用规范
ScyllaDB 全表行数统计性能指南:COUNT(1) 慢查询与 ReadTimeout 的三种解法
oauth2-proxy 集成 SourceHut 身份提供商:配置、自托管 URL 定制与源码级认证流程解析
C++策略模式:动态算法切换与性能优化实践
Plandex 本地开发环境搭建与热重载工作流:Development 模式完全指南
Bend 报 Failed to launch kernels (error code invalid argument) 错误怎么排查?

今日推荐

ASP+Access库存管理系统源码部署与IIS配置实战指南
基于SSM框架的毕业季旧物分类处理系统设计与实现
MATLAB FFT频谱仿真:从DFT原理到参数设置与窗函数选择

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

Telegraf ActiveMQ 输入插件实战指南:基于 Console API 采集队列、主题与订阅者指标

发布时间:2026/9/14 9:28:30
Telegraf ActiveMQ 输入插件实战指南:基于 Console API 采集队列、主题与订阅者指标 Telegraf ActiveMQ 输入插件实战指南基于 Console API 采集队列、主题与订阅者指标【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf导读ActiveMQ 是应用广泛的消息中间件其内置的 Web Console 提供了基于 XML 的 Console API 端点。Telegraf 的inputs.activemq插件通过请求这些端点将队列queues、主题topics与订阅者subscribers的运行状态转化为结构化指标供 InfluxDB、Prometheus 等时序系统消费。本文将围绕 插件 README 展开结合 activemq.go 源码与 activemq_test.go 测试完整讲解该插件的配置项、采集原理、指标字段语义与实战部署要点。一、插件概览与适用场景inputs.activemq是 Telegraf 官方自带的输入插件自Telegraf v1.8.0起提供归属分类为messaging可运行于all所有平台。它直接面向 ActiveMQ 消息代理message broker守护进程无需额外安装探针或 Agent只要目标 ActiveMQ 开启了 Web Console 且插件进程可访问对应 HTTP(S) 端口即可采集。其典型应用场景包括监控队列积压深度size在消费端出现故障导致消息堆积时及时告警跟踪队列/主题的入队enqueue与出队dequeue吞吐趋势评估消息生产与消费的速率匹配观察订阅者的pending_queue_size与dispatched_counter定位慢消费者与消息延迟来源。从仓库源码看插件被注册于 activemq.go 的inputs.Add(activemq, ...)中初始化默认值如下return ActiveMQ{ Server: localhost, Port: 8161, Webadmin: admin, }也就是说即使完全不写配置插件也会默认指向http://localhost:8161Webadmin 根路径为admin。二、配置详解从最小可用到生产级以下为插件在 sample.conf 中提供的完整配置模板亦是插件 README 中的核心示例# Gather ActiveMQ metrics [[inputs.activemq]] ## ActiveMQ WebConsole URL url http://127.0.0.1:8161 ## Credentials for basic HTTP authentication # username admin # password admin ## Required ActiveMQ webadmin root path # webadmin admin ## Maximum time to receive response. # response_timeout 5s ## Optional TLS Config # tls_ca /etc/telegraf/ca.pem # tls_cert /etc/telegraf/cert.pem # tls_key /etc/telegraf/key.pem ## Use TLS but skip chain host verification # insecure_skip_verify false各配置项的含义与源码行为如下1.url必需—— Web Console 地址指定 ActiveMQ Web Console 的完整 URL如http://127.0.0.1:8161。在 Init() 中会对其进行严格校验若同时配置了已废弃的server/port字段则优先使用urlscheme 必须以http开头https://同样合法因为校验逻辑为strings.HasPrefix(u.Scheme, http)主机名hostname不能为空否则分别返回invalid scheme或invalid hostname错误。兼容性提示早期版本使用server与port两个字段自v1.11.0起被标记为 deprecateddeprecated:1.11.0;use url instead见 activemq.go请统一改用url。2.username/password—— Basic 认证凭据ActiveMQ 的 Web Console 默认受用户认证保护。插件在每次 GET 请求前判断Username或Password任一非空便调用req.SetBasicAuth(...)注入 Basic Auth 头见 getMetrics()。默认账号通常为admin/admin。3.webadmin—— Webadmin 根路径这是拼装 Console API 地址的关键参数默认值为admin。三个采集端点均由它拼接而成activemq.go指标对象请求路径队列/{webadmin}/xml/queues.jsp主题/{webadmin}/xml/topics.jsp订阅者/{webadmin}/xml/subscribers.jsp测试 TestURLs 通过httptest模拟了/admin/xml/queues.jsp、/admin/xml/topics.jsp、/admin/xml/subscribers.jsp三个路径并断言非预期路径返回 404从侧面印证了端点拼装规则。如果你的 ActiveMQ 修改了 Console 的上下文路径需同步调整该值。4.response_timeout—— 请求超时设置等待 HTTP 响应的最长时间默认5s。源码中的兜底逻辑是只要配置值小于 1 秒就重置为 5 秒activemq.go随后作为http.Client.Timeout生效createHTTPClient()。对于大集群或跨地域采集可适当调大。5. TLS 配置组当 Web Console 通过 HTTPS 暴露时使用tls_ca自定义 CA 证书路径默认/etc/telegraf/ca.pemtls_cert/tls_key客户端证书与私钥对默认/etc/telegraf/cert.pem、/etc/telegraf/key.peminsecure_skip_verify置为true时跳过证书链与主机名校验默认false仅建议在测试环境使用。这些字段来自 Telegraf 公共的tls.ClientConfig在 createHTTPClient() 中通过a.ClientConfig.TLSConfig()统一生成 TLS 配置并注入http.Transport。6. 全局插件配置与所有 Telegraf 插件一样inputs.activemq也支持在插件表中添加全局配置项用于指标改名、增删标签、字段过滤与插件排序等。详见 docs/CONFIGURATION.md常用示例包括[[inputs.activemq]] url http://127.0.0.1:8161 name_prefix mq_ [inputs.activemq.tags] env productionname_prefix会在测量名前附加前缀tags可为每条指标补充自定义标签此外还可用name_override、name_suffix、fieldpass/fielddrop、tagpass/tagdrop等实现更精细的整形。三、指标定义字段语义与标签说明插件尽最大努力保留了 ActiveMQ Console API 原始 XML 响应中的命名因此字段名与 XML 属性一一对应。共输出三类测量measurement1.activemq_queues—— 队列指标tagsname队列名已做TrimSpace处理、sourceWeb Console 主机名、port端口fields字段对应 XML 属性含义sizesize队列中当前积压的消息条数consumer_countconsumerCount当前订阅该队列的消费者数量enqueue_countenqueueCount累计入队消息条数dequeue_countdequeueCount累计出队被消费消息条数2.activemq_topics—— 主题指标tagsname主题名注意源码中 topic 名称未做TrimSpace参见 gatherTopicsMetrics、source、portfields与队列相同的size、consumer_count、enqueue_count、dequeue_count3.activemq_subscribers—— 订阅者指标tagsclient_id、subscription_name、connection_id、destination_name、selector消息选择器表达式、active订阅是否激活值为yes/no、source、portfields字段对应 XML 属性含义pending_queue_sizependingQueueSize该订阅者待派发pending的消息队列大小dispatched_queue_sizedispatchedQueueSize已派发dispatched但尚未确认的消息数dispatched_counterdispatchedCounter累计派发消息次数enqueue_counterenqueueCounter累计入队次数dequeue_counterdequeueCounter累计出队次数上述 tags 与 fields 的映射逻辑可在 gatherQueuesMetrics、gatherTopicsMetrics 与 gatherSubscribersMetrics 三个函数中逐行核实测试 TestGatherQueuesMetrics、TestGatherTopicsMetrics、TestGatherSubscribersMetrics 分别用与 README 示例输出完全一致的 XML 数据验证了字段标签映射的正确性。四、采集原理从 HTTP 请求到 Influx 行协议理解插件内部流程有助于排查采集异常与字段口径问题完整调用链如下初始化Init校验 URL、设置默认超时、构建http.Client与baseURL并发拉取Gather依次顺序执行请求三个 XML 端点见 Gather()XML 解码使用encoding/xml将响应体反序列化为queues/topics/subscribers结构体。XML 结构定义于 activemq.go例如队列节点为queue name...stats size... consumerCount... ...//queue非 200 处理若端点返回非 200 状态码直接返回形如{url} returned HTTP status {status}的错误getMetrics()组装指标将各节点的属性按映射写入 fields主机名与端口写入 tags调用acc.AddFields(...)输出到 Accumulator最终由输出插件序列化为 InfluxDB 行协议。对 XML 格式感兴趣的读者可参考测试中的原始报文如 activemq_test.go其中feed节点内的 RSS/Atom 浏览链接会被忽略仅解析stats属性这正是“尽力保留 XML 命名”的具体体现。五、示例输出解读插件 README 给出了真实的输出样例以下节选两行进行解读activemq_queues,namesandra,sourcelocalhost,port8161 consumer_count0i,enqueue_count0i,dequeue_count0i,size0i 1492610703000000000 activemq_subscribers,connection_idNOTSET,destination_nameAAA,selectorAA,activeno,sourcelocalhost,port8161,client_idAAA,subscription_nameAAA pending_queue_size0i,dispatched_queue_size0i,dispatched_counter0i,enqueue_counter0i,dequeue_counter0i 1492610703000000000可从中确认以下事实所有字段以i结尾表明是整型integerhost标签如示例中的88284b2fe51b由 Telegraf 全局注入表示采集主机的 hostname非插件产生source、port标签来自 Web Console 的地址localhost、8161时间戳为纳秒级 Unix 时间戳1492610703000000000对应 2017-04-19 附近实际数值取决于采集时刻标签activeno表示该订阅者当前处于非激活状态可用于告警场景。注意示例中部分行存在逗号转义或标签顺序差异如nameAAA\与nameActiveMQ.Advisory.MasterBroker\中的空格/转义这是 InfluxDB 行协议对特殊字符逗号、空格的序列化规则所致与插件本身无直接关系对比测试 XML 中ActiveMQ.Advisory.MasterBroker名称尾随空格即可理解。六、实战启用插件与验证采集1. 生成并修改配置使用 Telegraf 自带的配置生成命令仅启用该插件telegraf config --input-filter activemq --output-filter influxdb telegraf.conf编辑生成的telegraf.conf确认[[inputs.activemq]]段落中的url指向正确的 Web Console 地址并按需开启username/password。2. 校验配置语法telegraf --config telegraf.conf --test--test模式会执行一次完整的 Gather 并在终端直接打印采集到的指标行协议是验证连接、认证与指标内容最快捷的方式。若出现returned HTTP status 401类错误请检查认证凭据若超时请检查网络连通性与response_timeout。3. 前提与限制目标 ActiveMQ 必须启用Web Console默认端口 8161插件并不支持通过 JMX 或 OpenWire 端口采集采集频率由[agent]段的interval控制默认约每 10 秒一次队列/主题数量庞大时XML 响应体可能较大需留意采集耗时与超时配置插件按 README 标注适用于所有平台Windows/Linux/macOS 均可直接使用。七、从源码看可扩展点若需深度定制可从以下源码位置入手activemq.go三个gather*Metrics函数集中了字段标签的映射逻辑是理解“哪个 XML 属性对应哪个指标字段”的权威参考activemq_test.go既是行为回归测试也是 XML 报文格式的现成文档可在模拟环境中直接复用其中的 XML 片段调试自己的采集链路sample.conf由//go:generate自动从README.md同步生成二者保持一致的配置文档可作为基线。八、常见问题速查现象排查方向401/403 错误检查username/password是否正确Web Console 用户是否被授权invalid scheme/invalid hostname检查url是否以http://或https://开头且包含有效主机名404 错误检查webadmin根路径是否正确默认admin采集超时调大response_timeout或检查到 8161 端口的网络与防火墙HTTPS 证书报错配置tls_ca或临时启用insecure_skip_verify仅测试环境指标缺失确认队列/主题/订阅者在 Web Console 中可见且name未包含特殊字符导致行协议解析问题结语inputs.activemq以极低的接入成本借助 ActiveMQ 自带的 XML Console API为队列、主题与订阅者三类核心对象提供了完整的可观测指标。本文以 插件 README 为骨架结合 activemq.go 的配置校验与指标映射源码、activemq_test.go 的验证用例以及 docs/CONFIGURATION.md 的全局配置机制完整还原了该插件的配置、原理与排障全流程。读者可直接参照第六节的步骤在真实环境中启用采集并将size、pending_queue_size等字段接入告警规则实现对 ActiveMQ 消息链路的精细化监控。【免费下载链接】telegrafAgent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.项目地址: https://gitcode.com/GitHub_Trending/te/telegraf创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号