IVA ДОКУМЕНТАЦИЯ ОБНОВЛЕНИЯ

Настройка системы мониторинга

Компоненты мониторинга, входящие в состав дистрибутива установки IVA One:

  • Prometheus

  • Grafana

  • Alertmanager

Чтобы активировать систему мониторинга, необходимо в файле конфигурации /opt/iva/values.yaml в соответствующих секциях указать значение true.

Порядок выполняемых действий:

  1. открыть файл /opt/iva/values.yaml с помощью команды:

    sudo nano /opt/iva/values.yaml
  2. активировать использование компонентов:

    global:
      metrics:
        enabled: true
        port: 8088
        # Указать пространство имен, в котором запущен Prometheus
        monitoringNamespace:
        serviceMonitor:
          enabled: true
          interval: 30s
  3. сохранить изменения и закрыть файл 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 — имя нового секрета