如何解决 Prometheus 错误 'role missing (one of: pod, service, endpoints, node)'
How to resolve Prometheus Error 'role missing (one of: pod, service, endpoints, node)'
我第一次尝试将 kubernetes 应用到我的 minikube 集群。我在集群管理方面的经验有限,之前从未使用过 prometheus,所以对于菜鸟错误我深表歉意。
我运行以下命令:
docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus
这是我的 yaml:
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'kubernetes-apiservers'
scheme: http
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
kubernetes_sd_configs:
- role: endpoints
- api_server: localhost:30000
我 运行 通过 YAMLlint 得到它是有效的。但是,当我 运行 第二个 docker 命令时出现以下错误:
level=error ts=2018-09-18T21:49:34.365671918Z caller=main.go:617 err="error
loading config from \"/etc/prometheus/prometheus.yml\": couldn't load
configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): parsing
YAML file /etc/prometheus/prometheus.yml: role missing (one of: pod,
service, endpoints, node)"
但是,你可以看到我在我的kubernetes_sd_configs
中指定了我的- role: endpoints
。
谁能帮我解决这个问题
kubernetes_sd_configs
是配置列表,在 YAML 术语中样式为块序列。
现在,您的配置列表如下所示:
- role: endpoints
- api_server: localhost:3000
所以你定义了两个配置,只有第一个有作用。这就是您收到错误的原因。很可能,您只想创建一个配置了 role
和 api_server
的配置。删除第二个 -
以便 api_server
属于第一个配置:
- role: endpoints
api_server: localhost:3000
我第一次尝试将 kubernetes 应用到我的 minikube 集群。我在集群管理方面的经验有限,之前从未使用过 prometheus,所以对于菜鸟错误我深表歉意。
我运行以下命令:
docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus
这是我的 yaml:
global:
scrape_interval: 15s
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'kubernetes-apiservers'
scheme: http
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
kubernetes_sd_configs:
- role: endpoints
- api_server: localhost:30000
我 运行 通过 YAMLlint 得到它是有效的。但是,当我 运行 第二个 docker 命令时出现以下错误:
level=error ts=2018-09-18T21:49:34.365671918Z caller=main.go:617 err="error
loading config from \"/etc/prometheus/prometheus.yml\": couldn't load
configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): parsing
YAML file /etc/prometheus/prometheus.yml: role missing (one of: pod,
service, endpoints, node)"
但是,你可以看到我在我的kubernetes_sd_configs
中指定了我的- role: endpoints
。
谁能帮我解决这个问题
kubernetes_sd_configs
是配置列表,在 YAML 术语中样式为块序列。
现在,您的配置列表如下所示:
- role: endpoints
- api_server: localhost:3000
所以你定义了两个配置,只有第一个有作用。这就是您收到错误的原因。很可能,您只想创建一个配置了 role
和 api_server
的配置。删除第二个 -
以便 api_server
属于第一个配置:
- role: endpoints
api_server: localhost:3000