Настройка внешнего подключения базы данных InfluxDB

Назовите свой проект

  • Версия внешнего сервиса должна совпадать с версией, указанной в файле docker-compose.yml.
  • В качестве примера в этой инструкции используется проект с именем testit. Вы можете использовать другое название.
  1. При настройке внешней базы данных InfluxDB установите следующие параметры:

    max-series-per-database = 0
    max-values-per-tag = 0
    
  2. Закомментируйте или удалите секцию с сервисом БД (influxdb), который будет заменен на внешний сервис, зависимости от него других контейнеров (все упоминания сервиса БД в блоках depends_on), и его вольюм (influx-volume) в списке volumes в файле docker-compose.yml.

  3. В .env-файле укажите данные для подключения к внешней БД, где external-server — IP-адрес или DNS-имя вашего сервера с InfluxDB.

    INFLUX_CONNECTION_STRING=http://external-server:8086

  4. Перезапустите систему Test IT:

    docker compose -f docker-compose.yml --project-name testit up --detach --timeout 120 --remove-orphans
    

Включение аутентификации в InfluxDB

  1. В файле .env раскомментируйте и при необходимости отредактируйте следующие строки:

    INFLUX_AUTH_ENABLED=true
    INFLUX_USERNAME=<USER_NAME>
    INFLUX_PASSWORD=<YOUR_PASSWORD>
    INFLUXDB_META_DIR=/var/lib/influxdb/meta2
    
  2. Выполните следующую команду:

    docker compose -f docker-compose.yml --project-name testit up --detach --timeout 120
    

Настройка безопасного соединения

  1. Подготовьте файлы сертификатов — корневой ca.crt, а также подписанные с помощью него сертификат и ключ сервера server.crt и server.key. CN сертификата сервера должен быть influxdb.

  2. Скопируйте файлы server.crt и server.key для influxdb с вольюм:

    server_certs=$(docker inspect testit_influx-tls-volume --format '{{ .Mountpoint }}')
    cp server.crt ${server_certs}/
    cp server.key ${server_certs}/
    
  3. Скопируйте файл сертификата CA, с помощью которого были выписаны сертификаты серверов, в вольюм trusted-certificates-volume:

    trusted_certs=$(docker inspect testit_trusted-certificates-volume --format '{{ .Mountpoint }}')
    cp ca.crt ${trusted_certs}/
    
  4. В файле .env:

    • Измените значение переменной для подключения к influxdb с использованием HTTPS:

      INFLUX_CONNECTION_STRING=https://influxdb:8086
      
    • Раскомментируйте и при необходимости отредактируйте следующие строки:

      INFLUXDB_HTTP_HTTPS_ENABLED=true
      INFLUXDB_HTTP_HTTPS_CERTIFICATE=/var/lib/influxdb/tls/server.crt
      INFLUXDB_HTTP_HTTPS_PRIVATE_KEY=/var/lib/influxdb/tls/server.key
      
  5. Чтобы изменения вступили в силу, перезапустите сервис influxdb, а затем примените изменения в файле .env с помощью docker compose:

     ```sh
     docker restart testit_influxdb_1
     docker compose -f docker-compose.yml --project-name testit up --detach --timeout 120
     ```
    
Обновлено: