Установка InfluxDB в Unix/Linux
InfluxDB — база данных временных рядов с открытым исходным кодом, разработанная в InfluxData. Данный продукт написан на Go и оптимизирован для быстрого хранения с высокой скоростью поиска данных по временным рядам.
Данную ДБ используют в связке с CollectD и Grafana:
Установка grafana в Unix/Linux
InfluxData состоит из:
- Telegraf — программа которая позволяет собирать метрики с временными рядами.
- InfluxDB — БД которую можно кластерезировать. Она была создана специально для хранения временных рядов.
- Chronograf — инструмент для визуализации временных рядов. Web приложение для настройки графиков и dashboard’ов.
- Kapacitor — утилита для обработки значений временных рядов и контроля отклонений значений.
Данные приложения, образуют стек технологий (который можно назвать TICK) и он выступает синонимом InfluxData.
Установка InfluxDB в Unix/Linux
Приведу примеры установок на различные ОС.
По умолчанию InfluxDB будет использовать 8083 и 8086 TCP-порты. По завершении установки вы можете изменить эти порты и другие параметры в файле конфигурации.
Установка InfluxDB в CentOS/RedHat/Fedora
Добавляем репозиторий:
# cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF
А затем устанавливаем:
# yum install influxdb -y
Для запуска службы InfluxDB, используйте:
# service influxdb start
Как-то так.
Установка InfluxDB в Debian
Для пользователей Debian вы можете добавить конфигурацию репозитория InfluxData, для этого добавим ключ:
# curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
Перечитаем конфигурацию:
# source /etc/os-release
Добавляем репозиторий (в зависимости от версии):
# test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list # test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
А затем устанавливаем:
# apt-get update && apt-get install influxdb
Для запуска службы InfluxDB, используйте:
# service influxdb start
Как-то так.
Установка InfluxDB в Ubuntu
Для пользователей Ubuntu вы можете добавить конфигурацию репозитория InfluxData, для этого добавим ключ:
# curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
Перечитаем конфигурацию:
# source /etc/lsb-release
Добавляем репозиторий:
# echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
А затем устанавливаем:
# apt-get update && apt-get install influxdb
Для запуска службы InfluxDB, используйте:
# service influxdb start
Как-то так.
Установка InfluxDB в SLES & openSUSE
Добавляем репозиторий:
# zypper ar -f obs://devel:languages:go/ go
А затем устанавливаем:
# zypper in influxdb
Установка InfluxDB в FreeBSD/PC-BSD
Устанавливаем:
# pkg install influxdb
Конфиг находится: /usr/local/etc/influxd.conf, а пример можно найти — /usr/local/etc/influxd.conf.sample.
Для запуска службы InfluxDB, используйте:
# service influxd onestart
Для авто-запуска, пропишите в/etc/rc.conf файле:
influxd_enable="YES"
Как-то так.
Установка InfluxDB в Mac OS X
Установим для начала Homebrew и выполним потом:
$ brew install influxdb
Чтобы запустить influxdb при входе в систему, юзайте:
# ln -sfv /usr/local/opt/influxdb/*.plist ~/Library/LaunchAgents
Для запуска службы InfluxDB, используйте:
# launchctl load ~/Library/LaunchAgents/homebrew.mxcl.influxdb.plist
PS: Если вы не хотите (или нужно запустить) в отдельном окне, то для этого используйте:
$ influxd -config /usr/local/etc/influxdb.conf
Как-то так.
Настройка InfluxDB в Unix/Linux
По умолчанию InfluxDB использует порты 8083, 8086, 8090 и 8099. Можно использовать и другие порты — для этого потребуется внести соответствующие изменения в конфигурационный файл. Рассмотрим особенности конфигурирования InfluxDB более подробно.
Проверим какие слушает, можно:
# netstat -natpl | grep -E "80[8-9][3-9]" tcp 0 0 127.0.0.1:8088 0.0.0.0:* LISTEN 4461/influxd tcp 0 0 :::8086 :::* LISTEN 4461/influxd #
Проверяем что сервис запущен:
[root@localhost ~]# ps aux | grep influxdb | grep -Ev "grep" influxdb 4461 0.2 1.2 285200 12880 ? Sl 23:45 0:00 /usr/bin/influxd -pidfile /var/run/influxdb/influxd.pid -config /etc/influxdb/influxdb.conf [root@localhost ~]#
В конфигурационном файле, открываем его для начала:
# vim /etc/influxdb/influxdb.conf
В нем имеются настройки, которые делятся на группы:
- [logging] — Задается некоторые детали для логирования. Можно выставить уровень самого логироваия и указать имя лога;
- [admin] — Задаются некоторые настройки веб-интерфейса. Можно задать порт (на нем будет работать внутренний веб-сервер). Так же, можно указать путь к файлам веб-интерфейса;
- [api] — Настройки HTTP API;
- [input_plugins] — Задаются некоторые настройки для ввода данных из внешних источников (можно настроить отправку данных в Grafana; Также в этом разделе можно настроить ввод данных по протоколу UDP).
- [raft] —Задаются настройки протокола согласования RAFT;
- [storage] — Задаются настройки хранения данных;
- [cluster] —Задаются настройки для работы в кластерном режиме (более подробно они будут описаны ниже;
- [wal] — настройки опережающего введения журнала (Write Ahead Logging, WAL).
Открываем конфиг:
# vim /etc/influxdb/influxdb.conf
Приводим к виду:
[http] enabled = true bind-address = ":8086" # change to a specific interface if needed auth-enabled = true # will enforce authentication
Для генерации конфига, используйте:
$ influxd config > /etc/influxdb/influxdb.generated.conf
Подключение и создание БД в influxDB
Чтобы подключится, используем:
# influx
Для создания БД, используем следующую команду:
> CREATE DATABASE its_my_first_DB
Где:
its_my_first_DB — Название БД.
Просмотр баз данных в influxDB
Чтобы подключится, используем:
# influx
Чтобы просмотреть какие БД имеются, используем:
> SHOW DATABASES
Использование базы данных в influxDB
Чтобы подключится, используем:
# influx
Чтобы начать использовать БД:
> USE mydb
Запишем некоторые данные в созданную БД:
> INSERT cpu,host=My_server1,region=us_west value=0.88
Или, вставим еще другие данные:
> INSERT temperature,machine=node_1,type=assembly external=13,internal=66
Не очень сложно.
Просмотр данных в influxDB базе
Чтобы подключится, используем:
# influx
Чтобы просмотреть какие БД имеются, используем:
> SHOW DATABASES
Чтобы начать использовать БД:
> USE mydb
И, выбираем данные:
> SELECT * FROM cpu name: cpu time host region value ---- ---- ------ ----- 1501535158522710659 My_server1 us_west 0.88 >
Или:
> SELECT * FROM temperature name: temperature time external internal machine type ---- -------- -------- ------- ---- 1501535403235325917 13 66 node_1 assembly >
InfluxDB поддерживает сложный язык запросов, позволяющий выполнять много разных типов запросов. Например:
> SELECT * FROM /.*/ LIMIT 1 > SELECT * FROM CPU_loading > SELECT * FROM MEMORY WHERE value > 33243243424
Создание пользователя в influxDB
Создать пользователя можно одним из следующих примерах:
> CREATE USER My_USER WITH PASSWORD 'Your_PW' WITH ALL PRIVILEGES
Или:
> CREATE USER My_USER WITH PASSWORD 'Your_PW'
Выставить права можно:
> GRANT ALL ON My_DB_1 TO My_USER > GRANT READ ON My_DB_2 TO My_USER2
Все гениальное — просто!
А я на этом завершаю свою статью «Установка InfluxDB в Unix/Linux».