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

2.1. Установка на Linux

Доступно несколько способов установки:

RPM-пакет

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

  2. Установите серверную часть РБДМонитор:

    dnf install <путь_до_rpm_пакета_rdbmonitor-server>
    
  3. Установите СУБД для серверной части: РЕД Базу Данных, следуя инструкции в Руководстве администратора или Firebird.

  4. Установите клиентскую часть РБДМонитор:

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

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

  5. Настройте РБДМонитор по инструкции Настройка РБДМонитор.

Установка из архива

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

  2. Скачайте установочный архив для серверной части с официального сайта. После скачивания распакуйте архив, выполнив команду:

    tar -xzf <архив>
    
  3. Установите плагины redsoft-rdbmonitor-app и redsoft-reddatabase-datasource командой:

    sudo ./install.sh -o install -p grafana_plugins
    

    При установке плагинов нужно внести redsoft-rdbmonitor-app и redsoft-reddatabase-datasource в список доверенных, разрешив редактировать файл /etc/grafana/grafana.ini.

  4. Установите Loki:

    sudo ./install.sh -o install -p loki
    
  5. Скачайте установочный архив для клиентской части с официального сайта. После скачивания распакуйте архив, выполнив команду:

    tar -xzf <архив>
    
  6. Установите клиентскую часть, выполнив install.sh с правами администратора:

    sudo ./install.sh -o install -p client
    
  7. Скачайте установочный архив для клиентской части с официального сайта. После скачивания распакуйте архив, выполнив команду:

    tar -xzf <архив>
    
  8. Установите клиентскую часть, выполнив install.sh с правами администратора:

    sudo ./install.sh -o install -p client
    
  9. Настройте РБДМонитор по инструкции Настройка РБДМонитор.

2.2. Установка и настройка на Windows

  1. Скачайте с официального сайта zip-архив РБДМонитор.

  2. Распакуйте скачанный архив в любой каталог.

  3. Установите службу агента мониторинга:

    <путь до каталога установки>\RDBMonitor\install_service.bat
    
  4. Остановите наблюдаемую СУБД.

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

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

    Plugin = messagetrace {
       Module = <путь к корневому каталогу РБДМонитор>\RdbMonitor\plugins\messagetrace\messagetrace
       Required = true
       Config = monitor_config
    }
    
    Config = monitor_config {
       ConfigFile = <путь к корневому каталогу РБДМонитор>\RdbMonitor\exporter\exporter_conf.json
    }
    
  7. Запустите наблюдаемую СУБД.

  8. Установите СУБД для серверной части: РЕД Базу Данных, следуя инструкции в Руководстве администратора или Firebird.

  9. Откройте \RdbMonitor\external\promtail\promtail.yml и укажите там следующее:

    server:
    http_listen_port: 9080
    grpc_listen_port: 0
    
    positions:
    filename: "<путь до каталога установки РБДМонитор>\\RdbMonitor\\external\\promtail\\positions.yaml"
    
    clients:
    - url: http://localhost:3100/loki/api/v1/push # IP-адрес Loki
    
    scrape_configs:
    - job_name: RedDatabase
       pipeline_stages:
          - multiline:
             firstline: '^[A-Za-z0-9\._%+\-]+.\s+\([0-9]+:[0-9]+#[0-9]+\)\s+[A-Za-z]+\s+[A-Za-z]+\s+[0-9]+\s+[0-9]+:[0-9]+:[0-9]+\s+[0-9]+'
             max_wait_time: 3s
       static_configs:
       - targets:
          - localhost
          labels:
          job: RedDatabase
          host: 127.0.0.1 # IP-адрес машины в сети
          __path__: "<корневой каталог СУБД>\\firebird.log" # Путь до firebird.log
    
  10. Распакуйте архив promtail-windows-amd64.exe.zip в ту же папку.

  11. Запустите Promtail:

    Start-Process -FilePath ".\promtail-windows-amd64.exe\promtail-windows-amd64.exe" -ArgumentList '--config.file="\RdbMonitor\external\promtail\promtail.yaml"' -WindowStyle Hidden
    
  12. Откройте файл \RdbMonitor\external\loki\loki.yaml и укажите там следующее:

    auth_enabled: false
    
    server:
    http_listen_port: 3100
    
    common:
    ring:
       kvstore:
          store: inmemory
    replication_factor: 1
    path_prefix: "<путь до каталога установки РБДМонитор>\\RdbMonitor\\external\\loki"
    
    schema_config:
    configs:
    - from: 2020-05-15
       store: tsdb
       object_store: filesystem
       schema: v13
       index:
          prefix: index_
          period: 24h
    
    storage_config:
    filesystem:
       directory: "<путь до каталога установки РБДМонитор>\\RdbMonitor\\external\\loki"
    
  13. Запустите Loki:

    Start-Process -FilePath ".\loki-windows-amd64.exe\loki-windows-amd64.exe" -ArgumentList '--config.file="\RdbMonitor\external\loki\loki.yaml"' -WindowStyle Hidden
    
  14. Установите Prometheus.

  15. Установите Grafana.

  16. Переместите из \RdbMonitor\plugins\grafana\ папки redsoft-rdbconnector-datasource и redsoft-rdbmonitor-app в \grafana-12.4.2\data\plugins\. Папку data необходимо предварительно создать.

  17. Откройте файл \grafana-12.4.2\conf\defaults.ini и укажите там следующее:

    allow_loading_unsigned_plugins = redsoft-rdbconnector-datasource,redsoft-rdbmonitor-app
    
  18. Запустите СУБД в серверной части.

  19. Скорректируйте скрипт create.sql, расположенный по пути \RdbMonitor\scripts\create.sql.

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

    isql -user <имя пользователя> -password <пароль> -i \RdbMonitor\scripts\create.sql
    
  20. Установите асинхронный режим записи на диск:

    gfix -write async <база данных statements.fdb>
    
  21. Укажите настройки Prometheus в файле \prometheus\prometheus.yml:

    global:
       scrape_interval: <интервал сбора метрик><единицы измерения s/m/h>
       scrape_timeout: <время ожидания получения в секунду>
    
    scrape_configs:
       - job_name: "RDBMonitor"
          static_configs:
          - targets: ["<хост>:<порт>", ..., "<хост>:<порт>"]
    
    rule_files:
       - rules.yml
    
    # alerting:
    #   alertmanagers:
    #     - static_configs:
    #       - targets: ["localhost:9093"]
    
  22. Запустите Prometheus.

  23. Запустите Grafana.

  24. Укажите настройки агента мониторинга в файле \RDBMonitor\exporter\exporter_conf.json.

    {
    "exporter": {
       "port": <порт агента мониторинга>,
       "rdb_lock_print": {
       "enabled": true
        },
       "scrape_system":{
       "enabled": true
       },
       "scrape_queries": {
       "enabled": true,
       "filters": "<путь к файлу с настройками фильтрации>",
       "default":
          {
             "shmem_size":<размер разделяемой памяти в МиБ>
          }
       },
       "scrape_mon_tables":{
       "enabled": true
       },
       "user_metrics": {
       "enabled": true,
       "timeout": <таймаут сбора метрики в секундах>,
       "max_metric_labels": <максимальное кол-во метрик>,
       "max_user_metrics": <максимальное кол-во пользовательских метрик>,
       "max_metric_data_blocks": <максимальное кол-во блоков метрики>
       }
    },
    "promtail": {
       "host": "<хост наблюдаемого сервера>"
    },
    "dictserver": {
       "host": "<хост базы данных>",
       "port": <порт базы данных>,
       "database": "/opt/rdbmonitor/server/rdb/statements.fdb",
       "user": "<пользователь>",
       "password": "<пароль>",
       "Auth_plugins": ["<плагин>", ..., "<плагин>"],
       "loki": {
       "port": <порт loki>
       }
    },
    "RedDatabase": {
       "host": "<хост СУБД>",
       "port": <порт СУБД>,
       "user": "<логин>",
       "password": "<пароль>",
       "folder_path": "<путь к папке установки RedDatabase>"
    },
    "databases": {
       "<псевдоним>": {
       "alias": "<алиас>",
       "scrape": {
          "enabled": true,
          "filters":"<путь к файлу с настройками фильтрации>",
          "endpoint": "<сокет>"
       }
       }
    }
    }
    
  25. Запустите агент мониторинга от имени администратора:

    Start-Process -FilePath ".\exporter.exe" -ArgumentList ".\exporter_conf.json" -WindowStyle Hidden
    

    Или командой:

    "<путь до каталога установки>\RDBMonitor\start.bat"
    
  26. После настройки необходим перезапуск сервиса агента мониторинга:

    Restart-Service -Name ExporterService
    
  27. Откройте в браузере страницу запущенной 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.

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