4. Настройка РБДМонитор

РБДМонитор состоит из клиентской и серверной части. Клиент необходимо установить на одну машину с наблюдаемой СУБД. Сервер мониторинга можно установить, как на одну машину с клиентом, так и на отдельную.

_images/scheme.png

Рис. 4.1 Схема взаимодействия компонентов РБДМонитора

Состав клиентской части:

  • Агент мониторинга - порт 3051 по умолчанию;

  • Promtail.

Состав серверной части:

  • Grafana - порт 3000 по умолчанию;

  • Prometheus - порт 9090 по умолчанию;

  • Loki - порт 3100 по умолчанию;

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

4.1. Настройка серверной части

  1. Запустите СУБД (РЕД База Данных или Firebird):

    systemctl start firebird
    
  2. Откройте create.sql, расположенный в /opt/rdbmonitor/create.sql. В первой строке укажите путь, где будет создана БД-справочник.

    CREATE DATABASE 'localhost:/путь/до/statements.fdb';
    

    Выполните скрипт create_tables.sql:

    isql -user sysdba -password masterkey -i /opt/rdbmonitor/create.sql
    

    Установите асинхронный режим записи на диск:

    gfix -user sysdba -password masterkey -write async <база данных statements.fdb>
    
  3. Запустите Loki:

    sudo systemctl start loki.service
    
  4. Укажите следующие настройки Prometheus в файле /etc/prometheus/prometheus.yml:

    global:
    scrape_interval: 60s
    evaluation_interval: 60s
    
    alerting:
    alertmanagers:
       - static_configs:
             - targets:
             # - alertmanager:9093
    
    rule_files:
    # - "first_rules.yml"
    # - "second_rules.yml"
    
    scrape_configs:
       - job_name: "RDBMonitor"
         static_configs:
            - targets: ["localhost:3051"] #localhost заменить на адрес наблюдаемого сервера
    
       - job_name: "Prometheus"
         scrape_interval: 20s
         scrape_timeout: 20s
         static_configs:
            - targets: ['localhost:9090'] #здесь ничего менять не нужно
    
  5. Запустите Prometheus:

    sudo systemctl start prometheus
    
  6. Для получения уведомлений укажите настройки Alertmanager в файле /etc/alertmanager/alertmanager.yml (см. Alertmanager (alertmanager.yml)). Если уведомления не нужны, то этот пункт можно пропустить.

    После настройки запустите Alertmanager:

    sudo systemctl start alertmanager
    
  7. Запустите Grafana:

    sudo systemctl start grafana-server
    

4.2. Настройка клиентской части

  1. Для сервера, который необходимо мониторить, в firebird.conf укажите следующие настройки:

    TracePlugin = messagetrace
    
  2. У наблюдаемой СУБД включите плагин агрегатного аудита в plugins.conf:

    Примечание

    Для РЕД Базы Данных нужно указывать библиотеку messagetrace. Для Firebird - messagetrace_fb.

    Plugin = messagetrace
    {
          Module = /opt/rdbmonitor/client/messagetrace_[fb]
          Required = true
          Config = monitor_config
    }
    
    Config = monitor_config {
      ConfigFile = /opt/rdbmonitor/client/exporter/exporter_conf.json
    }
    
  3. Перезапустите наблюдаемую СУБД:

    systemctl start firebird
    
  4. В exporter_conf.json, расположенном в /opt/rdbmonitor/client/exporter/exporter_conf.json, скорректируйте следующие настройки:

      "promtail": {
        "host": "127.0.0.1" # Адрес наблюдаемого сервера, должен совпадать со значением targets в prometheus.yaml
      },
      ...
      "dictserver": {
        "host": "127.0.0.1", #адрес сервера мониторинга
        "port": 3050,
        "database": "/db/statements.fdb", # Путь к statements.fdb на сервере мониторинга
      ...
      "RedDatabase": {
        "host": "127.0.0.1", # Не нужно менять
        "user": "SYSDBA",
        "password": "masterkey",
        "folder_path": "/opt/RedDatabase/" # Путь к каталогу установки наблюдаемой СУБД
      },
      "databases": {
        "employee_db": {         # Метка наблюдаемой базы для отображения, можно указать любое название
            "alias": "employee", # Путь к наблюдаемой базе данных или алиас
    ...
    
  5. Предупреждение

    Перед запуском агента мониторинга убедитесь, что СУБД запущена:

    systemctl status firebird
    

    Запустите клиентскую часть РБДМонитор:

    systemctl start rdbmonitor-client.target
    

4.3. Просмотр метрик в Grafana

Откройте в браузере страницу запущенной Grafana (по умолчанию http://localhost:3000/). По умолчанию для входа используется логин admin и пароль admin.

Укажите источники данных:

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

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

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

Для отображения собранной информации необходимо включить плагин РБДМонитор:

  1. Выберите Home \(\to\) Administration \(\to\) Plugins;

  2. В открывшейся вкладке перейдите в Type \(\to\) Applications \(\to\) РБДМонитор;

  3. Нажмите на кнопку Enable.

После этого в меню Apps будет добавлен плагин РБДМонитор.

Необходимо указать добавленные источники данных в настройках плагина РБДМонитор:

_images/plugin_conf.png

Рис. 4.2 Настройка плагина