Модуль централизованного хранения логов (OpenSearch)

Модуль централизованного хранения логов использует за основу OpenSearch.

Если в платформе и клиентском кластере установлен, включен и работает модуль локального сбора логов (Vector), пользователи, имеющие в наборах доступа права в OpenSearch могут авторизоваться в OpenSearch для просмотра логов.

Логи вашего кластера доступны из дашборда кластера по нажатию на кнопку Логи.

Для авторизации откройте ссылку в том же окне браузера, в котором открыта платформа. Нажмите кнопку log in with single sign-on. В аккаунте будут доступны логи безопасности, инфраструктурные логи и логи приложений всех кластеров платформы, в которых установлен модуль сбора системных логов.

В случае необходимости вы можете увеличить дисковое пространство для хранения логов OpenSearch, а также настроить оповещение о заполненности дискового пространства. Подробнее на странице Как увеличить объем хранилища OpenSearch, VictoriaMetrics.

Перейдите на страницу Анализ состояния в платформе Штурвал , чтобы ознакомиться с совместной работой модулей, обеспечивающих логирование в платформе.

В текущем релизе используется OpenSearch версии 2.15.0 и OpenSearch Operator версии 2.6.1.

Просмотр логов

При первом переходе в интерфейсе необходимо определить tenants. Для этого в модальном окне Select your tenant выберите пункт Private.

В интерфейсе OpenSearch перейдите в левое меню, раздел Management/Dashboards Management/Index patterns. Нажмите кнопку Create index pattern.

Введите префикс имени кластера и _тип лога, в конце укажите -*:

  • для клиентского кластера используйте в виде префикса имя клиентского кластера.
  • для кластера управления (платформы) используйте имя кластера, указанное при инсталляции кластера управления. Для просмотра имени кластера управления, перейдите в раздел Платформа/Установленные сервисы, найдите “Модуль локального сбора логов”, нажмите “Управлять”, в блоке “Спецификация” найдите значение поля logstashPrefix. Это название вашего кластера управления. Используйте его в качестве префикса имени кластера.

Должно получиться myclustername_тип лога-*. Индексы включают типы логов:

  • auditd: системные логи аудита;
  • journald: логи контейнеров, kubelet, shturvald;
  • logs: логи контейнеров;
  • user-logs: логи приложений пользовательской нагрузки;
  • events: логи событий всех объектов кластера;
  • kaudit: kube-audit логи. Тип доступен, если установлены расширенные настройки безопасности в кластере. Подробнее в разделе Настройка подключения kube-audit логов.

Чтобы вывести данные по всем логам и датам для индекса, укажите * вместо тип лога, например, myclustername_*.

Нажмите Next step.

В поле Time field выберите @timestamp.

Нажмите Create index pattern.

Такой Index pattern необходимо создать для каждого кластера.

Перейдите в левом меню на вкладку OpenSearch Dashboards/Discover, в перечне индексов выберите Index pattern в соответствии с названием созданного вами индекса для вашего кластера.

В некоторых случаях при инициализации Dashboards, когда кластер OpenSearch ещё не полностью готов, создаётся битый индекс .kibana_1, в котором хранятся в том числе index pattern.

Решение:

  • Удалить индекс .kibana_1
  • Перезагрузить Pod ресурса Deployment “shturval-logs-dashboards”

Настройка подключения kube-audit логов

Для кластера, в котором установлены расширенные настройки безопасности, есть возможность настройки audit_policy и просмотра логов в OpenSearch.

Для этого в интерфейсе OpenSearch перейдите в левое меню, раздел Management/Dashboards Management/Index patterns. Нажмите кнопку Create index pattern.

  • Для кластера управления: в названии введите префикс имени вашего кластера управления, затем добавьте _kaudit-*, это позволит выводить данные по всем датам для этого индекса. Должно получиться так: mgmtclustername_kaudit-*
  • Для клиентского кластера: в названии введите префикс имени вашего кластера, затем добавьте _kaudit-*, это позволит выводить данные по всем датам для этого индекса. Должно получиться так: myclustername_kaudit-*

Уточнить название индекса можно в разделе Management/Index Management/Indexes.

Нажмите Next step.

В поле Time field выберите @timestamp. Завершите создание, нажав на кнопку Create index pattern.

Перейдите в левом меню на вкладку OpenSearch Dashboards/Discover, в перечне индексов выберите Index pattern в соответствии с названием созданного вами индекса для вашего кластера.

Для настройки детекции (обнаружения) аномалий используйте инструкцию.

Перенаправление логов

Для управления сбором логов в кластерах платформы “Штурвал” используется Vector. Подробнее о настройке этого сервиса.

Для настройки перенаправления логов выполните следующие действия:

  1. В кластере, где нужно сделать перенаправление логов, в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы, найдите и откройте Модуль локального сбора логов (shturval-log-collector).

  2. В разделе Спецификация сервиса добавьте конфигурацию shturval и укажите:

  • тип логов, которые необходимо перенаправить: auditd, journald, k8s_audit, k8s_events,k8s_logs. В блоке shturval должны быть перечислены все типы логов, для которых требуется перенаправление.
  • получателей логов в sinks и их данные для аутентификации, URL-адрес подключения, настройки TLS-соединения и буфера хранения логов до отправки.
  • при необходимости преобразования логов перед отправкой настройте конфигурацию в параметре transforms.
Пример customvalues
shturval:
  k8s_logs: # Тип логов для перенаправления
    enable: true # Включает отправку логов elasticsearch
    transforms: {} # Преобразование логов
    sinks: # Конечные точки для отправки данных
      elastic_bank: # Имя получателя данных
        type: <ваше значение параметра>
        auth:  # Настройки аутентификации для подключения к elasticsearch
          user: <ваше значение параметра>
          password: <ваше значение параметра>
          strategy: <ваше значение параметра>
        endpoints: # URL-адрес для подключения
          - <ваше значение параметра>
        tls: # Настройки TLS-соединения
          verify_certificate: true
        api_version: <ваше значение параметра>
        buffer: # Настройка буфера для хранения логов перед отправкой 
          max_size: <ваше значение параметра> 
          type: <ваше значение параметра>
Параметр Описание Тип данных Пример
elastic_bank.type Тип получателя данных string elasticsearch
elastic_bank.auth.user Имя учетной записи для подключения к Elasticsearch string username
elastic_bank.auth.password Пароль учетной записи для подключения к Elasticsearch string 1234qwe
elastic_bank.auth.strategy Стратегия аутентификации Elasticsearch string basic
elastic_bank.endpoints Список URL-адресов для подключения array https://elastic.bank.local:9200/
elastic_bank.api_version Версия API Elasticsearch string v8
elastic_bank.buffer.max_size Размер буфера для хранения логов перед отправкой int 268435488
elastic_bank.buffer.type Тип буфера для хранения логов перед отправкой string disk
  • Если необходимо отключить отправку логов в Opensearch, переопределите значение sink c именем platform-opensearch в shturval для одного или всех типов логов, как приведено в примере.
Пример customvalues
shturval:
  k8s_logs: 
    enable: true
    sinks:
      platform-opensearch: {} 

Обратите внимание! Если для kube-audit (k8s_audit) логов отключить направление в Opensearch, то они не будут доступны для просмотра на вкладке “События безопасности” дашбордов в графическом интерфейсе платформы “Штурвал”.

  • Для перенаправления логов в syslog добавьте в спецификацию сервиса блок shturval с требуемыми параметрами.
Пример перенаправления в syslog
shturval:
  k8s_audit:
    enable: true
    sinks:
      syslog:
        type: socket 
        inputs: 
         - <ваше значение параметра>
        address: <ваше значение параметра>
        mode: <ваше значение параметра>
Параметр Описание Тип данных Пример
k8s_audit.sinks.syslog.inputs Преобразования (transforms) для логов k8s_audit. Перечень transforms определены в кастомном ресурсе ClusterVectorPipeline с именем k8s-audit array dedot_specific_fields
k8s_audit.sinks.syslog.address Адрес syslog-сервера string 11.12.13.14:5000
k8s_audit.sinks.syslog.mode Тип протокола передачи string tcp

В примере выше приведена настройка с использованием socket. С другими способами конфигурации параметров для перенаправления логов на syslog-сервер вы можете ознакомиться в официальной документации.

  1. Когда настройка спецификации модуля завершена, сохраните внесенные изменения. Потребуется некоторое время для применения изменений.

Ротация логов

По умолчанию логи в кластере хранятся два дня. Для изменения этого периода вы можете поменять параметры модуля централизованного хранения логов (shturval-logs-operator) или настроить правило ротации в OpenSearch.

Ротация по времени

  • В кластере управления в боковом меню откройте раздел Сервисы и репозитории и перейдите на страницу Установленные сервисы.
  • Найдите модуль централизованного хранения логов (shturval-logs-operator), откройте карточку модуля и в блоке Спецификация сервиса укажите количество дней ротации логов, используя параметры inactiveAge и deleteAge.
Пример customvalues
cluster:
  ismpolicy:
    inactiveAge: <ваше значение параметра>
    deleteAge: <ваше значение параметра>
Параметр Описание Тип данных Пример
ismpolicy.inactiveAge Срок хранения индексов в днях. По умолчанию 1 день string 6d
ismpolicy.inactiveAge Количество дней, через которое индексы будут полностью удалены. По умолчанию 2 дня string 6d

Обратите внимание! Срок хранения индексов не может превышать количество дней, через которое индексы будут удалены.

  • Сохраните внесенные изменения для модуля.

Настройка ротации в OpenSearch

Выполните следующие действия:

  1. После завершения установки платформы авторизуйтесь в интерфейсе платформы, https://front.<ingress>. Так вам будет присвоен токен для авторизации в OpenSearch.

  2. Авторизуйтесь, нажав на кнопку log in with single sign-on.

  3. В модальном окне выберите explore on my own.

  4. Создайте правило для всех вновь созданных индексов. Для этого внизу левого меню найдите dev tools. В левой части консоли пропишите политику:

Политика
PUT _plugins/_ism/policies/remove_old_indexes
{
  "policy": {
    "description": "Removes old indexes",
    "default_state": "active",
    "states": [
      {
        "name": "active",
        "transitions": [
          {
            "state_name": "delete",
            "conditions": {
              "min_index_age": "2d"
            }
          }
        ]
      },
      {
        "name": "delete",
        "actions": [
          {
            "delete": {}
          }
        ],
        "transitions": []
      }
    ],
    "ism_template": {
      "index_patterns": [
        "*"
      ],
      "priority": 1000
    }
  }
}

Значение параметра “min_index_age” определяет время жизни старых индексов. Чем дольше хранится индекс, тем больше места на диске он занимает.

  1. Запустите применение манифеста, нажав на кнопку выполнения.

Просмотреть созданную политику можно в левом меню в разделе State Management Policy.

  1. Перейдите в разделе Index Management на страницу Indices.

  2. Слева от названия индекса выберите все неслужебные индексы (индексы, которые в начале названия не имеют точку), в выпадающем списке Actions выберите apply policy.

  3. Среди доступных политик выберите remove_old_indexes, нажмите apply.

Ротация логов по размеру

Есть возможность настроить ротацию индексов по размеру. Для этого необходимо в кластере управления настроить Opensearch:

  • Роль доступа к индексам
  • Политики ротации индексов
  • Шаблоны индексов
  • Первичные индексы
  • Индекса Паттерны
  • Настройка Vector в кластере управления
  1. Роли доступа к индексам

Нужно создать новую роль и привязку этой роли к существующему служебному пользователю clustername-vector для записи в алиасы индексов.

OpenSearchRole
apiVersion: opensearch.opster.io/v1
kind: OpensearchRole
metadata:
  labels:
    opensearch.org/cluster: logs
    shturval.tech/cluster: clustername
  name: clustername-vector-rollover
  namespace: shturval-logging
spec:
  indexPermissions:
    - allowedActions:
        - crud
      indexPatterns:
        - clustername_logs
        - clustername_auditd
        - clustername_journald
        - clustername_user-logs
        - clustername_events
        - clustername_kaudit
  opensearchCluster:
    name: logs
OpenSearchRoleBinding
apiVersion: opensearch.opster.io/v1
kind: OpensearchUserRoleBinding
metadata:
  labels:
    opensearch.org/cluster: logs
    shturval.tech/cluster: clustername
  name: clustername-vector-rollover
  namespace: shturval-logging
spec:
  opensearchCluster:
    name: logs
  roles:
    - clustername-vector-rollover
  users:
    - clustername-vector
  1. Политики ротации индексов

Пример кастомного ресурса для индекса кластера clustername_kaudit при достижении 1000Мб.

clustername-kaudit-rollover
apiVersion: opensearch.opster.io/v1
kind: OpenSearchISMPolicy
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-kaudit-rollover
  namespace: shturval-logging
spec:
  defaultState: rollover
  description: "Rollover kube-audit-clustername indexes on 1000mb"
  ismTemplate:
    indexPatterns:
      - 'clustername_kaudit-*'
    priority: 3000
  opensearchCluster:
    name: logs
  policyId: clustername_kaudit-rollover
  states:
    - actions:
        - rollover:
            minPrimaryShardSize: 1000mb
      name: rollover
      transitions:
        - conditions:
            minSize: 1000mb
          stateName: delete
    - actions:
        - delete: {}
      name: delete
  1. Шаблоны индекса
clustername-kaudit
apiVersion: opensearch.opster.io/v1
kind: OpensearchIndexTemplate
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-kaudit
  namespace: shturval-logging
spec:
  composedOf:
    - index_codec
  indexPatterns:
    - 'clustername_kaudit-*'
  name: clustername_kaudit
  opensearchCluster:
    name: logs
  priority: 3000
  template:
    settings:
      plugins.index_state_management.rollover_alias: "clustername_kaudit"
clustername-journald
apiVersion: opensearch.opster.io/v1
kind: OpensearchIndexTemplate
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-journald
  namespace: shturval-logging
spec:
  composedOf:
    - index_codec
  indexPatterns:
    - 'clustername_journald-*'
  name: clustername_journald
  opensearchCluster:
    name: logs
  priority: 3000
  template:
    settings:
      plugins.index_state_management.rollover_alias: "clustername_journald"
clustername-auditd
apiVersion: opensearch.opster.io/v1
kind: OpensearchIndexTemplate
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-auditd
  namespace: shturval-logging
spec:
  composedOf:
    - index_codec
  indexPatterns:
    - 'clustername_auditd-*'
  name: clustername_auditd
  opensearchCluster:
    name: logs
  priority: 3000
  template:
    settings:
      plugins.index_state_management.rollover_alias: "clustername_auditd"
clustername-logs
apiVersion: opensearch.opster.io/v1
kind: OpensearchIndexTemplate
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-logs
  namespace: shturval-logging
spec:
  composedOf:
    - index_codec
  indexPatterns:
    - 'clustername_logs-*'
  name: clustername_logs
  opensearchCluster:
    name: logs
  priority: 3000
  template:
    settings:
      plugins.index_state_management.rollover_alias: "clustername_logs"
clustername-user-logs
apiVersion: opensearch.opster.io/v1
kind: OpensearchIndexTemplate
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-user-logs
  namespace: shturval-logging
spec:
  composedOf:
    - index_codec
  indexPatterns:
    - 'clustername_user-logs-*'
  name: clustername_user-logs
  opensearchCluster:
    name: logs
  priority: 3000
  template:
    settings:
      plugins.index_state_management.rollover_alias: "clustername_user-logs"
clustername-events
apiVersion: opensearch.opster.io/v1
kind: OpensearchIndexTemplate
metadata:
  labels:
    opensearch.org/cluster: logs
  name: clustername-events
  namespace: shturval-logging
spec:
  composedOf:
    - index_codec
  indexPatterns:
    - 'clustername_events-*'
  name: clustername_events
  opensearchCluster:
    name: logs
  priority: 3000
  template:
    settings:
      plugins.index_state_management.rollover_alias: "clustername_events"
  1. Первичные индексы

Первичные индексы необходимо создать в интерфейсе командной строки или Curl-запросом:

Пример запрос на создание clustername_kaudit
PUT clustername_kaudit-000001
{
  "aliases": {
    "clustername_kaudit": {
      "is_write_index": true
    }
  }
}

  1. Индекс Паттерны
  • В главном меню перейти в раздел Management > Dashboards Management
  • Далее в левом меню перейти в подраздел Index pattern
  • Нажать кнопку Create index pattern
  • На первом шаге в строке поиска необходимо ввести имя Алиаса и нажать кнопку Next step
  • На втором шаге из выпадающего списка нужно выбрать пункт со значением @timestamp
  • При успешном создании индекс паттерна будет отображена таблица с списком всех полей этого индекса

Такую последовательность действий нужно произвести для следующих индексов кластера:

  • clustername_auditd
  • clustername_journald
  • clustername_logs
  • clustername_user-logs
  • clustername_events
  • clustername_kaudit
  1. Настройка Vector

Нужно внести изменение в Модуль локального сбора логов (SSC shturval-log-collector) для каждого типа логов, удалив -%Y.%m.%d в index, как приведено в примере ниже.

Пример сustomvalues
shturval:
  k8s_audit:
    enable: true
    sources: {}
    transforms: {}
    sinks:
      platform-opensearch:
        bulk:
          index: "{{ .Values.CLUSTER_NAME }}_kaudit" 

Внешнее хранилище данных

По умолчанию хранение данных OpenSearch организовано на локальных дисках. При необходимости вы можете подключить внешнее сетевое хранилище данных для OpenSearch. Это может быть полезным, когда предъявляются высокие требования к отказоустойчивости системы хранения или когда место под хранение на локальных дисках ограничено.

Требования к внешнему Storage
Требования IOPs Скорость чтения/записи
Минимальные 500 150 Мб/с
Рекомендуемые 16 К 1000 Мб/с

Операции чтения, их количество и объем данных может превышать операции записи из-за механизмом индексации и реплицирования.

Для оптимизации доступа к внешнему хранилищу используйте рекомендации настройки для скорости индексации из официальной документации:

  • установление количества реплик на 0 (index.number_of_replicas). Каждая реплика дублирует процесс индексирования, поэтому в результате отключение реплик повышается производительность кластера.
  • увеличение интервала обновления индексов. По умолчанию OpenSearch обновляет каждую секунду индексы, к которым был запрос за последние 30 секунд. При увеличении интервала обновления к API осуществляется меньше запросов.
  • увеличение размера translog (index.translog.flush_threshold_size). По умолчанию очистка translog выполняется, когда translog достигает 512 МБ. При увеличении значения параметра, очистка будет проходить реже.

Включение внешнего Storage после инсталляции кластера управления

Вы можете подключить и использовать внешний Storage сразу после инсталляции кластера управления платформы “Штурвал”. Для этого:

  1. При инсталляции кластера управления отключите Модуль централизованного хранения логов shturval-logs-operator. Для этого запустите команду инсталляции (stc install management), в которую подставьте свои значения параметров и укажите shturval-logs-operator в --disabled-system-services.
Пример команды инсталляции
./stc-2.10.0 install management \
 --license="ВВЕДИТЕ-ВАШУ-ЛИЦЕНЗИЮ" \
 --cluster-name=ВВЕДИТЕ-НАЗВАНИЕ-КЛАСТЕРА \
 --ssh-user=ИМЯ-СОЗДАННОГО-ПОЛЬЗОВАТЕЛЯ \
 --ssh-private-key=ВВЕДИТЕ-ПУТЬ-ДО-ПРИВАТНОГО-КЛЮЧА \
 --api-endpoint=ВВЕДИТЕ-IP-ДЛЯ-API-СЕРВЕРА \
 --master-nodes=ВВЕДИТЕ-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
 --worker-nodes=ВВЕДИТЕ-IP-ХОСТОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛОВ \
 --timezone=Europe/Moscow \
 --ingress-vip=ВВЕДИТЕ-IP-АДРЕС-ДЛЯ-INGRESS \
 --skip-check \
 --ntp-servers=ВВЕДИТЕ-АДРЕСА-NTP-СЕРВЕРОВ-ЧЕРЕЗ-ЗАПЯТУЮ-БЕЗ-ПРОБЕЛА \
 --disabled-system-services=shturval-logs-operator \

Подробнее об инсталляции на странице документации Все об инсталляции.

  1. В кластере управления создайте Storage Class с провиженером, совместимым с Kubernetes. В графическом интерфейсе платформы “Штурвал”:
  • Перейдите на страницу StorageClasses раздела Хранилище. Нажмите + Добавить StorageClass и на стрранице добавления укажите:
    • имя;
    • в спецификации выберите требуемый Provisioner Type;
    • задайте значения параметров.
  • Добавьте в кластер Storage Class, нажав Сохранить.
  1. Когда Storage Class добавлен, откройте страницу Установленные сервисы раздела Сервисы и репозитории, найдите Модуль централизованного хранения логов и перейдите к управлению. В блоке Спецификация сервиса добавьте необходимые параметры в customvalues, как в примере ниже.
Пример customvalues
customvalues:
  ADMIN_PASSWORD: <ваше значение параметра>
  ADMIN_USERNAME: <ваше значение параметра>
  BACKEND_PASSWORD: <ваше значение параметра>
  CLUSTER_NAME: <ваше значение параметра>
  DASHBOARDS_PASSWORD: <ваше значение параметра>
  FLUENTBIT_PASSWORD: <ваше значение параметра>
  OPENID_CLIENT_ID: <ваше значение параметра>
  OPENID_CLIENT_SECRET: <ваше значение параметра>
  OPENID_HOST_PREFIX: <ваше значение параметра>
  OPENID_REDIRECT_URL: <ваше значение параметра>
  cluster:
    nodePoolsMaster: 
      persistence:
        pvc:
          storageClass: <ваше значение параметра>
    general:
      monitoring:
        tlsConfig:
          insecureSkipVerify: true
    ismpolicy:
      deleteAge: <ваше значение параметра>
      enabled: true
      inactiveAge: <ваше значение параметра>
    security:
      configFiles:
        internal_users.yml:
          _meta:
            config_version: 2
            type: internalusers
          kibanaserver:
            description: OpenSearch Dashboards user
            hash: <ваше значение параметра>
            reserved: true
          operator-admin:
            backend_roles:
                - admin
            description: OpenSearch Admin user
            hash: <ваше значение параметра>
            reserved: true
      serviceMonitor:
        enable: false
  getcert:
    enable: false
  ingress:
    cluster:
        annotations:
          cert-manager.io/cluster-issuer: <ваше значение параметра>
        hosts:
            - <ваше значение параметра>
        tls:
            - hosts:
                - <ваше значение параметра>
          secretName: <ваше значение параметра>
    dashboards:
        annotations:
            cert-manager.io/cluster-issuer: <ваше значение параметра>
        hosts:
            - <ваше значение параметра>
        tls:
            - hosts:
                - <ваше значение параметра>
              secretName: <ваше значение параметра>
    
Параметр Описание Тип данных Пример
ADMIN_PASSWORD Пароль учетной записи для подключения к OpenSearch string Kdqq
ADMIN_USERNAME Имя пользователя учетной записи для подключения к OpenSearch string operator-admin
BACKEND_PASSWORD Пароль для доступа к backend OpenSearch string gar17u
CLUSTER_NAME Имя кластера управления string clustername
DASHBOARDS_PASSWORD Пароль для подключения к Grafana string Z7vzpGF
FLUENTBIT_PASSWORD Пароль для сбора логов string ntqKGW
OPENID_CLIENT_ID Идентификатор клиента OpenID, используемый для аутентификациии string opensearch
OPENID_CLIENT_SECRET Ключ секрета клиента OpenID, используемый для аутентификациии string n47wsy
OPENID_HOST_PREFIX Префикс хоста OpenID для формирования URL-адреса string auth.apps.ip-10-11-12-13.shturval.link
OPENID_REDIRECT_URL URL-адрес UI OpenSearch для перенаправления после успешной аутентификации string https://logs-dashboards.apps.ip-10-11-12-13.shturval.link
cluster.nodePoolsMaster.persistence.pvc.storageClass Имя созданного Storage Class string storagename
cluster.ismpolicy.deleteAge Срок хранения индексов в соответствии с политикой ISM string 1d
cluster.ismpolicy.inactiveAge Период времени, по истечении которого индекс считается неактивным string 0d
kibanaserver.hash BCrypt хэш пароля kibanaserver пользователей string $2a$12$4AcgAt3xwOWadA5s5blL6ev3
operator-admin.hash BCrypt хэш пароля admin пользователя string $2a$12$JJSXNfTowz7U
cluster.annotations.cert-manager.io/cluster-issuer Аннотация с именем ClusterIssuer с сетификатом для кластера Opensearch string corp-acme
dashboards.annotations.cert-manager.io/cluster-issuer Аннотация с именем ClusterIssuer с сетификатом для дашборда OpenSearch string corp-acme
cluster.hosts Список хостов кластера Opensearch array logs.apps.ip-10-11-11-13.shturval.link
cluster.tls.hosts Список хостов, для которых используется секрет с TLS-сертификатом array logs.apps.ip-10-11-11-13.shturval.link
cluster.tls.secretName Имя секрета, в котором будет сохранен TLS-сертификат для кластера OpenSearch string logs-tls
dashboards.hosts Список хостов для доступа к дашбордам OpenSearch array logs-dashboards.apps.ip-10-11-11-13.shturval.link
dashboards.tls.secretName Имя секрета, в котором будет сохранен TLS-сертификат для дашборда OpenSearch string logs-dashboards-tls
dashboards.tls.hosts Список хостов, для которых используется секрет array logs-dashboards.apps.ip-10-11-11-13.shturval.link
  • Если в установленных сервисах модуль отсутствует, перейдите на страницу Доступные чарты раздела Сервисы и репозитории. На вкладке shturval выберите чарт shturval-logs-operator и нажмите Установить.

Выберите необходимую версию чарта, а также неймспейс shturval-logging. После выбора версии чарта в правой части экрана отобразятся Доступные параметры конфигурации для сервиса (values). В блоке Спецификация сервиса добавьте параметры в customvalues, как в примере далее.

Пример customvalues
```yaml
customvalues:
  ADMIN_PASSWORD: <ваше значение параметра>
  ADMIN_USERNAME: <ваше значение параметра>
  BACKEND_PASSWORD: <ваше значение параметра>
  CLUSTER_NAME: <ваше значение параметра>
  DASHBOARDS_PASSWORD: <ваше значение параметра>
  FLUENTBIT_PASSWORD: <ваше значение параметра>
  OPENID_CLIENT_ID: <ваше значение параметра>
  OPENID_CLIENT_SECRET: <ваше значение параметра>
  OPENID_HOST_PREFIX: <ваше значение параметра>
  OPENID_REDIRECT_URL: <ваше значение параметра>
  cluster:
    nodePoolsMaster: 
      persistence:
        pvc:
          storageClass: <ваше значение параметра>
    general:
      monitoring:
        tlsConfig:
          insecureSkipVerify: true
    ismpolicy:
      deleteAge: <ваше значение параметра>
      enabled: true
      inactiveAge: <ваше значение параметра>
    security:
      configFiles:
        internal_users.yml:
          _meta:
            config_version: 2
            type: internalusers
          kibanaserver:
            description: OpenSearch Dashboards user
            hash: <ваше значение параметра>
            reserved: true
          operator-admin:
            backend_roles:
                - admin
            description: OpenSearch Admin user
            hash: <ваше значение параметра>
            reserved: true
      serviceMonitor:
        enable: false
  getcert:
    enable: false
  ingress:
    cluster:
        annotations:
          cert-manager.io/cluster-issuer: <ваше значение параметра>
        hosts:
            - <ваше значение параметра>
        tls:
            - hosts:
                - <ваше значение параметра>
          secretName: <ваше значение параметра>
    dashboards:
        annotations:
            cert-manager.io/cluster-issuer: <ваше значение параметра>
        hosts:
            - <ваше значение параметра>
        tls:
            - hosts:
                - <ваше значение параметра>
              secretName: <ваше значение параметра>
    
Параметр Описание Тип данных Пример
ADMIN_PASSWORD Пароль учетной записи для подключения к OpenSearch string Kdqq
ADMIN_USERNAME Имя пользователя учетной записи для подключения к OpenSearch string operator-admin
BACKEND_PASSWORD Пароль для доступа к backend OpenSearch string gar17u
CLUSTER_NAME Имя кластера управления string clustername
DASHBOARDS_PASSWORD Пароль для подключения к Grafana string Z7vzpGF
FLUENTBIT_PASSWORD Пароль для сбора логов string ntqKGW
OPENID_CLIENT_ID Идентификатор клиента OpenID, используемый для аутентификациии string opensearch
OPENID_CLIENT_SECRET Ключ секрета клиента OpenID, используемый для аутентификациии string n47wsy
OPENID_HOST_PREFIX Префикс хоста OpenID для формирования URL-адреса string auth.apps.ip-10-11-12-13.shturval.link
OPENID_REDIRECT_URL URL-адрес UI OpenSearch для перенаправления после успешной аутентификации string https://logs-dashboards.apps.ip-10-11-12-13.shturval.link
cluster.nodePoolsMaster.persistence.pvc.storageClass Имя созданного Storage Class string storagename
cluster.ismpolicy.deleteAge Срок хранения индексов в соответствии с политикой ISM string 1d
cluster.ismpolicy.inactiveAge Период времени, по истечении которого индекс считается неактивным string 0d
kibanaserver.hash BCrypt хэш пароля kibanaserver пользователей string $2a$12$4AcgAt3xwOWadA5s5blL6ev3
operator-admin.hash BCrypt хэш пароля admin пользователя string $2a$12$JJSXNfTowz7U
cluster.annotations.cert-manager.io/cluster-issuer Аннотация с именем ClusterIssuer с сетификатом для кластера Opensearch string corp-acme
dashboards.annotations.cert-manager.io/cluster-issuer Аннотация с именем ClusterIssuer с сетификатом для дашборда OpenSearch string corp-acme
cluster.hosts Список хостов кластера Opensearch array logs.apps.ip-10-11-11-13.shturval.link
cluster.tls.hosts Список хостов, для которых используется секрет с TLS-сертификатом array logs.apps.ip-10-11-11-13.shturval.link
cluster.tls.secretName Имя секрета, в котором будет сохранен TLS-сертификат для кластера OpenSearch string logs-tls
dashboards.hosts Список хостов для доступа к дашбордам OpenSearch array logs-dashboards.apps.ip-10-11-11-13.shturval.link
dashboards.tls.secretName Имя секрета, в котором будет сохранен TLS-сертификат для дашборда OpenSearch string logs-dashboards-tls
dashboards.tls.hosts Список хостов, для которых используется секрет array logs-dashboards.apps.ip-10-11-11-13.shturval.link

Обратите внимание! Для работы модуля должен быть включен Компонент модуля централизованного хранения логов (shturval-logs-operator-crds).

  1. Включите модуль в автоматическом режиме управления и нажмите Сохранить.

Переключение с локального хранилища на внешний Storage в кластере

Если требуется подключение внешнего Storage в равернутом кластере управления с работающим OpenSearch, выполните действия:

  1. В кластере управления создайте Storage Class с провиженером, совместимым с Kubernetes. В графическом интерфейсе платформы “Штурвал”:
  • Перейдите на страницу StorageClasses раздела Хранилище. Нажмите + Добавить StorageClass и на стрранице добавления укажите:
    • имя;
    • в спецификации выберите Provisioner Type;
    • задайте значения параметров.
  • Добавьте в кластер Storage Class, нажав Сохранить.
  1. Когда Storage Class добавлен, перейдите в раздел Сервисы и репозитории* на страницу Установленные сервисы, найдите Модуль централизованного хранения логов и нажмите переключатель, чтобы отключить сервис.

Обратите внимание! Миграция данных с локальных дисков платформы виртуализации в сетевое хранилище невозможна. После остановки модуля данные будут потеряны. При необходимости перед отключением Модуля централизованного хранения логов выгрузите критичные данные.

  1. Выполните шаги инструкции по вводу OpenSearch в эксплуатацию после отключения и перед включением модуля (п. 6 инструкции) в блоке Спецификация сервиса добавьте параметр storageClass в customvalues, как в примере далее.
Пример customvalues
customvalues:
  cluster:
    nodePoolsMaster: 
      persistence:
        pvc:
          storageClass: <ваше значение параметра>
Параметр Описание Тип данных Пример
storageClass Имя созданного Storage Class string storagename