DEVOPSLIB Telegram 70
Привет, друзья! Сегодня хочу поделиться своим опытом настройки мониторинга Kubernetes-кластеров с помощью связки Prometheus + Grafana. Это один из самых востребованных сценариев в современных DevOps-стэках, и правильная реализация позволит вам оперативно реагировать на сбои и проседание производительности.

1. Развертывание Prometheus в Kubernetes
Я использую официальный Helm-чарт prometheus-community/prometheus. Он сразу поднимает основные компоненты: prometheus-server, alertmanager, node-exporter, kube-state-metrics. Чтобы установить чарт:


helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack


После этого Prometheus автоматически начинает собирать метрики с узлов и pod’ов.

2. Сбор метрик с приложений
Помимо стандартных метрик Kubernetes (CPU, память, статус pod’ов), часто нужно мониторить собственные сервисы. Для этого я внедряю в приложения клиентскую библиотеку Prometheus (например, prometheus_client в Go или prom-client в Node.js) и экспонирую endpoint /metrics. В Kubernetes достаточно описать ServiceMonitor:


apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-monitor
labels:
release: prometheus
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: http
path: /metrics
interval: 15s


Так Prometheus начнёт подтягивать кастомные метрики.

3. Настройка alerting’а через Alertmanager
Важно не просто собирать метрики, но и уметь вовремя получать уведомления. С помощью Alertmanager я настраиваю правила в Prometheus:


groups:
- name: pod-alerts
rules:
- alert: PodCrashLooping
expr: kube_pod_container_status_restarts_total > 5
for: 10m
labels:
severity: warning
annotations:
summary: "Pod {{ $labels.namespace }}/{{ $labels.pod }} в состоянии CrashLoopBackOff"
description: "Контейнер {{ $labels.container }} перезапускался более 5 раз за последние 10 минут."


Эти алерты отправляются в Slack или Telegram-бота, чтобы команда всегда была в курсе.

4. Визуализация данных в Grafana
Helm-чарт сразу разворачивает Grafana с готовыми дашбордами: Kubernetes Cluster Monitoring, Node Exporter, Kube State Metrics и т.д. Я дорабатываю эти дашборды под свои нужды: добавляю графики latency запросов, ошибок HTTP-кодов, значение очередей в RabbitMQ и другие ключевые метрики нашего окружения.

5. Советы по оптимизации производительности

▪️Увеличьте retention данных в Prometheus, если у вас достаточно дискового пространства. Например, --storage.tsdb.retention.time=30d.
▪️Настройте сервисы сбора метрик так, чтобы они не генерировали слишком «шумные» метрики (агрегация по нужным лейблам).
▪️Используйте Thanos или Cortex для долгосрочного хранения метрик, если у вас мультидатацентровая архитектура.

Надеюсь, эта инструкция поможет вам быстро поднять качественный мониторинг Kubernetes. Если есть вопросы или примеры ваших реализаций — пишите в комментариях!

Подпишись 👉@devopslib
👍8



tgoop.com/devopslib/70
Create:
Last Update:

Привет, друзья! Сегодня хочу поделиться своим опытом настройки мониторинга Kubernetes-кластеров с помощью связки Prometheus + Grafana. Это один из самых востребованных сценариев в современных DevOps-стэках, и правильная реализация позволит вам оперативно реагировать на сбои и проседание производительности.

1. Развертывание Prometheus в Kubernetes
Я использую официальный Helm-чарт prometheus-community/prometheus. Он сразу поднимает основные компоненты: prometheus-server, alertmanager, node-exporter, kube-state-metrics. Чтобы установить чарт:


helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/kube-prometheus-stack


После этого Prometheus автоматически начинает собирать метрики с узлов и pod’ов.

2. Сбор метрик с приложений
Помимо стандартных метрик Kubernetes (CPU, память, статус pod’ов), часто нужно мониторить собственные сервисы. Для этого я внедряю в приложения клиентскую библиотеку Prometheus (например, prometheus_client в Go или prom-client в Node.js) и экспонирую endpoint /metrics. В Kubernetes достаточно описать ServiceMonitor:


apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: myapp-monitor
labels:
release: prometheus
spec:
selector:
matchLabels:
app: myapp
endpoints:
- port: http
path: /metrics
interval: 15s


Так Prometheus начнёт подтягивать кастомные метрики.

3. Настройка alerting’а через Alertmanager
Важно не просто собирать метрики, но и уметь вовремя получать уведомления. С помощью Alertmanager я настраиваю правила в Prometheus:


groups:
- name: pod-alerts
rules:
- alert: PodCrashLooping
expr: kube_pod_container_status_restarts_total > 5
for: 10m
labels:
severity: warning
annotations:
summary: "Pod {{ $labels.namespace }}/{{ $labels.pod }} в состоянии CrashLoopBackOff"
description: "Контейнер {{ $labels.container }} перезапускался более 5 раз за последние 10 минут."


Эти алерты отправляются в Slack или Telegram-бота, чтобы команда всегда была в курсе.

4. Визуализация данных в Grafana
Helm-чарт сразу разворачивает Grafana с готовыми дашбордами: Kubernetes Cluster Monitoring, Node Exporter, Kube State Metrics и т.д. Я дорабатываю эти дашборды под свои нужды: добавляю графики latency запросов, ошибок HTTP-кодов, значение очередей в RabbitMQ и другие ключевые метрики нашего окружения.

5. Советы по оптимизации производительности

▪️Увеличьте retention данных в Prometheus, если у вас достаточно дискового пространства. Например, --storage.tsdb.retention.time=30d.
▪️Настройте сервисы сбора метрик так, чтобы они не генерировали слишком «шумные» метрики (агрегация по нужным лейблам).
▪️Используйте Thanos или Cortex для долгосрочного хранения метрик, если у вас мультидатацентровая архитектура.

Надеюсь, эта инструкция поможет вам быстро поднять качественный мониторинг Kubernetes. Если есть вопросы или примеры ваших реализаций — пишите в комментариях!

Подпишись 👉@devopslib

BY Библиотека девопса | DevOps, SRE, Sysadmin


Share with your friend now:
tgoop.com/devopslib/70

View MORE
Open in Telegram


Telegram News

Date: |

To edit your name or bio, click the Menu icon and select “Manage Channel.” Those being doxxed include outgoing Chief Executive Carrie Lam Cheng Yuet-ngor, Chung and police assistant commissioner Joe Chan Tung, who heads police's cyber security and technology crime bureau. It’s yet another bloodbath on Satoshi Street. As of press time, Bitcoin (BTC) and the broader cryptocurrency market have corrected another 10 percent amid a massive sell-off. Ethereum (EHT) is down a staggering 15 percent moving close to $1,000, down more than 42 percent on the weekly chart. During the meeting with TSE Minister Edson Fachin, Perekopsky also mentioned the TSE channel on the platform as one of the firm's key success stories. Launched as part of the company's commitments to tackle the spread of fake news in Brazil, the verified channel has attracted more than 184,000 members in less than a month. Telegram Android app: Open the chats list, click the menu icon and select “New Channel.”
from us


Telegram Библиотека девопса | DevOps, SRE, Sysadmin
FROM American