Используемые термины: InfluxDB, PHP, SQL.
В данной инструкции рассмотрим процесс настройки сервера с установленным PHP для работы с InfluxDB. Также разберем пример кода для подключения к СУБД и выполнения простых запросов. В качестве операционной системы будем использовать Linux.
Предполагается, что у нас уже установлен сервер с InfluxDB и PHP, иначе, можно воспользоваться инструкциями Установка telegraf и передача метрик в InfluxDB (раздел Установка и настройка InfluxDB), а также настройка полноценного веб-сервера на Ubuntu, CentOS 7 и CentOS 8.
В нашем примере мы будем рассматривать подключение к СУБД на основе библиотек influxdb-client-php и influxdb-php. Первая более современная и рассчитана на более новые версии InfluxDB и PHP. Рассмотрим подробнее требования к данным библиотекам.
influxdb-php:
influxdb-client-php:
И так, необходимо выбрать соответствующую версию библиотеки для наших версий PHP и InfluxDB. В данной инструкции мы будем работать с influxdb-client-php, PHP 7.4 и InfluxDB 1.8.
Устанавливаем композер.
а) Для DEB-систем (Ubuntu, Debian):
apt-get install composer
б) Для RPM (CentOS, Red Hat):
yum install composer
Переходим в каталог с нашим проектом, например:
cd /var/www/site/test/influx
Запускаем установку библиотеки:
composer require influxdata/influxdb-client-php
В каталоге с проектом должна появиться папка vendor. Мы готовы переходить к коду.
Рассмотрим несколько примеров работы с InfluxDB.
Подключение библиотеки выполняется относительно каталога vendor, который появился после запуска композера. Предполагается, что скрипт находится в той же папке, что и каталог vendor — в таком случае подключение библиотеки выполняется кодом require ‘vendor/autoload.php’. Если же наш скрипт находится в другом каталоге, необходимо прописать правильный путь до файла autoload.php.
1. Простая выборка данных за последний час:
* обратите внимание, что данный запрос к базе отличается от стандартного SQL. Это так называемый, Flux query.* где:
2. Выборка данных по двум полям:
* в данном примере мы сделаем вывод данных только для полей field1 и field2.
3. Сортировка и лимит:
* в данном примере мы отсортируем наши результаты по полю field2 и ограничим число результатов до 3-х. Сортировка будет прямой (desc: false), для обратной нужно использовать desc: true.
В процессе настройки связки PHP + InfluxDB, мы можем столкнуться с проблемами. Попробую описать то, с чем столкнулся я.
Ошибка возникает при попытке сделать запрос из PHP.
Причина: запрещено выполнение запросов типа Flux. Данная опция, по умолчанию, может быть выставлена в положение disabled.
Решение: на сервере InfluxDB открываем конфигурационный файл:
vi /etc/influxdb/influxdb.conf
Редактируем параметр:
flux-enabled = true
Перезапускаем сервис influxdb:
systemctl restart influxdb
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies