当前位置: 首页 > article >正文

Influxdb 部署详解

InfluxDB是一个由InfluxData开发的开源时序数据库,专为高性能地查询与存储时序数据而设计。以下提供了InfluxDB在不同环境下的部署方法:
1、在Docker中部署InfluxDB

  1. 获取镜像:
    • 使用Docker命令拉取InfluxDB镜像。
  2. 启动容器:
    • 使用docker run命令启动InfluxDB容器,并指定必要的参数,如端口映射等。
  3. 进入容器:
    • 启动成功后,可以通过docker exec命令进入InfluxDB容器内部进行进一步配置或操作。
  4. 创建数据库:
    • 进入容器后,可以使用InfluxDB的命令行工具创建数据库等。
      2、在Windows系统中部署InfluxDB
  5. 下载与解压:
    • 从InfluxDB官网或其他可信来源下载适用于Windows的InfluxDB安装包,并解压到指定目录。
  6. 生成配置文件:
    • 以管理员身份运行cmd,进入InfluxDB解压目录,使用influxd config命令生成配置文件influxd.config。
  7. 修改配置:
    • 编辑生成的配置文件,修改必要的配置项,如bind-address、数据存储目录等。

一、环境准备

在部署InfluxDB之前,需要做好以下环境准备工作:

  1. 硬件资源:确保有足够的硬件资源(如CPU、内存、磁盘空间)来支持InfluxDB的运行。
  2. 操作系统:InfluxDB支持多种操作系统,包括Windows、Linux等。选择适合的操作系统版本,并确保其稳定可靠。
  3. 网络配置:确保服务器能够连接到互联网或内部网络,以便进行数据传输和通信。

二、关键配置参数

InfluxDB的配置文件包含多个参数,以下是一些关键参数的解释:

  1. reporting-disabled:是否上报InfluxDB的使用信息给InfluxData公司,默认值为false。
  2. bind-address:绑定地址以用于RPC服务以进行备份和还原,默认配置是127.0.0.1:8088。HTTP服务的绑定地址通常也在配置文件中指定。
  3. [meta]:控制存储有关InfluxDB群集的元数据的Raft共识组的参数。
    • dir:存储元数据/raft数据库的目录,默认值/var/lib/influxdb/meta。
  4. retention-autocreate:用于控制默认存储策略,数据库创建时,会自动生成autogen的存储策略,默认值true。
  5. logging-enabled:为元服务打印日志消息,默认值true。
  6. [data]:控制InfluxDB的实际分片数据的生存位置以及它从WAL(Write-Ahead Logging)中刷新的方式。
    • dir:最终数据(TSM文件)存储目录,默认值/var/lib/influxdb/data。
    • wal-dir:预写日志存储目录,默认值/var/lib/influxdb/wal。
  7. index-version:用于新分片的分片索引的类型。默认值是在启动时重新创建的内存中索引。
  8. query-log-enabled:是否开启tsm引擎查询日志,默认值true。
  9. cache-max-memory-size:用于限定shard最大值,大于该值时会拒绝写入,默认值1GB。
  10. [coordinator]:控制群集服务配置。
    • write-timeout:写操作超时时间,默认值10s。
    • max-concurrent-queries:最大并发查询数,0无限制,默认值0。
  11. [retention]:旧数据的保留策略。
    • enabled:是否启用该模块,默认值true。
    • check-interval:检查时间间隔,默认值30m。
  12. [shard-precreation]:分区预创建。
    • enabled:是否启用该模块,默认值true。
    • check-interval:检查时间间隔,默认值10m。
  13. [admin]:InfluxDB提供的简单web管理页面。
    • enabled:是否启用该模块,默认值false。
    • https-enabled:是否开启https,默认值false。
  14. [monitor]:控制InfluxDB自有的监控系统。
    • store-enabled:是否启用该模块,默认值true。
    • store-database:默认数据库_internal。
  15. [http]:InfluxDB的http接口配置。
    • enabled:是否启用该模块,默认值true。
    • bind-address:绑定地址,默认值:8086。
    • auth-enabled:是否开启认证,默认值false。

三、容器部署

InfluxDB的Docker部署可以大大简化安装过程并确保环境的一致性。以下是详细的部署步骤:

1、前提条件

确保系统上已经安装了Docker。如果尚未安装,可以按照以下步骤进行安装(以Ubuntu为例):

  1. 更新软件包列表:
sudo apt update
  1. 安装Docker:
sudo apt install docker.io
  1. 启动Docker服务:
sudo systemctl start docker
  1. 设置Docker开机自启:
sudo systemctl enable docker

2、拉取InfluxDB镜像

使用Docker Hub中的InfluxDB镜像。运行以下命令拉取最新版本的InfluxDB:

docker pull influxdb:latest

也可以指定一个特定的版本号,例如:

docker pull influxdb:1.7.10

3、运行InfluxDB容器

可以通过以下命令运行一个InfluxDB容器:

docker run -d --name influxdb -p 8086:8086 influxdb:latest

参数解释:

  • docker run:启动一个新的Docker容器。
  • -d:容器将在后台运行。
  • –name influxdb:为容器指定一个名称。
  • -p 8086:8086:将主机的8086端口映射到容器的8086端口(InfluxDB的默认端口)。

4、验证InfluxDB是否成功启动

运行以下命令查看容器状态,确保有名为influxdb的容器在运行:

docker ps

也可以使用以下命令进入容器并检查日志:

docker logs influxdb

5、数据持久化

为了防止数据丢失,可以设置数据持久化。运行容器时添加一个数据卷:

docker run -d --name influxdb -p 8086:8086 -v /path/to/your/data:/var/lib/influxdb influxdb:latest

参数解释:

  • -v /path/to/your/data:/var/lib/influxdb:将主机上的/path/to/your/data目录挂载到容器内部的/var/lib/influxdb目录,使数据在容器重启后得以保存。

6、访问InfluxDB

现在,可以通过主机的8086端口访问InfluxDB。例如,使用InfluxDB客户端连接到数据库:

influx -host localhost -port 8086

或者,如果设置了用户权限和认证,需要使用用户名和密码进行连接:

influx -host localhost -port 8086 -username username -password password

7、额外配置

根据需要,可以对InfluxDB进行进一步的配置,例如配置用户权限、Retention Policy等。这些配置通常可以通过InfluxDB的Web管理界面或命令行客户端进行。

8、创建容器网络(可选)

如果应用场景中需要Grafana或其他服务与InfluxDB进行通信,可以创建一个新的Docker网络并将它们连接到该网络。例如:

docker network create grafana
docker run -d --name influxdb --network grafana -p 8086:8086 -v /home/influxdb:/var/lib/influxdb influxdb:1.7.10

这样,Grafana容器就可以通过容器名称influxdb来访问InfluxDB服务了。

通过以上步骤,已经成功在Docker上部署了InfluxDB。记得根据实际需求对InfluxDB进行配置和优化。

四、Linux部署

在Linux系统上部署InfluxDB通常涉及几个关键步骤,包括准备系统环境、下载和安装InfluxDB、配置InfluxDB以及启动和验证服务。以下是一个详细的部署指南:

1、准备系统环境

  1. 检查系统资源:
    确保Linux系统有足够的可用磁盘空间和内存资源来运行InfluxDB。
  2. 安装依赖:
    对于某些Linux发行版,可能需要安装额外的依赖项或软件包。例如,如果InfluxDB是用Go语言编写的,系统可能需要有Go语言的运行时环境(尽管大多数预编译的二进制包不需要这个)。

2、下载和安装InfluxDB

  1. 下载安装包:
    • 访问InfluxDB的官方网站或GitHub仓库,找到最新版本的安装包。
    • 根据Linux发行版和架构(如amd64、arm64等)选择合适的安装包。
  2. 安装InfluxDB:
    • 对于Debian/Ubuntu系统,可以使用dpkg或apt-get命令安装.deb包。
    • 对于Red Hat/CentOS系统,可以使用rpm或yum命令安装.rpm包。
    • 对于通用的二进制包,可以下载.tar.gz文件,然后解压到指定目录。
      例如,使用tar.gz包安装的命令如下:
tar xvfz influxdb-<version>_linux_<arch>.tar.gz
cd influxdb-<version>_linux_<arch>

3、配置InfluxDB

  1. 编辑配置文件:
    • 通常,InfluxDB的配置文件位于/etc/influxdb/influxdb.conf(对于使用包管理器安装的情况)或解压目录下的influxdb.conf(对于二进制包安装的情况)。
    • 使用文本编辑器(如vim、nano等)打开配置文件,并根据需要进行修改。
  2. 配置HTTP服务:
    • 确保HTTP服务已启用,并配置正确的绑定地址和端口(默认为8086)。
  3. 其他配置:
    • 根据需要配置数据库存储路径、日志级别、Retention Policy等。

4、启动和验证InfluxDB服务

  1. 启动服务:
    • 对于使用包管理器安装的情况,可以使用systemctl、service或/etc/init.d/脚本启动服务。
    • 对于二进制包安装的情况,可以直接运行解压目录下的./influxd命令启动服务。
      例如:
sudo systemctl start influxdb  # 对于使用systemd的系统
sudo service influxdb start     # 对于使用SysVinit的系统
./influxd                      # 对于二进制包安装的情况
  1. 验证服务状态:
    • 使用systemctl、service或ps命令检查InfluxDB服务的状态。
    • 使用netstat或ss命令检查InfluxDB是否正在监听配置的端口(默认为8086)。
      例如:
sudo systemctl status influxdb  # 检查服务状态
sudo netstat -tulnp | grep 8086 # 检查端口监听状态
  1. 连接到InfluxDB:
    • 使用InfluxDB的命令行客户端(influx)连接到数据库。
    • 执行数据库操作,如创建数据库、插入数据、查询数据等。
      例如:
influx
Connected to http://localhost:8086 version <version>
InfluxDB shell version: <version>
> CREATE DATABASE mydb
> USE mydb
> INSERT cpu_load_short,host=server01 value=0.64
> SELECT "value" FROM "cpu_load_short"

通过以上步骤,应该能够在Linux系统上成功部署并运行InfluxDB。如果遇到任何问题,可以参考InfluxDB的官方文档或社区支持获取帮助。


http://www.kler.cn/a/422162.html

相关文章:

  • 计算机视觉:从核心算法到实际应用的全面解析
  • docker更换容器存储位置
  • 聊聊GC Roots
  • 【JMX JVM监控】Prometheus读取Trino的JMX数据到Grafana展示
  • Spark常问面试题---项目总结
  • 存储过程案例详解与应用示例
  • 2-2-18-9 QNX系统架构之文件系统(三)
  • Qt5中使用EPICS通道访问读写EPICS PV
  • Qt几何数据类型:QLine类型详解(基础向)
  • 时序图学习
  • 1203论文速读
  • llvm源码编译
  • 基于Java Springboot旅游攻略APP且微信小程序
  • 6.824/6.5840(2024)环境配置wsl2+vscode
  • 使用Apache HttpClient发起一个POST HTTP请求
  • 【Android 腾讯地图】腾讯地图开发记录 ① ( 地图基础显示 | 创建应用和申请key | 配置远程依赖库 | 配置腾讯地图 Key | 同意隐私协议 | 布局设置 | 覆盖自定义地图图片 )
  • burp2
  • DeviceIoControl超时后如何处理
  • 【Spring】接口版本控制最佳实现
  • Vue3 父子组件传值
  • ESLint 规则入门:如何配置重要性及选项(2)
  • 【数据分析】如何根据数据选择图表类型
  • 【Android】组件化嘻嘻嘻gradle耶耶耶
  • 下载 M3U8 格式的视频
  • c++ mfc调用UpdateData(TRUE)时,发生异常
  • ElasticSearch easy-es 聚合函数 group by 混合写法求Top N 词云 分词