如何通过kube-prometheus-stack采集Bitnami/MariaDB指标?配置未生效
Bitnami MariaDB Helm Chart:Metrics Sidecar与ServiceMonitor未创建的排查方案
核心排查方向及解决方法
1. Chart版本与应用版本不兼容
你使用的MariaDB应用版本是10.5.11-debian-10-r25,对应的Bitnami Helm Chart可能不支持在primary/secondary层级单独配置metrics。早期版本的Chart通常将metrics配置放在全局根节点,而非实例级节点下。
- 解决步骤:
- 查看当前使用的Chart版本:
helm list -n <你的命名空间> - 如果是旧版Chart,要么调整配置结构,把metrics移到全局根节点:
metrics: enabled: true image: registry: docker.io repository: bitnami/mysqld-exporter tag: 0.14.0-debian-11-r37 annotations: prometheus.io/scrape: 'true' prometheus.io/port: '9104' serviceMonitor: enabled: true interval: 30s selector: release: prometheus - 要么升级Chart到支持实例级metrics配置的版本(升级前务必备份数据)。
- 查看当前使用的Chart版本:
2. YAML缩进错误
YAML对缩进要求严格,你的配置可能层级不对,导致Chart无法识别metrics开关。
- 解决步骤:
- 确认
metrics配置在primary/secondary下的缩进正确,示例:primary: metrics: enabled: true # 其余metrics配置... secondary: metrics: enabled: true # 其余metrics配置... - 用
yamllint工具检查YAML语法,避免缩进混乱。
- 确认
3. ServiceMonitor CRD未安装
ServiceMonitor是Prometheus Operator提供的自定义资源,如果集群里没装这个CRD,Helm会静默跳过ServiceMonitor的创建(不会报错)。
- 解决步骤:
- 检查CRD是否存在:
kubectl get crd servicemonitors.monitoring.coreos.com - 如果不存在,手动安装Prometheus Operator对应的ServiceMonitor CRD:从Prometheus Operator的官方发布包中提取CRD文件,执行
kubectl apply -f <crd文件路径>。
- 检查CRD是否存在:
4. Chart模板有额外条件限制
部分旧版Bitnami MariaDB Chart的metrics模板可能有前置条件,比如需要同时开启global.metrics.enabled。
- 解决步骤:
- 解压Chart查看模板逻辑:
helm fetch bitnami/mariadb --untar,检查templates目录下的metrics相关文件,看是否有类似{{ if and .Values.metrics.enabled .Values.global.metrics.enabled }}的条件判断。 - 如果有,在values.yaml中添加全局metrics启用配置:
global: metrics: enabled: true
- 解压Chart查看模板逻辑:
5. 部署时未正确加载values配置
可能部署时没指定正确的values文件,或者配置被默认值覆盖了。
- 解决步骤:
- 重新部署时明确指定values文件:
helm upgrade --install <release名> bitnami/mariadb -n <命名空间> -f <你的values.yaml> - 用
helm get values <release名> -n <命名空间>查看当前生效的配置,确认metrics相关项是否正确应用。
- 重新部署时明确指定values文件:
内容的提问来源于stack exchange,提问作者Stuart Michael
相关产品推荐
相关产品推荐

