#kubernetes #google-kubernetes-engine #prometheus #cadvisor
#kubernetes #google-kubernetes-engine #prometheus #cadvisor
Вопрос:
Привет,
Я развернул настройку prometheus, grafana, kube-state-metrics, alertmanager и т.д. с использованием kubernetes в GKE версии v1.16.x. Я использовал https://github.com/do-community/doks-monitoring в качестве отправной точки для файлов yaml.
Я пытался отладить ситуацию в течение нескольких дней и был бы очень благодарен за некоторую помощь. Мои узлы prometheus не получают показатели от cadvisor.
- Все службы и модули в развертываниях запущены. prometheus, kube-state-metrics, узел-экспортер, все запущено — ошибок нет.
- Цели cadvisor в пользовательском интерфейсе prometheus отображаются как «вверх».
- Prometheus может собирать другие показатели из кластера, но не метрики использования на уровне pod / контейнера.
- Я могу видеть показатели cadvisor при запросе
kubectl get --raw "/api/v1/nodes/<your_node>/proxy/metrics/cadvisor"
, но когда я ищу в prometheuscontainer_cpu_usage
илиcontainer_memory_usage
, данных нет. - Моя конфигурация задания очистки cadvisor в prometheus
- job_name: kubernetes-cadvisor
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics/cadvisor
scheme: https
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(. )
списано из prometheus / docs/examples.
Я перепробовал целую кучу различных вариантов путей и конфигураций очистки, но безуспешно. Исходя из того факта, что я могу запрашивать метрики с помощью kubectl get
(они существуют), мне кажется, проблема в том, что prometheus взаимодействует с целью cadvisor.
Если у кого-нибудь есть опыт настройки этого, я был бы признателен за помощь в отладке.
Приветствия
Комментарии:
1. Здравствуйте. Вы проверили журналы
Prometheus
модуля? Есть ли какие-либо предупреждения, которые могли бы пролить свет на то, почему вы не можете получить показатели cadvisor?2. Спасибо за напоминание @DawidKruk. Несколько дней назад я нашел сообщение в блоге, которое помогло мне. Только что опубликовал ответ.
Ответ №1:
Я смог откопать блог, в котором был пример конфигурации, которая сработала для меня. Конечная точка GKE для показателей cadvisor (и kubelet) отличается от стандартных, которые можно найти в примерах документации. Вот выдержка из моих рабочих заданий prometheus:
- job_name: kubernetes-cadvisor
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics/cadvisor
scheme: https
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(. )
- target_label: __address__
replacement: kubernetes.default.svc.cluster.local:443
- source_labels: [__meta_kubernetes_node_name]
regex: (. )
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
- job_name: kubernetes-kubelet
honor_timestamps: true
scrape_interval: 15s
scrape_timeout: 10s
metrics_path: /metrics
scheme: https
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(. )
- target_label: __address__
replacement: kubernetes.default.svc.cluster.local:443
- target_label: __metrics_path__
source_labels: [__meta_kubernetes_node_name]
regex: (. )
replacement: /api/v1/nodes/${1}/proxy/metrics
Редактировать: вот ссылка на сообщение в блоге -> https://medium.com/htc-research-engineering-blog/monitoring-kubernetes-clusters-with-grafana-e2a413febefd .
Комментарии:
1. Можете ли вы связать сообщение в блоге?
Ответ №2:
Слишком расстраивает, я копал последние несколько дней.
Проблема возникла после того, как мастер gke обновился с 1.15.12-gke.2 до 1.16.13-gke.401.
Чтобы подтвердить это, сделал то же самое в другом кластере gke, и результат тот же.
и вышеупомянутая конфигурация выдает 403 запрещенных.
Комментарии:
1. Привет, я тоже застрял в той же проблеме — KMS, узел-экспортер, linkerd работает. Со вчерашнего дня я развернул Cadvisor и добавил вашу конфигурацию, но теперь я продолжаю получать эту ошибку на панели мониторинга
server returned HTTP status 403 Forbidden
2. какое-либо решение, которое вы выяснили?