Monitoring
Stackland позволяет организовать мониторинг кластера и платформенных компонентов с помощью Prometheus
- Prometheus — средство сбора метрик кластера и платформенных компонентов.
- Loki — средство централизованного сбора логов.
- Fluent Bit — средство поставки логов.
- Grafana — интерфейс для просмотра и визуализации метрик и логов.
- Alertmanager — средство управления правилами алертинга и отправки уведомлений о проблемах.
Вы можете расширить возможности мониторинга, добавив источники данных и плагины для работы с ними.
Интерфейс Grafana
Интерфейс Grafana доступен по адресу https://grafana.sys.<домен кластера>. Для входа используйте кнопку Sign in with Stackland Auth.
К интерфейсу уже подключены источники данных Loki и Prometheus. Чтобы добавить новые источники или проверить уже подключенные, откройте страницу Data sources во вкладке Connections. Чтобы увидеть, какие метрики и логи собираются в кластере, откройте вкладку Explore и выберите Metrics или Logs.
Управление доступом
В зависимости от роли в кластере пользователю будет назначаться глобальная роль в Grafana. Если пользователь входит в группу stackland-cluster-admins, то в Grafana пользователь сразу получит права администратора. Если входит в stackland-cluster-editors — роль editor. Если пользователь не состоит в группе, то он получит роль viewer.
После входа можно управлять правами на уровне отдельных ресурсов Grafana и отдельных пользователей. Подробнее об управлении доступами читайте в документации Grafana
Дашборды метрик
На вкладке Dashboards находятся готовые дашборды: в папке stackland-monitoring находятся дашборды с метриками кластера. В других папках — дашборды с метриками платформенных компонентов, например, stackland-managed-postgres.
Помимо готовых дашбордов, вы можете создать собственные и добавить на них метрики ваших приложений. Про создание дашбордов читайте в разделе Создать дашборд.
Логи
Логи кластера можно просмотреть на вкладке Explore в разделе Logs. По умолчанию для поставки логов используется сервис Fluent Bit.
Алерты
Настройка правил алертинга позволяет получать уведомления о проблемах в кластере или приложениях. Уведомления можно отправлять с помощью электронной почты, очередей сообщений или мессенджеров.
Про создание каналов нотификаций читайте в разделе Создать правило алертинга.
Конфигурация
Общий вид
apiVersion: stackland.yandex.cloud/v1alpha1
kind: MonitoringConfig
metadata: ...
status:
datasourceConfigured: true
grafanaReady: true
message: Grafana is ready
observedGeneration: 1
spec:
enabled: true
settings:
alertmanager:
enabled: true
ingressEnabled: true
resources:
requests:
cpu: 50m
memory: 200Mi
grafana:
enabled: true
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 100m
memory: 256Mi
grafanaOperator:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
prometheus:
enabled: true
ingressEnabled: true
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 400Mi
retention: 10d
Состояние компонента мониторинга
status:
datasourceConfigured: true
grafanaReady: true
message: Grafana is ready
observedGeneration: 1
datasourceConfigured— Prometheus и Loki подключены к Grafana.grafanaReady— Grafana готова к работе.message— сообщение о состоянии Grafana.observedGeneration— активная версия конфигурации.
Alertmanager
alertmanager:
enabled: true
ingressEnabled: true
resources:
requests:
cpu: 50m
memory: 200Mi
enabled— включает Alertmanager.ingressEnabled— открывает доступ к Alertmanager через Ingress.resources— требования к ресурсам.
Grafana
grafana:
enabled: true
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 100m
memory: 256Mi
enabled— включает Grafana.resources— требования к ресурсам.
Grafana Operator
grafanaOperator:
enabled: true
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 100m
memory: 128Mi
enabled— включает Grafana Operator.resources— требования к ресурсам.
Prometheus
prometheus:
enabled: true
ingressEnabled: true
resources:
limits:
memory: 2Gi
requests:
cpu: 100m
memory: 400Mi
retention: 10d
enabled— включает Prometheus.ingressEnabled— открывает веб-интерфейс Prometheus через Ingress.resources— требования к ресурсам.retention— время хранения данных перед удалением.