本页内容
- 先决条件
- 安装 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 在生产环境中处理大量数据。