Используемые термины: InfluxDB , PHP , SQL .
В данной инструкции рассмотрим процесс настройки сервера с установленным PHP для работы с InfluxDB. Также разберем пример кода для подключения к СУБД и выполнения простых запросов. В качестве операционной системы будем использовать Linux.
Предполагается, что у нас уже установлен сервер с InfluxDB и PHP, иначе, можно воспользоваться инструкциями Установка telegraf и передача метрик в InfluxDB (раздел Установка и настройка InfluxDB ), а также настройка полноценного веб-сервера на Ubuntu , CentOS 7 и CentOS 8 .
Требования к системе
Установка и настройка необходимых компонентов
Подключение к СУБД из PHP и примеры запросов
Возможные ошибки
В нашем примере мы будем рассматривать подключение к СУБД на основе библиотек 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
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…