Настройка TLS для PostgreSQL в сенсоре "Запрос в базу данных"

Начиная с версии 5.0 агент поддерживает TLS для баз данных PostgreSQL в сенсоре Запрос в базу данных.

Включить TLS можно только с помощью REST API.

Для включения TLS для PostgreSQL в сенсоре "Запрос в базу данных" необходимо выполнить следующие действия:

  • Настроить на новом или существующем объекте сенсор Запрос в базу данных для работы с существующей БД PostgreSQL.

  • Получить ID объекта, на котором настроен мониторинг БД. Сделать это можно на вкладке "Параметры" объекта в виде Подробной информации.

  • Получить ID свойства DatabaseServerUrl объекта, на котором настроен мониторинг БД с помощью запроса Получить свойства объекта:

    Запрос с помощью curl
    login=<...>
    password=<...>
    saymon_hostname=<...>
    object_id=<...>
    url=https://$saymon_hostname/node/api/objects/$object_id/props
    
    curl -X GET $url -u $login:$password
    Ответ в формате JSON
    [
        ...
        {
            "type_id": 8,
            "name": "DatabaseServerUrl",
            "value": "jdbc:postgresql://localhost:5432/db-name?user=username&password=password&characterEncoding=utf8",
            "id": "66aa4dcc5351ea1a23fb63fc"
        }
        ...
    ]
  • Добавить &ssl=true в строку подключения с помощью запроса Обновить свойство объекта, используя полученные ранее ID объекта и ID свойства:

    Запрос с помощью curl
    login=<...>
    password=<...>
    saymon_hostname=<...>
    object_id=<...>
    prop_id=<...>
    url=https://$saymon_hostname/node/api/objects/$object_id/props/$prop_id
    
    curl -X PATCH $url -u $login:$password \
        -H "Content-Type: application/json" \
        -d @- <<EOF
    {
        "value": "jdbc:postgresql://localhost:5432/db-name?user=username&password=password&characterEncoding=utf8&ssl=true"
    }
    EOF

После выполнения всех шагов, перезагрузка агента или сервера не требуется. Агент будет использовать TLS при следующем запросе к базе данных.