4242 是什么
4242 是 OpenTSDB 的 TSD(Time Series Daemon)默认端口,提供 HTTP 与 REST 接口:写入用 POST /api/put,查询用 GET /api/query,数据最终落在 HBase 上。它是 Prometheus 流行之前的经典时序方案,在以 HBase 为底座的老监控体系里仍然能见到。TSD 本身无状态,可以多实例部署并由前端负载均衡分发请求,容量瓶颈通常出现在存储侧。
基本信息
| 服务 | OpenTSDB TSD(默认 4242) |
|---|---|
| 协议 | TCP/HTTP(REST) |
| 用途 | 时序指标写入、查询与聚合 |
| 存储后端 | HBase 或兼容实现 |
| 部署形态 | 无状态,可多实例 |
| 安全等级 | 仅监控网段 |
典型使用场景
- 指标写入:应用或采集器把指标推给 TSD
- 查询与聚合:通过查询接口做降采样与聚合
- 写入丢点排障:TSD 日志与 HBase 延迟联合分析
- 体系迁移:评估向新时序方案迁移的路径与工作量
- 容量规划:指标基数与存储增长的估算
- 监控自检:确认采集链路与写入延迟的基线
OpenTSDB 常用接口
| 接口 | 方法 | 用途 |
|---|---|---|
| /api/put | POST | 写入数据点 |
| /api/query | GET | 查询与聚合(含降采样) |
| /api/suggest | GET | 指标名与标签建议 |
| /api/stats | GET | TSD 自身统计 |
写入与查询
写入与查询
curl -s -X POST http://tsdb01:4242/api/put -d '实例数据点 JSON'
curl -s 'http://tsdb01:4242/api/query?start=1h-ago&m=sum:sys.cpu' | head -c 300
curl -s http://tsdb01:4242/api/stats | head -c 300 # TSD 自身状态
ss -lntp | grep 4242 # 监听核对OpenTSDB 的查询性能高度依赖 HBase:查询变慢或超时的根因常在存储侧(热点、压缩任务),把 TSD 扩容通常解决不了问题。
写入路径缺少严格校验:指标名与标签设计不当(基数过高)会在 HBase 里产生大量小行,代价是长期的查询劣化。
TSD 无状态便于横向扩展,但前端负载均衡要检查写入是否幂等:重复写入会造成数据点叠加,统计结果偏高。
查询接口的聚合与降采样参数较多:写错聚合方式时结果看似正常,实际与预期含义不同,监控决策容易被误导。
迁移时序体系时先盘点数据保留需求:历史数据的迁移成本与保留价值往往不成比例,分级保留更现实。