2024-11-16
中间件
0

目录

选择安装方式
Docker安装(推荐)
系统包安装
初始化配置
Web界面初始化
命令行初始化
配置文件详解
主配置文件
性能调优参数
安全配置
启用 HTTPS
访问控制
验证安装
检查服务状态
写入测试数据
查询测试数据
常见问题处理
端口冲突
权限问题
内存不足
Docker容器重启后数据丢失
总结

上一篇我们了解了 InfluxDB 的基础概念,现在该动手搭建一个真正能用的 InfluxDB 环境了。别担心,整个过程比你想象的要简单得多。

选择安装方式

InfluxDB 提供了多种安装方式,每种都有自己的适用场景。

image.png

Docker安装(推荐)

如果你的机器上有Docker,这绝对是最省心的方式。一条命令就能跑起来,而且环境隔离,不会污染你的系统。

sh
# 拉取InfluxDB镜像 docker pull influxdb:2.7 # 创建数据目录 mkdir -p /opt/influxdb/data mkdir -p /opt/influxdb/config # 启动InfluxDB容器 docker run -d \ --name influxdb \ -p 8086:8086 \ -v /opt/influxdb/data:/var/lib/influxdb2 \ -v /opt/influxdb/config:/etc/influxdb2 \ influxdb:2.7

这样就启动了一个 InfluxDB 实例,Web 界面可以通过 http://localhost:8086 访问。

系统包安装

如果你更喜欢传统的安装方式,可以直接安装到系统里。

官网下载地址:https://www.influxdata.com/downloads/

image.png

influxdb分为 1.0 2.0 3.0 三个大版本,选择对应的大版本 然后选择对应的操作系统类型后会自动显示对应的下载模板。

CentOS 安装:

sh
# 添加仓库配置 cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF # 安装InfluxDB sudo yum install influxdb2

初始化配置

InfluxDB 初始化配置完整流程,从服务启动到配置完成的详细步骤,包括Web界面和命令行两种方式

image.png

Web界面初始化

安装完成后,打开浏览器访问 http://localhost:8086 你会看到 InfluxDB 的初始化页面。

第一次访问需要设置:

  • 用户名:管理员账号,比如 admin
  • 密码:设置一个强密码
  • 组织名:你的组织名称,比如 mycompany
  • 初始存储桶:第一个数据存储桶,比如 mybucket

这些信息填好后,InfluxDB 会自动生成一个API Token,记得保存好,后面会用到。

命令行初始化

如果你更喜欢命令行,也可以用 Influx CLI 工具:

sh
# 初始化设置 influx setup \ --username admin \ --password mypassword123 \ --org mycompany \ --bucket mybucket \ --force

这样就完成了基础配置。

配置文件详解

InfluxDB 配置文件层次结构,展示主要配置模块及其关键参数设置

image.png

主配置文件

InfluxDB 的配置文件通常在 /etc/influxdb2/config.yml(Linux)或者 Docker容器的 /etc/influxdb2/ 目录下。

yaml
# HTTP服务配置 http-bind-address: ":8086" https-enabled: false # 数据存储路径 engine-path: "/var/lib/influxdb2/engine" bolt-path: "/var/lib/influxdb2/influxd.bolt" # 日志配置 log-level: info # 查询配置 query-concurrency: 1024 query-queue-size: 1024 # 存储配置 storage-cache-max-memory-size: 1073741824 # 1GB storage-cache-snapshot-memory-size: 26214400 # 25MB

性能调优参数

根据你的硬件配置,可以调整这些参数:

yaml
# 内存相关 storage-cache-max-memory-size: 2147483648 # 2GB,根据可用内存调整 storage-wal-max-concurrent-writes: 128 # 并发相关 query-concurrency: 512 # 根据CPU核心数调整 http-read-header-timeout: "10s" http-read-timeout: "0" http-write-timeout: "0"

安全配置

InfluxDB 安全配置要点,包括用户认证、HTTPS加密、API令牌管理、网络安全和数据保护等关键安全措施

image.png

启用 HTTPS

生产环境建议启用 HTTPS:

yaml
https-enabled: true https-certificate: "/path/to/certificate.crt" https-private-key: "/path/to/private.key"

如果没有证书,可以生成自签名证书:

sh
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

访问控制

创建不同权限的用户:

sh
# 创建只读用户 influx user create \ --name readonly \ --password readonlypass123 \ --org mycompany # 创建写入用户 influx user create \ --name writer \ --password writerpass123 \ --org mycompany

验证安装

InfluxDB 安装验证完整流程,从服务状态检查到功能测试的系统化验证步骤

image.png

检查服务状态

sh
# 检查服务是否运行 sudo systemctl status influxdb # 检查端口是否监听 netstat -tlnp | grep 8086 # 检查版本信息 influx version

写入测试数据

用命令行工具测试一下数据写入:

sh
# 设置环境变量 export INFLUX_TOKEN="your-token-here" export INFLUX_ORG="mycompany" export INFLUX_BUCKET="mybucket" # 写入测试数据 influx write \ --bucket mybucket \ --org mycompany \ --token $INFLUX_TOKEN \ 'temperature,location=room1 value=23.5'

查询测试数据

sh
# 查询刚才写入的数据 influx query \ --org mycompany \ --token $INFLUX_TOKEN \ 'from(bucket:"mybucket") |> range(start:-1h)'

如果能看到刚才写入的数据,说明安装配置成功了。

常见问题处理

端口冲突

如果8086端口被占用,可以修改配置文件:

yaml
http-bind-address: ":8087" # 改成其他端口

权限问题

确保InfluxDB进程有权限访问数据目录:

sh
sudo chown -R influxdb:influxdb /var/lib/influxdb2 sudo chmod -R 755 /var/lib/influxdb2

内存不足

如果机器内存较小,可以降低缓存大小:

yaml
storage-cache-max-memory-size: 536870912 # 512MB

Docker容器重启后数据丢失

确保数据目录正确挂载:

sh
docker run -d \ --name influxdb \ -p 8086:8086 \ -v /opt/influxdb/data:/var/lib/influxdb2 \ --restart unless-stopped \ influxdb:2.7

总结

现在你已经有了一个可以正常工作的InfluxDB环境。接下来可以:

  • 熟悉Web界面的各个功能
  • 尝试创建更多的存储桶和用户
  • 学习如何写入和查询数据

记住,InfluxDB 的强大之处在于它对时间序列数据的优化,合理的配置能让你的系统运行得更稳定、更高效。

本文作者:柳始恭

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!