Установка InfluxDB в Unix/Linux

Установка InfluxDB в Unix/Linux

InfluxDB — база данных временных рядов с открытым исходным кодом, разработанная в InfluxData. Данный продукт написан на Go и оптимизирован для быстрого хранения с высокой скоростью поиска данных по временным рядам.

Данную ДБ используют в связке с CollectD и Grafana:

Установка grafana в Unix/Linux

Настройка Grafana с Graphite/Zabbix/Prometheus/MySQL/InfluxDB/Elasticsearch/CloudWatch для сбора и отображения метрик в 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».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.