生产环境下,prometheus的configmap修改后 ,如果apply后还是不能生效,一般就是语法报错了,reload失败。

我们可以使用如下的脚本来检查:

#!/bin/bash
# 用于检查 prometheus的配置文件和规则文件是否有错误
# 需要根据自己的部署和配置文件路径修改下面的脚本部分内容

kubectl exec -ti -n monitoring prometheus-stateful-0 -c prometheus-server  -- /bin/sh -c "cd /etc/prometheus/ && /bin/promtool check config prometheus.yml" | grep -A 2  FAILED

kubectl exec -ti -n monitoring prometheus-stateful-0 -c prometheus-server  -- /bin/sh -c "cd /etc/prometheus/ && /bin/promtool check rules rules/*.yaml" | grep -A 2  FAILED

echo
echo "========================================================================================="
echo "如果全部正确,没有返回值。"
echo "如果有报错,会返回错误的行数(指的是pod里面配置文件的对应的行数)或报错的原因"
echo "========================================================================================="