Настройка TLS для PostgreSQL в сенсоре "Запрос в базу данных"
Начиная с версии 5.0 агент поддерживает TLS для баз данных PostgreSQL в сенсоре Запрос в базу данных.
NOTE
Включить 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 при следующем запросе к базе данных.