InfluxDB 部署的多种方式,多个版本

InfluxDB 部署的多种方式,多个版本

一、InfluxDB二进制部署

# 下载
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.4.0-linux-amd64.tar.gz

# 解压
tar -zxvf influxdb2-2.4.0-linux-amd64.tar.gz -C /app

# 启动 【可以看到数据目录/root/.influxdbv2/】
[root@node01 influxdb2_linux_amd64]# ./influxd 
2023-07-28T17:26:44.219453Z	info	Welcome to InfluxDB	{"log_id": "0jJOSxzl000", "version": "v2.4.0", "commit": "de247bab08", "build_date": "2022-08-18T19:41:15Z", "log_level": "info"}
2023-07-28T17:26:44.220667Z	info	Resources opened	{"log_id": "0jJOSxzl000", "service": "bolt", "path": "/root/.influxdbv2/influxd.bolt"}
2023-07-28T17:26:44.220786Z	info	Resources opened	{"log_id": "0jJOSxzl000", "service": "sqlite", "path": "/root/.influxdbv2/influxd.sqlite"}
2023-07-28T17:26:44.225371Z	info	Using data dir	{"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "path": "/root/.influxdbv2/engine/data"}
2023-07-28T17:26:44.225432Z	info	Compaction settings	{"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "max_concurrent_compactions": 1, "throughput_bytes_per_second": 50331648, "throughput_bytes_per_second_burst": 50331648}
2023-07-28T17:26:44.225443Z	info	Open store (start)	{"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "op_name": "tsdb_open", "op_event": "start"}
2023-07-28T17:26:44.225492Z	info	Open store (end)	{"log_id": "0jJOSxzl000", "service": "storage-engine", "service": "store", "op_name": "tsdb_open", "op_event": "end", "op_elapsed": "0.049ms"}
2023-07-28T17:26:44.225531Z	info	Starting retention policy enforcement service	{"log_id": "0jJOSxzl000", "service": "retention", "check_interval": "30m"}
2023-07-28T17:26:44.225546Z	info	Starting precreation service	{"log_id": "0jJOSxzl000", "service": "shard-precreation", "check_interval": "10m", "advance_period": "30m"}
2023-07-28T17:26:44.226917Z	info	Starting query controller	{"log_id": "0jJOSxzl000", "service": "storage-reads", "concurrency_quota": 1024, "initial_memory_bytes_quota_per_query": 9223372036854775807, "memory_bytes_quota_per_query": 9223372036854775807, "max_memory_bytes": 0, "queue_size": 1024}
2023-07-28T17:26:44.228795Z	info	Configuring InfluxQL statement executor (zeros indicate unlimited).	{"log_id": "0jJOSxzl000", "max_select_point": 0, "max_select_series": 0, "max_select_buckets": 0}
2023-07-28T17:26:44.235146Z	info	Starting	{"log_id": "0jJOSxzl000", "service": "telemetry", "interval": "8h"}
2023-07-28T17:26:44.235204Z	info	Listening	{"log_id": "0jJOSxzl000", "service": "tcp-listener", "transport": "http", "addr": ":8086", "port": 8086}

启动完成后前往浏览器访问:

IP地址:8086

二、rpm包部署

  • 配置文件默认在: /etc/influxdb/influxdb.conf
  • 默认数据目录在:/var/lib/influxdb
  • 默认端口:
    • bind-address = ":8088" # 备份恢复时使用,默认值为8088
    • bind-address = ":8086" # web页面访问端口,应用连接端口
# 下载  [这版本没web-ui页面]
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.6.x86_64.rpm

# 安装
yum localinstall -y influxdb-1.7.6.x86_64.rpm

# 启动
systemctl start influxdb
systemctl status influxdb
systemctl stop influxdb

# 工具InfluxDBStudio,在Windows平台下的开源数据库管理工具,帮你简化查询数据库的步骤,提高工作效率
下载地址: https://github.com/CymaticLabs/InfluxDBStudio/releases

# 安装chronograf
wget https://dl.influxdata.com/chronograf/releases/chronograf-1.7.6.x86_64.rpm

yum localinstall -y chronograf-1.7.6.x86_64.rpm 

# 启动
systemctl start chronograf
systemctl status chronograf
systemctl stop chronograf

三、常见使用命令

# 使用命令: influx 进入influxDB
[root@node01 app]# influx
Connected to http://localhost:8086 version 1.7.6
InfluxDB shell version: 1.7.6
Enter an InfluxQL query
> 

# 创建用户权限
CREATE USER 用户名 WITH PASSWORD '密码' WITH ALL PRIVILEGES

# 创建一个管理员用户,并且给了所有权限(也就是rw)
> create user zhangsan with password '123' with all privileges;


# 用户名密码访问
4: influx -username 用户名 -password 密码

5: 使用exit退出influxDB,
> exit
vim  /etc/influxdb/influxdb.conf
修改auth-enable=true,
重启influxDB,
通过 influx -username 用户名 -password 密码 访问


# 创建数据库
6: create database stp

# 设置持久化策略
SHOW RETENTION POLICIES ON stp
7: CREATE RETENTION POLICY "15_day" ON "stp" DURATION 15d REPLICATION 1 DEFAULT

四、增删查

Influxdb和mysql的结构一样,只是关键字不同

mysql influxdb 单位
databaase database 数据库
table measurement
record point 一行记录

Point由时间戳(time)、数据(field)、标签(tags)组成。

1.创建数据库

#创建数据库
> create database t1;

#查看已经创建的数据库
> show databases;
name: databases
name
----
_internal
t1

2.删除数据库

> drop database t1;
> show databases;
name: databases
name
----
_internal

3.创建表(measurement)

注意点:

measurement不用单独创建,在第一次插入数据的时候会自动创建
measurement中没有数据,表也就不存在了
measurement没有update语句,无法修改measurement中的内容,只能删除某一条,在重新插入

4.插入数据

1、通过sql写入
> use t1;
> insert add_test,name=YiHui,phone=110 user_id=21,email="xx@126.com",age=18i,boy=true


2、导入文本文件写入
# DML
# CONTEXT-DATABASE: pirates
influx -import -path=test.txt -precision=s

3、备份恢复数据库
# 数据备份命令
influxd backup -portable -database t1 /tmp/t1

# 数据恢复命令
influxd restore -portable -db data-center -newdb data-center  /tmp/t1

小结一下四种类型的指定方式

类型 方式 示例
float 数字 user_id=21
int 数字i age=18i
boolean true/false boy=true
String "" or '' email=”bangzewu@126.com

5.其他

在 InfluxDB 中,可以使用 InfluxQL(Influx Query Language)或 Flux(新的查询语言)来查看表。

使用 InfluxQL 查询语言查看表:

使用 SHOW MEASUREMENTS 命令列出所有测量值(表):

SHOW MEASUREMENTS
使用 SHOW TAG KEYS ON <database_name> FROM <measurement_name> 命令来列出指定测量值中的标签键:

SHOW TAG KEYS ON <database_name> FROM <measurement_name>
使用 SHOW FIELD KEYS ON <database_name> FROM <measurement_name> 命令来列出指定测量值中的字段键:

SHOW FIELD KEYS ON <database_name> FROM <measurement_name>
其中 <database_name> 是数据库名称,<measurement_name> 是测量值(表)名称。

使用 Flux 查询语言查看表:

使用 import "influxdata/influxdb/schema" 导入 schema 包。

使用 schema.measurements() 函数获取所有测量值(表):

import "influxdata/influxdb/schema"

schema.measurements()
通过执行以上查询语句,您将能够查看 InfluxDB 中的表信息和测量值列表。

请注意,在使用 InfluxQL 或 Flux 查询之前,请确保已连接到正确的数据库,并具有适当的权限进行查询操作。
在 InfluxDB 中,您可以使用 influxd backup 命令来备份数据库,并使用 influxd restore 命令来恢复数据库。

备份数据库的命令语法如下:

influxd backup -portable -database <database_name> -host <host_address> <backup_directory>
其中 <database_name> 是要备份的数据库名称,<host_address> 是 InfluxDB 服务器的主机地址,<backup_directory> 是备份文件存储的目录路径。

例如,要备份名为 "mydb" 的数据库到 "/backup" 目录下,命令如下:

influxd backup -portable -database mydb -host localhost:8088 /backup
恢复数据库的命令语法如下:

influxd restore -portable -db <database_name> -newdb <new_database_name> -host <host_address> <backup_directory>
其中 <database_name> 是要恢复的数据库名称,<new_database_name> 是新创建的数据库名称(可选),<host_address> 是 InfluxDB 服务器的主机地址,<backup_directory> 是备份文件所在的目录路径。

例如,要将备份文件 "/backup" 恢复到名为 "mydb_restored" 的新数据库中,命令如下:

influxd restore -portable -db mydb -newdb mydb_restored -host localhost:8088 /backup
请注意,上述命令中的 -portable 标志表示以可移植格式进行备份和恢复操作。

这些命令可以帮助您在 InfluxDB 中进行数据库的备份和恢复。确保在执行任何数据操作之前,先停止 InfluxDB 服务。详细了解命令参数和其他备份恢复选项,请参考 InfluxDB 官方文档。
posted @ 2023-07-28 18:16  taotaozh  阅读(1427)  评论(0编辑  收藏  举报