ng-monitoring-server是否无法开启TLS

【TiDB 使用环境】v8.5.5
【问题复现路径】

  1. 部署一个1个pd的TiDB集群,ng-monitoring-server在12020端口监听
  2. 执行tikv cluster tls enable -y
  3. curl ip:12020/metrics,发现不通过TLS仍然能拉取到metrics数据

tiup cluster tls enable 只管控 TiDB/PD/TiKV 集群内部通信 TLS,不会自动给 ng-monitoring-server (12020)、Prometheus、node-exporter 这类监控组件开启 TLS,所以curl http://ip:12020/metrics明文可通不是 BUG,是产品设计隔离逻辑。ng-monitoring**原生支持 TLS,但必须单独配置证书,集群一键 tls 命令不接管监控组件。

确保所有的证书(CA 证书、服务器证书和客户端证书)都是有效的,并且没有过期。你可以使用 openssl 命令来检查证书的有效性

“ng-monitoring原生支持 TLS”
来源希望

我记得ng-monitoring 原生支持 TLS,查下文档,看是不要有参数才行

查看 TiDB 的日志文件,看是否有关于 TLS 配置的错误信息。这可以帮助你进一步诊断问题

启动监控时配置证书启用 HTTPS,或防火墙封禁明文 12020 端口。

可以使用防火墙限制访问,试一下

如果需要从外部安全访问 ng-monitoring 的接口,可以在前面加一层 Nginx 反向代理

TiDB 部署的架构设计核心是角色分离:PD 负责元数据管理(强一致),TiKV 负责数据存储(Raft 复制),TiDB 负责 SQL 计算(无状态弹性)。理解这个分层对排障和调优很有帮助。

ng-monitoring-server 默认未跟随 TiKV 集群全局 TLS 配置,自身监听端口未开启 TLS,因此明文仍可访问 metrics。

tiup cluster tls enable 只给 TiDB/PD/TiKV 内部通信开 TLS不管理监控组件(ng-monitoring-server、Prometheus、node-exporter 等)。所以 curl http://ip:12020/metrics 能明文访问,不是 Bug,是设计隔离。ng-monitoring 本身支持 TLS,但要单独配证书,集群一键 TLS 命令不接管监控组件。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。