文章目录
准备工作
## 官方文档及仓库
https://influxdb-v1-docs-cn.cnosdb.com/influxdb/v1.8/administration/config/
https://hub.docker.com/_/influxdb/tags?name=1.11.8
## 拉取镜像
docker pull influxdb:1.11.8
## 创建influxdb的程序配置目录,与数据存储目录
mkdir -p /opt/devops/influxdb/certs
mkdir -p /data/influxdb
mkdir -p /opt/devops/influxdb/certs
# 因为这个docker容器内部的influxdb用户id和组id是1500(用其他镜像可能要先进镜像查看下)
groupadd -g 1500 influxdb
useradd -u 1500 -g 1500 -M -s /sbin/nologin influxdb ; passwd -l influxdb
chown influxdb:influxdb /data/influxdb
## 生成10年有效期的自签证书
cd /opt/devops/influxdb/certs
openssl req -x509 -nodes -newkey rsa:2048 -keyout ./influxdb-selfsigned.key -out ./influxdb-selfsigned.crt -days 3650
# 修正权限
chown influxdb:influxdb -R /opt/devops/influxdb/certs/
chmod 644 /opt/devops/influxdb/certs/influxdb-selfsigned.crt
chmod 600 /opt/devops/influxdb/certs/influxdb-selfsigned.key
准备influxdb的配置文件
cat /opt/devops/influxdb/influxdb.conf
[meta]
dir = "/var/lib/influxdb/meta"
[data]
dir = "/var/lib/influxdb/data"
engine = "tsm1"
wal-dir = "/var/lib/influxdb/wal"
## 上面是我从原始docker image中提取的,下面是自定义的
[http]
auth-enabled = true # 启用 HTTP/HTTPS 的用户认证
# 设置监听端口启用https
enabled = true
https-enabled = true
bind-address = ":8086"
https-certificate = "/etc/influxdb/certs/influxdb-selfsigned.crt"
https-private-key = "/etc/influxdb/certs/influxdb-selfsigned.key"
# 可选:限制 TLS 最低版本(推荐 TLS 1.2+)
# tls-min-version = "tls1.2"
http-enabled = false # 强制禁用 HTTP(关键设置!)
准备docker-compose.yml
cat /opt/devops/influxdb/docker-compose.yml
services:
byy_influxdb:
image: influxdb:1.11.8
container_name: influxdb
ports:
- "8086:8086" # InfluxDB HTTP API 端口
volumes:
- /data/influxdb:/var/lib/influxdb # 持久化数据
- ./certs:/etc/influxdb/certs
- ./influxdb.conf:/etc/influxdb/influxdb.conf # 用当前指定配置覆盖容器内的配置
environment:
- INFLUXDB_ADMIN_USER=admin # 管理员用户名(请改成自己的)
- INFLUXDB_ADMIN_PASSWORD=admin # 管理员密码(请改成自己的)
- INFLUXDB_DB=haha # 默认数据库(请改成自己的)
#- INFLUXDB_HTTP_LOG_ENABLED=false # 禁用 HTTP 日志
#- INFLUXDB_REPORTING_DISABLED=true # 禁用匿名报告
#networks:
# - byy_influxdb
restart: always
启动influxdb
## 启动
cd /opt/devops/influxdb
docker compose up -d
## 检查验证 HTTPS 是否关闭
curl -v http://localhost:8086/ping
curl -k https://localhost:8086/ping # -k 跳过证书验证(测试用)
influx -ssl -host 127.0.0.1
influx -ssl -unsafeSsl -host 127.0.0.1
influx -ssl -unsafeSsl -host 127.0.0.1 -username admin -password admin
附、influxdb 日常操作命令
## influxdb 1版本,保留策略(Retention Policy)管理
# ,对haha数据库,创建一个保留一年的策略(单节点,副本数写1)
CREATE RETENTION POLICY "haha_rp_policy" ON "haha" DURATION 366d REPLICATION 1 DEFAULT
# 修改保留策略
ALTER RETENTION POLICY "haha_rp_policy" ON "haha" DURATION 30d DEFAULT
# 查看数据库haha的数据保留策略
SHOW RETENTION POLICIES ON "haha"
# 删除保留策略(需确保有其他策略作为默认策略)
DROP RETENTION POLICY "haha_rp_policy" ON haha
## 用户和权限管理
# 创建普通用户
CREATE USER "qytdbuser" WITH PASSWORD 'Cisc0123'
# 创建管理员用户
CREATE USER admin WITH PASSWORD 'Cisc0123' WITH ALL PRIVILEGES
# 删除用户
DROP USER admin
# 创建数据库
CREATE DATABASE qytdb
# 选择数据库
USE qytdb
# 授予数据库权限(给普通用户数据库权限)
GRANT ALL ON qytdb TO qytdbuser # 授予用户 qytdbuser 对数据库 qytdb 的所有权限(读写、管理等)
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论