Мониторинг 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, ваш кластер был развернут не с использованием архитектуры YMatrix 5.0 и не требует мониторинга etcd.

3 Запуск Prometheus

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

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

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

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

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

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

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

http://<IP_or_hostname_of_Grafana_server>: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 ГБ. При слишком низком свободном месте база может быстро заполниться, что приведёт к сбою etcd. Рекомендуется выполнить операции Compact или Defragment (аналогично Vacuum и Vacuum Full в PostgreSQL).
    • Mem Used отображает использование памяти на каждом экземпляре etcd, обычно несколько сотен МБ.
  • Общий размер базы данных
    Этот график показывает рост данных etcd во времени. Аномальное увеличение может привести к достижению лимита размера базы.

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