InfluxDB — это база данных временных рядов с открытым исходным кодом, разработанная компанией InfluxData. Она написана на языке Go и рассчитана на высокую нагрузку при записи и запросах. Она известна своей простотой и способностью работать в масштабе. Она может работать в различных операционных системах, а также поддерживает широкий спектр клиентских библиотек.
В этом руководстве мы расскажем, как установить базу данных временных рядов InfluxDB на CentOS 8.
Предварительные условия
- Сервер под управлением CentOS 8.
- На сервере настроен пароль root.
Установите InfluxDB
По умолчанию InfluxDB недоступен в стандартном репозитории CentOS 8. Поэтому вам нужно будет создать репозиторий для InfluxDB. Вы можете создать его с помощью следующей команды:
nano /etc/yum.repos.d/influxdb.repo
Добавьте следующие строки:
[influxdb] name = InfluxDB Repository baseurl = https://repos.influxdata.com/rhel/8/x86_64/stable/ enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key
Сохраните и закройте файл, затем обновите кэш репо с помощью следующей команды:
dnf makecache
Затем установите InfluxDB с помощью следующей команды:
dnf -y install influxdb
После завершения установки проверьте установленную версию InfluxDB с помощью следующей команды:
rpm -qi influxdb
Вы должны получить следующий результат:
Name : influxdb Version : 1.8.4 Release : 1 Architecture: x86_64 Install Date: Wednesday 07 April 2021 01:24:54 AM EDT Group : default Size : 174431824 License : Proprietary Signature : RSA/SHA256, Monday 01 February 2021 08:01:46 PM EST, Key ID 684a14cf2582e0c5 Source RPM : influxdb-1.8.4-1.src.rpm Build Date : Thursday 28 January 2021 05:31:21 AM EST Build Host : bf85fc4b5de4 Relocations : / Packager : [email protected] Vendor : InfluxData URL : https://influxdata.com Summary : Distributed time-series database. Description : Distributed time-series database.
Управление службой InfluxDB
Вы можете запускать и останавливать службу InfluxDB с помощью следующей команды:
systemctl start influxdb systemctl stop influxdb
Чтобы запустить InfluxDB при перезагрузке системы, выполните следующую команду:
systemctl enable influxdb
Чтобы проверить состояние InfluxDB, выполните следующую команду:
systemctl status influxdb
Вы должны получить следующий результат:
? influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/usr/lib/systemd/system/influxdb.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-04-07 01:25:11 EDT; 11s ago Docs: https://docs.influxdata.com/influxdb/ Main PID: 48978 (influxd) Tasks: 8 (limit: 12524) Memory: 7.9M CGroup: /system.slice/influxdb.service ??48978 /usr/bin/influxd -config /etc/influxdb/influxdb.conf Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426523Z lvl=info msg="Starting precreation service" log_id=0TMhWB~l000 service=> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426552Z lvl=info msg="Starting snapshot service" log_id=0TMhWB~l000 service=sna> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426570Z lvl=info msg="Starting continuous query service" log_id=0TMhWB~l000 ser> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426616Z lvl=info msg="Starting HTTP service" log_id=0TMhWB~l000 service=httpd a> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426634Z lvl=info msg="opened HTTP access log" log_id=0TMhWB~l000 service=httpd > Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426802Z lvl=info msg="Listening on HTTP" log_id=0TMhWB~l000 service=httpd addr=> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.426831Z lvl=info msg="Starting retention policy enforcement service" log_id=0TM> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.427033Z lvl=info msg="Listening for signals" log_id=0TMhWB~l000 Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.427330Z lvl=info msg="Storing statistics" log_id=0TMhWB~l000 service=monitor db> Apr 07 01:25:11 centos8 influxd[48978]: ts=2021-04-07T05:25:11.427779Z lvl=info msg="Sending usage statistics to usage.influxdata.com" log_id=>
По умолчанию InfluxDB прослушивает порт 8086. Вы можете проверить это с помощью следующей команды:
ss -tunelp | grep 8086
Вы должны увидеть следующий вывод:
tcp LISTEN 0 128 *:8086 *:* users:(("influxd",pid=49040,fd=14)) uid:987 ino:824427 sk:c v6only:0
Включить аутентификацию
По умолчанию InfluxDB настроен на подключение без аутентификации. Поэтому рекомендуется защитить InfluxDB с помощью имени пользователя и пароля.
Для этого необходимо включить аутентификацию в файле influxdb.conf.
nano /etc/influxdb/influxdb.conf
Измените следующую строку в [http] раздел:
auth-enabled = true
Сохраните и закройте файл, затем перезапустите InfluxDB, чтобы применить изменения:
systemctl restart influxdb
Далее вам нужно будет создать пользователя admin для аутентификации в InfluxDB. Вы можете создать его с помощью следующей команды:
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE USER admin WITH PASSWORD 'password' WITH ALL PRIVILEGES"
На данном этапе InfluxDB защищена именем пользователя и паролем.
Работа с InfluxDB
Теперь вы можете подключиться к оболочке InfluxDB с помощью следующей команды:
influx -username 'admin' -password 'password'
После подключения вы должны получить следующий результат:
Connected to http://localhost:8086 version 1.8.4 InfluxDB shell version: 1.8.4
Теперь создайте новую базу данных с помощью следующей команды:
> CREATE DATABASE mydb
Чтобы отобразить все базы данных, выполните следующую команду:
> SHOW DATABASES
Вы должны получить следующий результат:
name: databases name ---- _internal mydb
Теперь выйдите из оболочки InfluxDB, выполнив следующую команду:
> exit
Вы также можете перечислить все базы данных без входа в InfluxDB, как показано ниже:
curl -G http://localhost:8086/query -u admin:password --data-urlencode "q=SHOW DATABASES"
Вы должны получить следующий результат:
{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"],["mydb"]]}]}]}
Заключение
Поздравляем! Вы успешно установили InfluxDB на CentOS 8. Теперь вы можете использовать InfluxDB для обработки большого количества данных в производственной среде.