2. Установка и настройка РБДМонитор

Все компоненты РБДМонитор можно устанавливать на один сервер.

Примечание

Последовательность запуска компонентов важна. Первым необходимо запустить сервер мониторинга, после него запустить сервер СУБД.

2.1. Установка сервера мониторинга

Примечание

Все элементы сервера мониторинга, а именно Prometheus, Alertmanager, Grafana, Ред База Данных и Loki должны быть установлены на одну машину или иметь между собой связь по сети.

Установка компонентов сервера мониторинга с помощью rpm-пакета

Примечание

Из rpm-пакета установится Prometheus, Alertmanager, Grafana и Loki. Ред Базу Данных необходимо установить самостоятельно, следуя инструкции в Руководстве администратора.

  1. Скачайте rpm-пакет сервера мониторинга с официального сайта.

  2. Установите компоненты сервера мониторинга, выполнив следующую команду:

dnf install <путь_до_rpm_пакета_rdbmonitor-server>

Компоненты сервера мониторинга, входящие в состав rpm-пакета, будут расположены по следующим путям:

  • Prometheus - /etc/prometheus/;

  • Alertmanager - /etc/prometheus/;

  • Grafana - /etc/grafana/;

  • Loki - /etc/loki/.

Настройка сервера мониторинга

Примечание

Последовательность запуска компонентов важна. Первым необходимо запустить сервер мониторинга, после него запустить сервер СУБД.

Ред База Данных

Запустите Ред Базу Данных следующей командой:

systemctl start firebird

Базу данных для хранения пользовательских запросов нужно создать самостоятельно на Cервере мониторинга, то есть там, где будут запущены Prometheus, Grafana и СУБД:

  1. Создайте каталог /db:

    sudo mkdir /db
    
  2. Назначьте на каталог /db права пользователю reddatabase - для Ред Базы Данных 5.0 и выше, или пользователю firebird:

    sudo chown "имя_пользователя" /db/
    

3. Настройте скрипт create_tables.sql, расположенный по пути /opt/rdbmonitor/server/rdb/create_tables.sql. В скрипте необходимо указать пользователя, от имени которого будет создана база данных и каталог, где она будет расположена.

Настройка скрипта:

CREATE DATABASE 'localhost:/db/statements.fdb'
   USER '<имя пользователя>' PASSWORD '<пароль>';
...

Запуск скрипта:

<каталог Ред Базы Данных>/bin/isql -i <путь до create_tables.sql>

По умолчанию база будет создана по пути /db/statements.fdb. По умолчанию доступ к СУБД с базой данных пользовательских запросов осуществляется по порту 3050.

Loki

Запуск Loki выполняется следующей командой:

sudo systemctl start loki.service

Prometheus

Prometheus собирает и хранит метрики СУБД. Но обращаться к наблюдаемой базе напрямую он не может, поэтому для передачи данных от СУБД к Prometheus используется Экспортёр.

Для получения уведомлений о состоянии наблюдаемой базы нужно настроить правила проверки значений собранных метрик в секции rule_files. Prometheus проверяет собранные метрики на соблюдение указанным правилам с заданной периодичностью. Если правило соблюдается (например, правило для проверки загрузки процессора rate(rdb_system_cpu_times[1m]) * 100 > 20), то Prometheus сообщит об этом Alertmanager, отправив предупреждение. Alertmanager сформирует из предупреждений уведомления и отправит их на указанный адрес.

Можно использовать готовый набор правил уведомлений, поставляемый вместе с РБДМонитор. Файлы rules.yml и cluster_rules.yml, расположенные по пути /opt/RedMonitor/server/prometheus/, необходимо предварительно скопировать в корневой каталог Prometheus.

Для настройки Prometheus используется файл prometheus.yml. При установке через rpm-пакет файл будет расположен по пути /etc/prometheus/prometheus.yml.

Пример настройки prometheus.yml:

global:
  scrape_interval: 20s
  scrape_timeout: 15s
  evaluation_interval: 30s

scrape_configs:
  - job_name: "RDBMonitor"
    static_configs:
      - targets: ["192.168.0.100:3051", "192.168.0.100:8100", "192.168.0.150:8000"]

rule_files:
  - rules.yml

# alerting:
#   alertmanagers:
#     - static_configs:
#       - targets: ["localhost:9093"]

Файл prometheus.yml разделён на четыре основные секции: global, rule_files, scrape_configs, alerting.

Секция global

Настройки, заданные в секции global по умолчанию распространяются на весь файл.

global:
  scrape_interval: 10s
  scrape_timeout: 10s
  evaluation_interval: 30s

Параметр scrape_interval определяет, как часто нужно собирать метрики.

Параметр scrape_timeout устанавливает время ожидания получения метрик.

Параметр evaluation_interval устанавливает интервал, с которым собранные метрики будут проверяться на соответствие правилам, указанным в секции rule_files.

Секция rule_files

Примечание

Файл rules.yml необходимо скопировать из /opt/RedMonitor/server/prometheus/ в корневой каталог Prometheus.

В секции rule_files указывается список файлов с правилами, на соответствие которым нужно проверять собранные метрики:

rule_files:
  - rules.yml
  - "side/*_rules.yml"
Секция scrape_configs

В секции scrape_configs задаются настройки для сбора метрик:

Пример настройки секции:

scrape_configs:
  - job_name: "RDBMonitor"
    scrape_interval: 15s
    scrape_timeout: 10s
    static_configs:
      - targets: ["192.168.0.100:3051", "192.168.0.100:8100", "192.168.0.150:8000"]

Предупреждение

Параметр job_name задаёт имя группы экспортёров. Экспортёры, входящие в группу, определяются в параметре targets. Изменять значение параметра job_name нельзя.

Параметр scrape_interval определяет, как часто должны собираться метрики. По умолчанию принимает значение, установленное в секции global.

Параметр scrape_timeout устанавливает время ожидания получения метрик. По умолчанию принимает значение, установленное в секции global.

Параметр targets определяет сетевые узлы экспортёров, к которым будет обращаться Prometheus, чтобы получить метрики. Портом экспортёра по умолчанию является 3051.

Секция alerting

Секция alerting определяет сущности Alertmanager, в которые Prometheus будет отправлять предупреждения, когда собранные метрики соблюдают правила, указанные в секции rule_files.

Примечание

Если нет необходимости в уведомлениях, то эту секцию нужно оставить закомментированной.

alerting:
  alertmanagers:
    - static_configs:
        - targets: ["localhost:9093"]
Запуск Prometheus

Запуск Prometheus осуществляется следующей командой:

sudo -u prometheus ./prometheus --config.file="prometheus.yml"

Или можно запустить службу:

sudo systemctl start prometheus

Более подробно о настройке Prometheus можно узнать на официальном сайте – prometheus.io.

Alertmanager

Примечание

Если уведомления не нужны, то этот пункт можно пропустить.

Чтобы получать уведомления, необходимо настроить Alertmanager. Для этого используется файл /etc/alertmanager/alertmanager.yml.

Пример конфигурации Alertmanager:

global:
  smtp_require_tls: true
  smtp_from: 'sender@example.com'
  smtp_smarthost: 'smtp.example.com:587'
  smtp_auth_username: 'user_name'
  smtp_auth_password: 'user_password'

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
  receiver: 'receiver_name'

 receivers:
   - name: 'receiver_name'
     email_configs:
     - to: 'receiver@example.com'

 inhibit_rules:
   - source_match:
       severity: 'critical'
     target_match:
       severity: 'warning'

Файл делится на следующие основные секции: global, route, receivers, inhibit_rules.

Секция global

В секции global указывается, куда отправлять данные. Пример настройки секции для отправки уведомлений на почту:

global:
  smtp_require_tls: true
  smtp_from: 'sender@example.com'
  smtp_smarthost: 'smtp.example.com:587'
  smtp_auth_username: 'user_name'
  smtp_auth_password: 'user_password'

Параметр smtp_require_tls указывает, использовать ли протокол TLS.

Параметр smtp_smarthost устанавливает адрес сервера почты.

Параметр smtp_from указывает почту отправителя.

Параметр smtp_auth_username определят имя пользователя для аутентификации на сервере почты.

Параметр smtp_auth_password определят пароль пользователя для аутентификации на сервере почты.

Секция route

Секция route определяет маршруты уведомлений в виде структуры дерева. Маршрут - это список проверок, через которые проходит уведомление для нахождения получателя.

route:
 group_by: ['alertname']
 group_wait: 30s
 group_interval: 5m
 repeat_interval: 1h
 receiver: 'receiver_name'

Параметр group_by определяет список меток, по которым происходит группировка входящих уведомлений.

Параметр group_wait устанавливает время ожидания перед отправкой новой группы уведомлений.

Параметр group_interval задаёт время между отправкой уведомлений по группам.

Параметр repeat_interval задаёт время между повторной отправкой уведомлений.

Параметр receiver определяет получателя.

Секция receivers

В секции receivers указывается список получателей уведомлений.

receivers:
  - name: 'receiver_name'
    email_configs:
    - to: 'receiver@example.com'

Параметр name указывает имя получателя.

Параметр to определяет почту получателя.

Секция inhibit_rules

Секция inhibit_rules устанавливает правила, по которым уведомления будут отключаться.

inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'

Параметры source_matchers и target_matchers это списки меток со значениями. Те предпреждения, значения меток которых совпадают с метками из параметра source_matchers, блокируют отправку уведомления для тех предупреждений, значения меток которых совпадают с метками из параметра target_matchers.

Включение уведомлений

После настройки alertmanager.yml нужно указать в настройках Prometheus адрес, по которому доступен Alertmanager:

alerting:
  alertmanagers:
    - static_configs:
      - targets:
        - localhost:9093

Далее нужно добавить правила, по которым будут приходить уведомления. Можно использовать готовый набор правил уведомлений, поставляемый вместе с РБДМонитор. Файлы rules.yml и cluster_rules.yml, расположенные по пути /opt/RedMonitor/server/prometheus/, необходимо предварительно скопировать в корневой каталог Prometheus.

Файл rules.yml содержит правила для следующих предупреждения:

  • Высокое потребление процессора в режиме ядра (СУБД);

  • Высокое потребление процессора (СУБД);

  • Ухудшение производительности (СУБД);

  • Увеличение нагрузки (СУБД);

  • Среднее время выполнения запроса увеличилось (СУБД);

  • Высокая нагрузка на процессор (Сервер);

  • Насыщение процессора (Сервер);

  • Мало места в файловой системе (Сервер);

  • Высокая утилизация диска по времени (Сервер);

  • Высокое потребление памяти (Сервер);

  • Высокое использование объёма подкачки (Сервер);

  • Наличие процесса подкачки (Сервер);

  • Экспортёр не ответчает (Экспортёр).

Файл cluster_rules.yml содержит правила для предупреждений о работе кластера:

  • Нет ведущего узла в кластере;

  • Узел стал мастером;

  • Узел стал репликой;

  • Узел долго находится в состоянии standalone;

  • Уменьшение количества узлов кластера;

  • Увеличение количества узлов кластера;

  • Уменьшение количества баз данных кластера;

  • Увеличение количества баз данных кластера;

  • Кластер перешёл в режим обслуживания;

  • Узел не синхронизирован с мастером;

  • Время работы узла было сброшено;

  • Длительное отсутствие синхронизации базы данных;

  • Критическое расхождение номеров журналов репликации;

  • Узел не может стать ведущим;

  • Высокое время опроса статуса кластера;

  • Высокое время обновления информации об узле.

Нужно указать в настройках Prometheus путь к файлу с правилами. Можно указать несколько файлов с настройками предупреждений:

rule_files:
  - rules.yml
  - cluster_rules.yml

Более подробно о настройке Alertmanager можно узнать в официальной документации.

Запуск Alertmanager

Запуск Alertmanager осуществляется следующей командой:

sudo -u alertmanager ./alertmanager --config.file="alertmanager.yml"

Или можно запустить службу Alertmanager:

sudo systemctl start alertmanager

Grafana

Запуск Grafana выполняется командой:

sudo systemctl start grafana-server

Для настройки откройте в браузере страницу запущенной Grafana (по умолчанию http://localhost:3000/). По умолчанию для входа используется логин admin и пароль admin. Чтобы установить источник данных, перейдите в настройки. Во вкладке Connections \(\to\) Data sources нажмите на кнопку Add data source. В открывшемся окне из списка источников выберите Prometheus. Укажите URL-адрес для доступа к Prometheus (по умолчанию http://localhost:9090/). Необходимо настроить интервал сбора метрик. Для параметра Scrape interval укажите число, совпадающее со значением параметра scrape_interval в конфигурационном файле Prometheus (prometheus.yml). Нажмите на кнопку Save & test.

Также в качестве источника нужно установить базу данных, в которой хранятся пользовательские запросы. Для этого во вкладке Data sources нажмите на кнопку Add new data source. В открывшемся окне из списка источников выберите Ред База Данных. Заполните поля для соединения с базой данных и нажмите на кнопку Save & test.

Для хранения логов операционной системы и СУБД также добавьте Loki в качестве источника данных. Во вкладке Data sources нажмите на кнопку Add data source. В открывшемся окне из списка источников выберите Loki. Укажите URL-адрес для доступа к Loki (по умолчанию http://127.0.0.1:3100) и нажмите на кнопку Save & test.

В Grafana версии 12 и выше можно конвертировать правила предупреждений Prometheus в уведомления с помощью Grafana Alerting.

2.2. Установка и настройка сервера СУБД

Примечание

Все элементы сервера СУБД, а именно Ред База Данных (наблюдаемая СУБД), Экспортёр и Promtail должны быть установлены на одну машину.

Установка компонентов сервера СУБД с помощью rpm-пакета

Примечание

Из rpm-пакета установится Экспортёр и Promtail. Ред Базу Данных необходимо установить самостоятельно.

  1. Установите Ред Базу Данных, следуя инструкции в Руководстве администратора.

  2. Скачайте rpm-пакет сервера СУБД с официального сайта.

  3. Установите компоненты сервера СУБД, выполнив следующую команду:

dnf install <путь_до_rpm_пакета_rdbmonitor-client>

Компоненты сервера СУБД, входящие в состав rpm-пакета, будут расположены по следующим путям:

  • Экспортёр - /opt/rdbmonitor/client/exporter/.

  • Promtail - /opt/rdbmonitor/client/promtail/.

Настройка компонентов сервера СУБД

Агрегатный аудит

Агрегатный аудит собирает метрики, которые агрегируются по событиям и транзакциям. Метриками являются следующие значения запросов: read, write, fetch, mark и время выполнения. Аудит хранит значения метрик во время работы сервера. При выключении/перезагрузке сервера сохранённая статистика будет очищена.

  1. Для настройки агрегатного аудита нужно создать конфигурационный файл в корневом каталоге наблюдаемой СУБД, например, aggtrace.conf, и указать в нём следующие параметры:

database
{
  format = 3
  max_log_size = 4096
}

database = /путь/к/бд
{
  enabled = true
  format = 3
  max_sql_length = 0
  max_plan_length = 0
}

Файл конфигурации состоит из двух секций. В глобальной секции (database) указываются настройки для плагина aggtrace. Указанные параметры распространяющиеся на все базы данных. В ней должен быть указан параметр max_log_size.

В секции database = /путь/к/бд указываются параметры, распространяющиеся на заданную базу данных.

Опция enabled = true включает ведение аудита.

Опция format = aggtrace указывает, что нужно использовать агрегатный аудит.

Опция max_sql_length определяет максимальную допустимую длину SQL-запроса, которая может храниться. Запросы, длина которых больше, будут обрезаны до указанного значения. По умолчанию значение равно 0. Значение 0 указывает, что длина не ограничена.

Опция max_plan_length определяет максимальную допустимую длину плана SQL-запроса, которая может храниться. Планы, длина которых больше, будут обрезаны до указанного значения. По умолчанию значение равно 0. Значение 0 указывает, что длина не ограничена.

Опция max_log_size задает максимальный размер log-файлов в мегабайтах. Допускается значение от 256 до 4096. Значение параметра по умолчанию равно 2048.

Настройки агрегатного аудита перечитываются для каждого соединения.

Вывод собранных метрик (утилита agg_printer)

Утилита выводит статистику, собранную агрегатным аудитом. По умолчанию вывод осуществляется в консоль в формате JSON.

aggprint {--db <базы данных> | --file <имя файла агрегатного аудита>} [--tmp <каталог временных файлов>] [--out <путь к файлу вывода>] [--action {print-path | dump}]

Опции утилиты:

  • -h[elp] - выводит справку;

  • --db <база данных> - полный путь к базе данных, по которой нужно вывести статистику;

  • --file <имя файла агрегатного аудита> - файл агрегатного аудита, из которого нужно вывести статистику; по умолчанию файл ищется в каталоге /tmp/reddatabase/aggtrace, если файл расположен в другом каталоге, необходимо указать опцию --tmp;

  • --tmp <каталог временных файлой> - определяет путь к каталогу, где хранятся временные файлы агрегатного аудита;

  • --out <путь к файлу вывода> - вывесть собранную статистику в указанный файл;

  • --action <режим работы> - определяет режим работы утилиты:

    • print-path - выводит в консоль путь до файла, в котором собрана статистика для указанной базы данных;

    • dump - является режимом по умолчанию, выводит собранную статистику.

Ред База Данных

На Наблюдаемой СУБД для сбора метрик пользовательских запросов необходимо в firebird.conf настроить параметры TracePlugin и AuditTraceConfigFiles:

TracePlugin = aggtrace
AuditTraceConfigFiles = fbtrace.conf

Включите плагин агрегатного аудита в plugins.conf:

Plugin = aggtrace {
  Module = /opt/rdbmonitor/client/aggtrace
  Required = true
}

После настройки запустите Ред Базу Данных:

systemctl start firebird

Экспортёр

Экспортёр должен находиться на том же устройстве, где и наблюдаемая СУБД. Для настройки параметров экспортёра используется файл exporter_conf.json, расположенный в /opt/rdbmonitor/client/exporter/exporter_conf.json.

Структура файла exporter_conf.json:

{
 "exporter": {
   "port": <порт экспортёра>,
   "rdb_lock_print": {
     "enabled": true
   },
   "scrape_system":{
     "enabled": false
   },
   "scrape_atrace": {
     "enabled": true,
     "filters": "<путь к файлу с настройками фильтрации>"
   },
   "scrape_mon_tables":{
     "enabled": true
   },
   "user_metrics": {
     "enabled": true,
     "timeout": <таймаут сбора метрики в секундах>,
     "max_metric_labels": <максимальное кол-во метрик>,
     "max_user_metrics": <максимальное кол-во пользовательских метрик>,
     "max_metric_data_blocks": <максимальное кол-во блоков метрики>
   }
 },
 "promtail": {
   "host": "<хост наблюдаемого сервера>"
 },
 },
  "dictserver": {
   "text_scrape_interval": <задержка между операциями вычитывания>,
   "host": "<хост базы данных>",
   "port": <порт базы данных>,
   "database": "/db/statements.fdb",
   "user": "<пользователь>",
   "password": "<пароль>",
   "Auth_plugins": ["<плагин>", ..., "<плагин>"],
   "loki": {
     "port": <порт loki>
   }
 },
 "RedDatabase": {
   "host": "<хост СУБД>",
   "port": <порт СУБД>,
   "user": "<логин>",
   "password": "<пароль>",
   "folder_path": "<путь к папке установки RedDatabase>",
   "Auth_plugins": ["<плагин>", ..., "<плагин>"]
 },
 "databases": {
   "<псевдоним>": {
     "alias": "<алиас>"
   }
 }
}

Для каждого параметра должно быть указано значение. Значения строковых параметров должны заключаться в двойные кавычки. Значения для целочисленных параметров нужно указывать без кавычек.

Параметры конфигурации:

В секции exporter обязательно должны быть указаны все параметры, иначе экспортёр не запустится. Параметры секции:

  • port - Порт, на котором работает экспортёр, по умолчанию 3051. Параметр имеет целочисленный тип.

  • rdb_lock_print - Определяет, собирать ли данные файла блокировок. Аналогично rdb_lock_print -n -l -o -c. По умолчанию установлено значение true.

  • scrape_system - Определяет, собирать ли информацио об операционной системе. По умолчанию установлено значение true.

  • scrape_mon_tables - Определяет, собирать ли данные из таблиц мониторинга. По умолчанию установлено значение true.

  • scrape_atrace - Определяет, собирать ли данные с помощью aгрегирующего трейса. По умолчанию установлено значение false. Агрегатный аудит необходимо предварительно настроить по инструкции. Опция filters определяет путь к предварительно созданному файлу с настройками фильтрации filters.ini. Собираться будут только запросы, характеристики которых превышают указанные значения параметров в filters.ini. Например, если time = 100, то соберутся только запросы, выполняющиеся дольше 100 миллисекунд.

    Структура filters.ini:

    [limits.statements]
    <параметр>
    ...
    <параметр>
    

    Параметры фильтрации:

    • time - время выполнения запроса в миллисекундах;

    • finish - количество завершённых запросов (событий finish);

    • finish failed - количество неудачно завершённых запросов;

    • start - количество запущенных запросов (событий start);

    • prepare - количество подготовленных запросов (событий prepare);

    • free - количество освобождённых запросов (событий free);

    • reads - количество страниц, считанных с диска;

    • marks - количество отмеченных (mark) страниц;

    • writes - количество страниц, записанных диск;

    • fetches - количество страниц, считанных из страничного кэша (fetch);

    • mem use by sort in total - количество байт, выделенных под сортировку;

    • mem use by sort in cache - количество байт, выделенных под сортировку в кеше;

    • mem use by sort in disk - количество байт, выделенных под сортировку на диске.

    Значения всех параметров фильтрации должны быть целым положительным числом.

    Пример настройки filters.ini:

    [limits.statements]
    time = 60000
    finish = 100
    
  • user_metrics - определяет, собирать ли пользовательские метрики. По умолчанию выключено ("enabled": false). Опция timeout указывает таймаут в секундах, по истечении которого метрика перестанет запрашиваться, значение должно быть дробным числом (по умолчанию значение 0.1). Опция max_metric_labels определяет максимальное количество собираемых метрик (по умолчанию значение 5). Опция max_user_metrics максимальное количество пользовательских метрик (по умолчанию значение 100). Опция max_metric_data_blocks максимальное количество блоков метрики (по умолчанию значение 10).

Секция promtail:

  • host - определяет ip-адрес устройства наблюдаемого сервера, указанное значение должно совпадать со значением в конфигурационном файле Prometheus. параметр имеет строковый тип.

Секция dictserver:

  • text_scrape_interval - задержка в секундах между операциями вычитывания; значение должно быть целым или дробным положительным числом больше 0.1; по умолчанию значение 5;

  • host - определяет ip-адрес устройства, на котором работает база даннных для пользовательских запросов; параметр имеет строковый тип;

  • port - порт, на котором работает база даннных для пользовательских запросов, по умолчанию 3050; параметр имеет целочисленный тип;

  • database - псевдоним базы данных пользовательских запросов;

  • user - имя пользователя, от которого экспортёр будет подключаться к базе данных пользовательских запросов; параметр имеет строковый тип;

  • password - пароль пользователя для подключения к базе данных пользовательских запросов; параметр имеет строковый тип;

  • Auth_plugins - определяет список плагинов, которые используются для аутентификации при подключении к базе данных пользовательских запросов, в качестве разделителя используется запятая, каждый плагин должен заключаться в двойные кавычки; cписок заключается в квадратные скобки;

  • loki - определяет порт, на котором работает Loki. По умолчанию 3100.

Секция RedDatabase:

  • host- определяет ip-адрес устройства, на котором работает наблюдаемая СУБД; параметр имеет строковый тип;

  • port - порт, на котором работает наблюдаемая СУБД; параметр имеет целочисленный тип;

  • login - имя пользователя, от которого экспортёр будет подключаться к СУБД. Желательно использовать пользователя с административными привилегиями для мониторинга всех подключений; параметр имеет строковый тип;

  • password - пароль пользователя; параметр имеет строковый тип;

  • folder_path - путь к установочной папке RedDatabase;

  • Auth_plugins - определяет список плагинов, которые экспортёр использует для аутентификации, в качестве разделителя используется запятая, каждый плагин должен заключаться в двойные кавычки; cписок заключается в квадратные скобки;

Секция databases определяет список баз данных для мониторинга, указывающийся следующим образом:

"databases": {
 "<псевдоним>": {
  "alias": "<алиас>"
 },
 ...
}

Где:

  • псевдоним - уникальный псевдоним базы данных;

  • alias - псевдоним базы данных, который используется СУБД.

Пример настроенного файла exporter_conf.json:

{
   "exporter": {
      "port": 3051,
      "rdb_lock_print": {
         "enabled": true
      },
      "scrape_system": {
         "enabled": true
      },
      "scrape_atrace": {
         "enabled": true,
         "filters": "/opt/rdbmonitor/client/exporter/filters.ini"
      },
      "scrape_mon_tables": {
         "enabled": true
      },
      "user_metrics": {
         "enabled": false,
         "timeout": 0.1,
         "max_metric_labels": 5,
         "max_user_metrics": 100,
         "max_metric_data_blocks": 10
      }
   },
   "promtail": {
      "host": "127.0.0.1"
   },
   "dictserver": {
      "text_scrape_interval": 5,
      "host": "127.0.0.1",
      "port": 3050,
      "database": "/db/statements.fdb",
      "user": "SYSDBA",
      "password": "masterkey",
      "Auth_plugins": ["Srp"],
      "loki": {
         "port": 3100
      }
   },
   "RedDatabase": {
      "host": "127.0.0.1",
      "port": 3050,
      "user": "SYSDBA",
      "password": "masterkey",
      "folder_path": "/opt/RedDatabase",
      "Auth_plugins": ["Srp"]
   },
   "databases": {
      "employee_db": {
         "alias": "employee"
      }
   }
}

Предупреждение

Перед запуском экспортёра убедитесь, что Ред База Данных запущена. В конфигурационном файле экспортёра в секции scrape_atrace должно быть установлено значение "enabled": true.

Экспортёр и Promtail запускаются вместе с помощью systemd:

systemctl start rdbmonitor-client.target
systemctl stop rdbmonitor-client.target

2.3. Установка на один сервер

Все компоненты РБДМонитор возможно установить на один сервер, следуя инструкциям выше. При установке на один сервер также важен порядок запуска компонентов.

Запустите все компоненты РБДМонитор, выполнив следующее:

  1. Запустите Ред Базу Данных:

    systemctl start firebird
    
  2. Запустите Loki:

    systemctl start loki
    
  3. Запустите Prometheus:

    systemctl start prometheus
    
  4. Запустите Grafana:

    systemctl start grafana-server
    
  5. Запустите Экспортёр и Promtail:

    systemctl start rdbmonitor-client.tartget