Установка
Ссылка на публичный репозиторий: https://git.angara.cloud/gbgreenplum/greenplum.playbook.monitoring
Зависимости
Перед установкой плейбука GP_mntr необходима установка следующих плейбуков:
- GP_core, инструкцию по установке см. на соответствующей странице
- GP_api, инструкцию по установке см. на соответствующей странице
- GP_hooklib, инструкцию по установке см. на соответствующей странице
- GP_metr_mon, инструкцию по установке см. на соответствующей странице
Системные требования
- Управляющий хост - необходима актуальная версия 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- установка системы алертинга Alertmanagergrafana- установка системы визуализации и построения дашбордов Grafana
Теги плейбука:
docker_install- установка Dockerexporters- установка всех экспортеров метрик (Node Exporter и SQL Exporter)node_exporter- установка Node Exportersql_exporter- установка SQL Exportermonitoring- установка Prometheus, Alertmanager, Grafanaprometheus- установка Prometheusalertmanager- установка Alertmanagergrafana- установка 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
Примеры значений переменных см. на странице Общие сведения.
Для выполнения полной установки использовать команду:
Для выполнения конкретного этапа использовать опцию --tags с указанием соответствующего тега:
Для исключения определенного этапа использовать опцию --skip-tags с указанием соответствующего тега:
Для выполнения конкретной роли использовать опцию -t: