Мониторинг etcd

В новой архитектуре YMatrix 5 для хранения конфигурации и состояния кластера используется etcd. etcd является критически важным компонентом: любые аномалии могут привести к нестабильности базы данных или даже к её аварийному завершению.
Данный документ описывает процесс установки и развертывания мониторинга etcd. Рекомендуется включать этот мониторинг в production-средах, так как корректное состояние etcd является обязательным условием стабильной работы базы данных.

1. Установка Prometheus (Пропустить, если уже установлен)

Перейдите на официальный сайт Prometheus и скачайте следующее:

Загрузите скачанный tar-архив на Linux-сервер. При возможности запустите Prometheus на выделенном сервере. При ограниченных ресурсах можно временно разместить его на резервном или мастер-узле.

$ tar xvfz prometheus-*.tar.gz

Извлечённую директорию prometheus-* можно переместить в /usr/local/.

2. Настройка Prometheus для сбора метрик etcd

Отредактируйте файл конфигурации:

$ cd prometheus-*
sudo vi prometheus.yml

В конце файла добавьте следующий контент:

  - job_name: "etcd"
    static_configs:
      - targets: ["172.31.33.128:4679", "172.31.45.253:4679", "172.31.35.134:4679"]

Массив targets необходимо заменить на фактические адреса всех узлов etcd в вашем кластере.
Эту информацию можно найти в файле /etc/matrixdb5/physical_cluster.toml на мастер-узле:

$ cat physical_cluster.toml
cluster_id = '79LhQxjuwmXgSWZCjcdigF'
supervisord_grpc_port = 4617
deployer_port = 4627
etcd_endpoints = ['http://10.0.159.1:4679', 'http://10.0.172.185:4679', 'http://10.0.170.90:4679', 'http://10.0.146.2:4679', 'http://10.0.146.195:4679', 'http://10.0.150.110:4679', 'http://10.0.169.149:4679']

Примечание!
Если файл /etc/matrixdb5/physical_cluster.toml отсутствует и процесс etcd не обнаружен, ваш кластер был развернут не с использованием архитектуры 5.x и не требует мониторинга etcd.

3. Запуск Prometheus

./prometheus --config.file=prometheus.yml

Примечание!
Как правило, Prometheus следует запускать как фоновую системную службу, настроив её как systemd-службу.

4. Установка Grafana (Пропустить, если уже установлена)

Следуйте официальной документации по установке Grafana.

Примечание!
Требуется версия Grafana 8.2.5 или выше.

5. Настройка дашборда etcd в Grafana

Сначала войдите в веб-интерфейс Grafana. Стандартный URL:

http://<IP_or_domain_of_the_host>:3000

5.1 Настройка источника данных (DataSource)


172.31.23.21:9090 — это порт сервиса Prometheus, развернутого на предыдущем шаге.

5.2 Импорт дашборда

Перейдите на сообщество Grafana:
https://grafana.com/grafana/dashboards/?search=Etcd+Cluster+Overview

На этой странице представлены дашборды, предоставленные сообществом:

Перейдите в нужный дашборд, чтобы получить его ID:

Примечание!
ID дашборда может со временем измениться. В настоящее время он равен 15308; пользователи должны проверять актуальный ID по результатам поиска.

Как показано ниже, импортируйте дашборд с ID 15308:

Затем выберите ранее настроенный источник данных и загрузите дашборд:

Если сервер находится во внутренней сети и импорт по ID 15308 невозможен, скачайте JSON-файл дашборда с другого компьютера, имеющего доступ в интернет, по этой ссылке и импортируйте его вручную:

6. Ключевые метрики в дашборде etcd

  • Статус службы etcd и количество участников
    • Has Leader должен быть Yes; в противном случае служба etcd недоступна.
    • Количество Members определяется автоматически по числу хостов в системе, максимум — 7.
  • Список кворумных участников и статус процессов
    • DB Capacity показывает доступное пространство. По умолчанию база данных etcd ограничена 2 ГБ. При слишком низком объёме свободного места база может быстро заполниться, что приведёт к сбою сервиса. Рекомендуется выполнить операции Compact или Defragment (аналогично Vacuum и Vacuum Full в PostgreSQL).
    • Mem Used отображает фактическое потребление памяти на каждом экземпляре etcd, обычно несколько сотен МБ.
  • Общий размер базы данных отражает рост данных etcd со временем. Аномальное увеличение может привести к достижению лимита размера базы.

Примечание!
Для получения дополнительных метрик и подробных пояснений обратитесь к официальной документации etcd.