本页内容

  • 先决条件
  • 安装 InfluxDB
  • 管理 InfluxDB 服务
  • 启用身份验证
  • 使用 InfluxDB
  • 结论

InfluxDB 是 InfluxData 开发的一个开源时序数据库。它使用 Go 语言编写,专为处理高写入和查询负载而设计。它以简单性和在规模上运行的能力而著称。它可以在多个操作系统上运行,并且支持广泛的客户端库。

本教程将讲解如何在 CentOS 8 上安装 InfluxDB 时序数据库。

先决条件

  • 一台运行 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 shell:

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 shell:

> 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"]]}]}]}

结论

恭喜!你已成功在 CentOS 8 上安装了 InfluxDB。现在你可以使用 InfluxDB 在生产环境中处理大量数据。