Настройка системы мониторинга
Компоненты мониторинга, входящие в состав дистрибутива установки IVA One:
-
Prometheus
-
Grafana
-
Alertmanager
Чтобы активировать систему мониторинга, необходимо в файле конфигурации /opt/iva/values.yaml в соответствующих секциях указать значение true.
Порядок выполняемых действий:
-
открыть файл /opt/iva/values.yaml с помощью команды:
sudo nano /opt/iva/values.yaml -
активировать использование компонентов:
global: metrics: enabled: true port: 8088 # Указать пространство имен, в котором запущен Prometheus monitoringNamespace: serviceMonitor: enabled: true interval: 30s -
сохранить изменения и закрыть файл values.yaml
Настройка сервисов
Чтобы выполнить настройку сервисов компонентов мониторинга, необходимо в файле конфигурации /opt/iva/iva-one/values.yaml в соответствующих секциях указать значение true:
kubePrometheusStack:
embedded: true
prometheus:
embedded: &prometheus_embedded true
grafana:
embedded: &grafana_embedded true
alertmanager:
embedded: &alertmanager_embedded true
kubeStateMetrics:
embedded: &kubeStateMetrics_embedded true
prometheusOperator:
embedded: &prometheusOperator_embedded true
nodeExporter:
embedded: &nodeExporter_embedded true
nats:
promExporter:
enabled: true
natssupercluster:
promExporter:
enabled: true
centrifugo:
metrics:
enabled: true
serviceMonitor:
enabled: true
valkey:
metrics:
enabled: true
После настройки необходимо сохранить внесенные изменения и закрыть файл конфигурации.
Если сервисы активируются после установки IVA One, то необходимо применить CRDs:
sudo kubectl apply --server-side -f /opt/iva/iva-one/charts/kube-prometheus-stack/charts/crds/crds/
Далее необходимо применить обновленную конфигурацию IVA One, выполнив команду:
sudo helm upgrade iva-one /opt/iva/iva-one -f /opt/iva/iva-one/values.yaml -f /opt/iva/values.yaml -n iva-one
Учетная запись
Учетная запись для доступа к Grafana хранится в секрете Kubernetes iva-one-grafana.
Этот секрет создается и заполняется автоматически, если значения параметров в файле конфигурации /opt/iva/iva-one/values.yaml пустые, то есть:
grafana:
admin:
existingSecret: ""
userKey:
passwordKey:
При необходимости можно создать собственные настройки доступа, создав секрет Kubernetes iva-one-grafana-custom и указав его название в /opt/iva/iva-one/values.yaml:
kubectl create secret generic iva-one-grafana-custom -n iva-one \
--from-literal=admin-user='<ADMIN_USER>' \
--from-literal=admin-password='<ADMIN_PASSWORD>'
grafana:
admin:
existingSecret: "iva-one-grafana-custom"
userKey: "admin-user"
passwordKey: "admin-password"
Доменное имя
Для доступа к Grafana необходимо указать имя домена.
Если для Grafana используется доменное имя, которое не принадлежит домену имен iva-one, то это имя, а также имя секрета с TLS-сертификатом домена необходимо задать в файле конфигурации /opt/iva/iva-one/values.yaml в секциях global.kube-prometheus-stack.grafana.ingress.domain и global.kube-prometheus-stack.grafana.ingress.tls.secretName соответственно:
global:
kube-prometheus-stack:
grafana:
embedded: &grafana_embedded true
dashboards_enabled: &grafana_dashboards_enabled true
ingress:
enabled: &grafana_ingress_enabled true
domain: &grafana_domain "<DOMAIN_NAME_GRAFANA>"
tls:
secretName: &grafana_tls_secret grafana-tls-secret
где:
-
<DOMAIN_NAME_GRAFANA> — доменное имя для подключения к Grafana, например
one2.example.ru. Может быть любым и не совпадать с доменом IVA One -
grafana-tls-secret — имя секрета для хранения TLS-сертификатов домена Grafana. По умолчанию используется секрет для домена IVA One.
При использовании другого домена нужно создать новый секрет с TLS-сертификатом домена Grafana и указать его имя с помощью команды:
sudo kubectl create secret tls grafana-tls-secret -n iva-one --cert=grafana-tls.crt --key=grafana-tls.key
где grafana-tls.crt и grafana-tls.key — файлы с сертификатом и закрытом ключом домена
Аналогично можно задать произвольное имя домена для Alertmanager в файле конфигурации /opt/iva/iva-one/values.yaml:
global:
kube-prometheus-stack:
alertmanager:
embedded: &alertmanager_embedded true
ingress:
enabled: &alertmanager_ingress_enabled true
domain: &alertmanager_domain "<DOMAIN_NAME_ALERTMANAGER>"
tls:
# Если для домена alertmanager используется отдельный TLS, требуется указать его в `secretName`
secretName: &alertmanager_tls_secret alertmanager-tls-secret
где:
-
<DOMAIN_NAME_ALERTMANAGER> — доменное имя для подключения к Alertmanager, например
id2.example.ru. Может быть любым и не совпадать с доменом IVA One -
alertmanager-tls-secret — имя секрета для хранения TLS-сертификатов домена Alertmanager. По умолчанию используется секрет для домена IVA One
При использовании другого домена нужно создать новый секрет с TLS-сертификатом и указать его имя с помощью команды:
sudo kubectl create secret tls alertmanager-tls-secret -n iva-one --cert=alertmanager-tls.crt --key=alertmanager-tls.key
где alertmanager-tls-secret — имя нового секрета