组织管理 #

一、组织概述 #

1.1 什么是组织 #

text
组织概念:

定义
├── 顶层容器
├── 用户和权限边界
├── 资源隔离单位
└── 多租户支持

作用
├── 隔离不同项目数据
├── 管理用户权限
├── 组织Bucket
└── 控制访问范围

1.2 组织结构 #

text
InfluxDB层级结构:

Instance(实例)
│
├── Organization: production
│   ├── Users
│   │   ├── admin
│   │   ├── developer
│   │   └── viewer
│   ├── Buckets
│   │   ├── metrics
│   │   └── logs
│   └── Tokens
│       ├── admin-token
│       └── read-token
│
└── Organization: development
    ├── Users
    │   └── developer
    └── Buckets
        └── test-data

二、创建组织 #

2.1 初始化时创建 #

text
首次设置:

1. 访问 http://localhost:8086
2. 点击 "Get Started"
3. 填写组织信息
   ├── Organization Name: my-org
   ├── Bucket Name: my-bucket
   └── Retention Period: 7 days

2.2 CLI创建 #

bash
# 创建组织
influx org create \
    --name my-org \
    --description "生产环境组织"

# 查看创建结果
influx org list

2.3 API创建 #

bash
# 使用API创建组织
curl -X POST "http://localhost:8086/api/v2/orgs" \
    --header "Authorization: Token YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --data '{
        "name": "my-org",
        "description": "生产环境组织"
    }'

三、查看组织 #

3.1 CLI查看 #

bash
# 列出所有组织
influx org list

# 查看特定组织
influx org list --name my-org

# 按ID查看
influx org list --id 1234567890abcdef

3.2 API查看 #

bash
# 获取所有组织
curl -X GET "http://localhost:8086/api/v2/orgs" \
    --header "Authorization: Token YOUR_TOKEN"

# 获取特定组织
curl -X GET "http://localhost:8086/api/v2/orgs/ORG_ID" \
    --header "Authorization: Token YOUR_TOKEN"

3.3 Flux查看 #

flux
// 列出所有组织
import "influxdata/influxdb"

influxdb.orgs()

// 过滤特定组织
import "influxdata/influxdb"

influxdb.orgs()
    |> filter(fn: (r) => r.name == "my-org")

3.4 输出说明 #

text
组织列表输出:

ID                      Name            Description
1234567890abcdef        my-org          生产环境组织
0987654321fedcba        dev-org         开发环境组织

字段说明:
├── ID: 组织唯一标识
├── Name: 组织名称
└── Description: 组织描述

四、更新组织 #

4.1 CLI更新 #

bash
# 更新组织名称
influx org update \
    --id 1234567890abcdef \
    --name new-org-name

# 更新描述
influx org update \
    --id 1234567890abcdef \
    --description "新的描述"

# 同时更新多个属性
influx org update \
    --id 1234567890abcdef \
    --name updated-org \
    --description "更新后的组织"

4.2 API更新 #

bash
# 使用API更新组织
curl -X PATCH "http://localhost:8086/api/v2/orgs/ORG_ID" \
    --header "Authorization: Token YOUR_TOKEN" \
    --header "Content-Type: application/json" \
    --data '{
        "name": "updated-org",
        "description": "更新后的组织"
    }'

五、删除组织 #

5.1 CLI删除 #

bash
# 按ID删除
influx org delete --id 1234567890abcdef

# 按名称删除
influx org delete --name my-org

5.2 API删除 #

bash
# 使用API删除组织
curl -X DELETE "http://localhost:8086/api/v2/orgs/ORG_ID" \
    --header "Authorization: Token YOUR_TOKEN"

5.3 删除警告 #

text
删除组织警告:

⚠️ 删除组织将删除:
├── 所有Bucket
├── 所有Token
├── 所有Dashboard
├── 所有Task
├── 所有用户关联
└── 所有数据(不可恢复)

建议:
├── 删除前备份重要数据
├── 确认组织ID正确
└── 先删除关联资源

六、用户管理 #

6.1 创建用户 #

bash
# 创建用户
influx user create \
    --name developer \
    --password Dev@123 \
    --org my-org

# 创建用户并设置角色
influx user create \
    --name admin \
    --password Admin@123 \
    --org my-org \
    --operator

# 查看用户列表
influx user list

6.2 用户与组织关联 #

bash
# 将用户添加到组织
influx org members add \
    --org my-org \
    --member-id USER_ID

# 从组织移除用户
influx org members remove \
    --org my-org \
    --member-id USER_ID

# 查看组织成员
influx org members list --org my-org

6.3 更新用户 #

bash
# 更新用户密码
influx user password \
    --name developer \
    --password NewPass@123

# 更新用户名
influx user update \
    --id USER_ID \
    --name new-name

6.4 删除用户 #

bash
# 删除用户
influx user delete --id USER_ID

# 按名称删除
influx user delete --name developer

七、权限管理 #

7.1 权限类型 #

text
权限类型:

全局权限
├── owner - 所有者
│   └── 完全控制权限
├── operator - 操作员
│   └── 管理资源权限
└── member - 成员
    └── 基本访问权限

资源权限
├── read - 读取权限
├── write - 写入权限
└── delete - 删除权限

权限范围
├── 组织级别
├── Bucket级别
└── 特定资源

7.2 创建Token #

bash
# 创建全权限Token
influx auth create \
    --org my-org \
    --operator

# 创建组织读写Token
influx auth create \
    --org my-org \
    --read-buckets \
    --write-buckets

# 创建特定Bucket Token
influx auth create \
    --org my-org \
    --read-bucket my-bucket \
    --write-bucket my-bucket

# 创建只读Token
influx auth create \
    --org my-org \
    --read-bucket my-bucket

7.3 管理Token #

bash
# 查看Token列表
influx auth list

# 查看特定Token
influx auth list --id AUTH_ID

# 删除Token
influx auth delete --id AUTH_ID

# 设置Token活跃状态
influx auth update \
    --id AUTH_ID \
    --inactive

7.4 权限示例 #

bash
# 创建开发环境Token
influx auth create \
    --org development \
    --read-buckets \
    --write-buckets \
    --description "开发环境Token"

# 创建只读监控Token
influx auth create \
    --org production \
    --read-bucket metrics \
    --description "监控只读Token"

# 创建日志写入Token
influx auth create \
    --org production \
    --write-bucket logs \
    --description "日志写入Token"

八、组织最佳实践 #

8.1 组织规划 #

text
组织规划建议:

按环境分
├── production(生产)
├── staging(预发布)
└── development(开发)

按业务分
├── iot-platform
├── monitoring-system
└── analytics-platform

按团队分
├── team-backend
├── team-frontend
└── team-devops

按客户分
├── customer-a
├── customer-b
└── customer-c

8.2 权限规划 #

text
权限规划建议:

管理员
├── owner权限
├── 管理所有资源
└── 创建/删除用户

开发者
├── 读写权限
├── 创建Bucket
└── 编写查询

运维人员
├── 读写权限
├── 配置监控
└── 管理Task

只读用户
├── 只读权限
├── 查看Dashboard
└── 导出数据

8.3 安全建议 #

text
安全最佳实践:

Token管理
├── 定期轮换Token
├── 使用最小权限原则
├── 不要共享Token
└── 删除不用的Token

用户管理
├── 强密码策略
├── 定期审计用户
├── 及时移除离职用户
└── 使用SSO集成

访问控制
├── 启用HTTPS
├── 限制IP访问
├── 审计日志
└── 监控异常访问

九、多租户架构 #

9.1 多租户设计 #

text
多租户架构:

方案一:组织隔离
├── 每个客户一个组织
├── 完全数据隔离
├── 独立权限管理
└── 适合大型客户

方案二:Bucket隔离
├── 共享组织
├── 每个客户独立Bucket
├── 通过Token隔离
└── 适合中小客户

方案三:标签隔离
├── 共享Bucket
├── 通过标签区分
├── 应用层过滤
└── 适合轻量级场景

9.2 多租户示例 #

bash
# 创建客户组织
influx org create --name customer-a
influx org create --name customer-b

# 为每个客户创建Bucket
influx bucket create --name metrics --org customer-a
influx bucket create --name metrics --org customer-b

# 创建客户专属Token
influx auth create \
    --org customer-a \
    --read-bucket metrics \
    --write-bucket metrics \
    --description "Customer A Token"

十、监控组织 #

10.1 查看组织资源 #

bash
# 查看组织下的Bucket
influx bucket list --org my-org

# 查看组织成员
influx org members list --org my-org

# 查看组织Token
influx auth list --org my-org

10.2 资源统计 #

flux
// 统计组织数据量
import "influxdata/influxdb"

influxdb.cardinality(
    bucket: "my-bucket",
    org: "my-org",
    start: -30d
)

十一、完整示例 #

11.1 创建生产环境组织 #

bash
#!/bin/bash
# setup_production_org.sh

ORG="production"

# 创建组织
echo "Creating organization: $ORG"
influx org create \
    --name "$ORG" \
    --description "生产环境组织"

# 创建Bucket
echo "Creating buckets..."
influx bucket create \
    --name metrics \
    --org "$ORG" \
    --retention 720h

influx bucket create \
    --name logs \
    --org "$ORG" \
    --retention 168h

# 创建用户
echo "Creating users..."
influx user create \
    --name admin \
    --password Admin@123 \
    --org "$ORG"

# 创建Token
echo "Creating tokens..."
influx auth create \
    --org "$ORG" \
    --read-buckets \
    --write-buckets \
    --description "生产环境Token"

echo "Setup complete!"

11.2 创建开发环境组织 #

bash
#!/bin/bash
# setup_dev_org.sh

ORG="development"

# 创建组织
influx org create \
    --name "$ORG" \
    --description "开发环境组织"

# 创建测试Bucket
influx bucket create \
    --name test-data \
    --org "$ORG" \
    --retention 24h

# 创建开发者Token
influx auth create \
    --org "$ORG" \
    --read-buckets \
    --write-buckets \
    --description "开发环境Token"

十二、总结 #

组织管理要点:

  1. 合理规划:按环境、业务或团队划分组织
  2. 权限控制:遵循最小权限原则
  3. Token管理:定期轮换,及时清理
  4. 用户管理:强密码,定期审计
  5. 多租户设计:根据需求选择合适的隔离方案

下一步,让我们学习行协议!

最后更新:2026-03-27