Skip to content

Установка

Ссылка на публичный репозиторий: https://git.angara.cloud/gbgreenplum/greenplum.playbook.monitoring

Зависимости

Перед установкой плейбука GP_mntr необходима установка следующих плейбуков:

Системные требования

  • Управляющий хост - необходима актуальная версия Ansible v.2.9+
  • Поддерживаемые операционные системы: CentOS 7, CentOS 8, RHEL 8, Ubuntu 22.04+
  • Сетевое подключение - SSH-доступ между управляющим хостом и целевыми серверами
  • Ресурсы сервера - достаточные вычислительные ресурсы для работы компонентов мониторинга

Установка через Ansible

Плейбук состоит из следующих ролей и тегов:

Роли плейбука:

  • docker_install - установка Docker для запуска сервисов Prometheus, Grafana и Alertmanager в контейнерах
  • node_exporter - установка Node Exporter для сбора метрик на всех серверах кластера и сервере мониторинга
  • sql_exporter - установка SQL Exporter для сбора метрик базы данных GreenPlum на мастер-серверах
  • sql_exporter_mon - установка SQL Exporter для сбора метрик из базы данных мониторинга на API-сервере
  • prometheus - установка сервера мониторинга Prometheus для сбора и хранения метрик
  • alertmanager - установка системы алертинга Alertmanager
  • grafana - установка системы визуализации и построения дашбордов Grafana

Теги плейбука:

  • docker_install - установка Docker
  • exporters - установка всех экспортеров метрик (Node Exporter и SQL Exporter)
  • node_exporter - установка Node Exporter
  • sql_exporter - установка SQL Exporter
  • monitoring - установка Prometheus, Alertmanager, Grafana
  • prometheus - установка Prometheus
  • alertmanager - установка Alertmanager
  • grafana - установка Grafana

Перед запуском отредактировать inventory-файл в соответствии с комментариями в файле.

Пример inventory-файла

[master]
# Valid is ONLY ONE master! Other will be ignored!
gp-mstr ansible_host=192.168.1.11 ansible_ssh_user=user

[standbymaster]
gp-sbmr ansible_host=192.168.1.12 ansible_ssh_user=user

[segments]
gp-seg1 ansible_host=192.168.1.21 ansible_ssh_user=user
gp-seg2 ansible_host=192.168.1.22 ansible_ssh_user=user
gp-seg3 ansible_host=192.168.1.23 ansible_ssh_user=user

[masters:children]
master
standbymaster

[greenplum_cluster:children]
masters
segments

[api_server]
gp-hook ansible_host=192.168.1.31 ansible_ssh_user=user

[monitoring_server]
gp-mntr ansible_host=192.168.1.41 ansible_ssh_user=user

[all:vars]

### Настройка роли Prometheus
## Какие настроить экспортеры, возможные значения - 'True' и 'False':
node_exporter=True
sql_exporter=True
pxf_exporter=True
## На каком QDN-адресе будет слушать web Prometheus (параметр `--web.external-url` сервера)
# url_prometheus='www.prometheus.gb.com'

### Настройка роли Alertmanager
smtp_smarthost="smtp.gmail.com:587"
smtp_from="your_mail@gmail.com"
smtp_auth_username="your_mail@gmail.com"
smtp_auth_password="your_password"
email_to="support@gmail.com"  ## Адреса получателей алетров необходимо указывать через запятую.

### Настройка роли Grafana
admin_db_user=gpadmin
gp_base=gpdb
metric_db_user=pghookuser
metric_base=metricdb

## Параметры создания ресурсной группы в роли SQL Exporter
group_name=mon_group
concurrency=10
cpu_rate_limit=5
memory_limit=5
memory_shared_quota=40
memory_spill_ratio=40

Примеры значений переменных см. на странице Общие сведения.

Для выполнения полной установки использовать команду:

ansible-playbook playbook.yml

Для выполнения конкретного этапа использовать опцию --tags с указанием соответствующего тега:

ansible-playbook playbook.yml --tags exporters

Для исключения определенного этапа использовать опцию --skip-tags с указанием соответствующего тега:

ansible-playbook playbook.yml --skip-tags sql_exporter

Для выполнения конкретной роли использовать опцию -t:

ansible-playbook playbook.yml -t grafana