cla*_*lay 2 kubernetes prometheus minikube prometheus-operator
如果我启动一个全新的、空的 minikube 和helm install最新stable/prometheus-operator的严格默认设置,我会看到四个活动的 Prometheus 警报。
在这个超级简化的场景中,我有一个干净的新 minikube,除了 Prometheus 之外什么都没有运行,应该没有问题,也没有警报。这些警报是假的还是坏了?我的设置有问题吗?或者我应该提交错误报告并暂时禁用这些警报?
以下是我的基本设置步骤:
minikube delete
# Any lower memory/cpu settings will experience problems
minikube start --memory 10240 --cpus 4 --kubernetes-version v1.12.2
eval $(minikube docker-env)
helm init
helm repo update
# wait a minute for Helm Tiller to start up.
helm install --name my-prom stable/prometheus-operator
Run Code Online (Sandbox Code Playgroud)
等待几分钟让一切启动,然后在 Prometheus 服务器和 Grafana 上运行端口转发:
kubectl port-forward service/my-prom-prometheus-operato-prometheus 9090:9090
kubectl port-forward service/my-prom-grafana 8080:80
Run Code Online (Sandbox Code Playgroud)
然后去http://localhost:9090/alerts看看:
DeadMansSwitch (1 active)
KubeControllerManagerDown (1 active)
KubeSchedulerDown (1 active)
TargetDown (1 active)
Run Code Online (Sandbox Code Playgroud)
这些是假的吗?真的有什么问题吗?我应该禁用这些吗?
其中两个警报缺少指标:
absent(up{job="kube-controller-manager"} == 1)absent(up{job="kube-scheduler"} == 1)在 中http://localhost:9090/config,我没有看到配置的任何作业,但我确实看到与job_name值为default/my-prom-prometheus-operato-kube-controller-manager/0和的作业非常密切相关default/my-prom-prometheus-operato-kube-scheduler/0。这表明job_name值应该匹配,但存在它们不匹配的错误。我也没有看到这两项工作的任何收集指标。职位名称中允许使用斜杠吗?
另外两个警报:
vector(1)。我不知道这是什么。up{job="kubelet"}有两个指标值,一个值为 1.0 的向上指标,一个值为 0.0 的向下指标值。向上值是endpoint="http-metrics",向下值是endpoint="cadvisor"。后一个端点应该是向上的吗?为什么不会呢?我去http://localhost:9090/graph运行sum(up) by (job)我看到1.0所有的值:
{job="node-exporter"}
{job="my-prom-prometheus-operato-prometheus"}
{job="my-prom-prometheus-operato-operator"}
{job="my-prom-prometheus-operato-alertmanager"}
{job="kubelet"}
{job="kube-state-metrics"}
{job="apiserver"}
Run Code Online (Sandbox Code Playgroud)
仅供参考,kubectl version显示:
Client Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2", GitCommit:"17c77c7898218073f14c8d573582e8d2313dc740", GitTreeState:"clean", BuildDate:"2018-10-30T21:39:16Z", GoVersion:"go1.11.1", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"12", GitVersion:"v1.12.2", GitCommit:"17c77c7898218073f14c8d573582e8d2313dc740", GitTreeState:"clean", BuildDate:"2018-10-24T06:43:59Z", GoVersion:"go1.10.4", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
该Watchdog警报(以前名为DeadManSwitch)是:
\n\n\n旨在确保整个警报管道正常运行的警报。\n 此警报始终会触发,因此它应始终在 Alertmanager 中触发\n 并始终针对接收器触发。
\n
在 Minikube 中,kube-controller-manager和kube-scheduler默认监听127.0.0.1,因此 Prometheus 无法从中获取指标。您需要启动 Minikube,并使用这些组件监听所有接口:
minikube start --kubernetes-version v1.12.2 \\\n--bootstrapper=kubeadm \\\n--extra-config=scheduler.address=0.0.0.0 \\\n--extra-config=controller-manager.address=0.0.0.0\nRun Code Online (Sandbox Code Playgroud)\n\n另一个原因TargetDown是 Prometheus Operator helm Chart 创建的默认服务选择器 don\xe2\x80\x99t 与 Minikube 组件使用的标签匹配。您需要通过设置kubeControllerManager.selector和kubeScheduler.selectorhelm 参数来匹配它们。
看看这篇文章:尝试使用 Helm + Minikube 的 Prometheus Operator。它解决了所有这些问题、如何解决这些问题等等。
\n| 归档时间: |
|
| 查看次数: |
1908 次 |
| 最近记录: |