License管理实践–激活、续费、监控、合规操作指南
安装时激活后,Dify Enterprise 的许可证管理不会结束。 到期日期监控、续订程序、分配给多个实例、响应命名空间更改——这些需要作为持续的操作任务纳入 SOP(标准操作程序)中。
从官方文档中可以确认的一个重要事实是,许可证与 Kubernetes 集群的命名空间绑定在一起。换句话说,许可证管理是基础设施操作的一部分,而不仅仅是管理屏幕上的点击操作。
1. License的基本结构
1.1 License与部署环境的关系
graph TB
subgraph "Dify Enterprise License"
L[License ID: DIFY-ENT-xxxx]
end
subgraph "Kubernetes Cluster"
subgraph "namespace: dify-production"
A[dify-enterprise Pod]
B[dify-api Pod]
C[dify-worker Pod]
end
end
L -->|bound to namespace| A
A -->|License 検証| B
A -->|License 検証| C
1.2 主要限制
| 项目 | 内容 |
|---|---|
| 装订单元 | Kubernetes 命名空间 |
| 激活方法 | 线上/线下 |
| 更新后操作 | 需要重新启动 dify-enterprise 部署 |
| 更改命名空间时 | 需要重新激活 |
1.3 在线模式 vs 离线模式
| 项目 | 在线模式 | 离线模式 |
|---|---|---|
| 互联网连接 | 必填 | 不需要 |
| value.yaml 设置 | licenseMode: "online" | licenseMode: "offline" |
| 激活 | 从管理控制台输入许可证密钥 | 手动部署许可证文件 |
| 更新 | 从管理控制台更新操作 | 放置新的许可证文件后重新启动 Pod |
| 应用场景 | 标准云环境 | 气隙环境,严格的网络政策 |
2.激活步骤
2.1 在线激活
# 1. values.yaml で License モードを確認
enterprise:
enabled: true
licenseMode: "online"
# 2. Helm デプロイ(または既存環境の場合は upgrade)
helm upgrade -i dify dify/dify \
-n dify-production \
-f values.yaml \
--wait
# 3. Enterprise 管理コンソールにアクセス
# https://enterprise.dify.example.co.jp
# → License 画面で License キーを入力
# 4. アクティベーション成功を確認
kubectl get pods -n dify-production -l app=dify-enterprise
# STATUS が Running であること
2.2 离线激活
# 1. values.yaml で License モードをオフラインに変更
enterprise:
enabled: true
licenseMode: "offline"
# 2. Helm デプロイ
helm upgrade -i dify dify/dify \
-n dify-production \
-f values.yaml \
--wait
# 3. License ファイルの配置
# 公式ドキュメントの手順に従い、License ファイルを
# 所定のパスに配置する
# 4. Enterprise Pod を再起動
kubectl rollout restart deployment/dify-enterprise -n dify-production
# 5. 起動確認
kubectl rollout status deployment/dify-enterprise -n dify-production
2.3 激活后确认清单
- 可以登录企业管理控制台
- 许可证信息(到期日期和计划详细信息)正确显示。
- API / Worker / Web Pod 正常处于运行状态。
- 应用程序创建和执行工作正常。
- 将License信息以截图或文本形式记录在账本中
3.许可证账本管理
3.1 管理三个账本
在企业运营中,会维护以下三个账本。
####账本1:License基本信息
| 项目 | 录制内容 | 示例(フィクション) |
|---|---|---|
| 许可证编号 | 唯一标识符 | (契約書記載の番号) |
| 计划类型 | 版本名称 | (契約プランによる) |
| 出版日期 | 许可证发布日期 | 2026-01-15 |
| 有效期 | 有效期 | 2027-01-14 |
| 承包商 | 采购机构名称 | 示例有限公司 |
| 销售 | 联系方式 | (担当営業の連絡先) |
| 授权用户数量 | 上限 | (契約により異なる) |
| 允许的工作空间数量 | 上限 | (契約により異なる) |
账本2:实例信息
| 项目 | 录制内容 | 示例 |
|---|---|---|
| 集群名称 | Kubernetes 集群标识符 | 产品集群 apne1 |
| 命名空间 | 许可证目的地 | dify 生产 |
| 环境类型 | 生产/分期/验证 | 生产 |
| 经理 | 基础设施经理 | 山田太郎 |
| 用户部 | 主要用户组织 | 全公司 |
| Dify版本 | 当前版本 | 3.7.2 |
账本 3:更新/操作历史记录
| 日期和时间 | 操作详情 | 表演者 | 笔记 |
|---|---|---|---|
| 2026-01-15 | 首次激活 | 山田太郎 | 在线模式 |
| 2026-04-01 | 版本升级3.6→3.7 | 山田太郎 | 许可证重新验证 |
| 2026-07-01 | 许可证刷新 | 山田太郎 | 从管理控制台实施 |
| 2026-10-15 | 续约谈判开始 | 佐藤花子 | 有效期 90 天前 |
4. 监控过期日期
4.1 多阶段警报设计
许可证到期将直接导致Dify Enterprise完全暂停,请预留足够的时间应对。
gantt
title License 有効期限アラートスケジュール
dateFormat YYYY-MM-DD
section アラート
90日前通知 (更新交渉開始) :milestone, m1, 2026-10-15, 0d
60日前通知 (契約締結目標) :milestone, m2, 2026-11-14, 0d
30日前通知 (技術準備完了) :milestone, m3, 2026-12-15, 0d
14日前通知 (最終確認) :milestone, m4, 2026-12-31, 0d
7日前通知 (緊急対応) :milestone, m5, 2027-01-07, 0d
期限満了 :milestone, m6, 2027-01-14, 0d
| 剩余天数 | 警报级别 | 行动 | 通知目的地 |
|---|---|---|---|
| 90 天 | 信息 | 开始续约谈判并获取报价 | 采购部+信息系统部 |
| 60 天 | 警告 | 签订合同并获取新的许可证密钥 | 采购部+信息系统部 |
| 30 日 | 警告 | 技术更新准备工作完成 | 信息系统部 |
| 14日 | 高 | 已执行更新工作并确认操作 | 信息系统部 |
| 7 天 | 关键 | 如果不完整则紧急升级 | 管理层+所有利益相关者 |
4.2 自动监控实施政策
自动监控可以通过以下方式实现:
- Shell 脚本 + cron:每天执行一个脚本,从 Enterprise Pod 检索许可证到期日期,并根据剩余天数通过 Slack/电子邮件通知您。
- Prometheus + AlertManager:将剩余许可证天数公开为指标并在 PrometheusRule 中定义警报
4.3 使用 Prometheus 进行指标监控
# PrometheusRule 例
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: dify-license-alerts
namespace: monitoring
spec:
groups:
- name: dify-license
rules:
- alert: DifyLicenseExpiringSoon
expr: dify_license_days_remaining < 30
for: 1h
labels:
severity: warning
annotations:
summary: "Dify License の有効期限が 30 日以内です"
description: "残り {{ $value }} 日です。更新手続きを確認してください。"
- alert: DifyLicenseExpiryCritical
expr: dify_license_days_remaining < 7
for: 1h
labels:
severity: critical
annotations:
summary: "Dify License の有効期限が 7 日以内です"
description: "残り {{ $value }} 日です。至急更新してください。"
5. 许可证更新程序
5.1 更新流程
sequenceDiagram
participant PM as 購買担当
participant Dify as Dify Sales
participant IT as 情報システム部
participant K8s as Kubernetes Cluster
PM->>Dify: 更新見積もり依頼 (90日前)
Dify->>PM: 見積もり提出
PM->>PM: 社内承認プロセス
PM->>Dify: 発注 (60日前)
Dify->>IT: 新 License キー送付
IT->>IT: ステージング環境で検証 (30日前)
IT->>K8s: 本番 License 更新 (14日前)
K8s->>K8s: enterprise Pod 再起動
IT->>IT: 動作確認・台帳更新
5.2 更新实施流程(通用)
# 1. ステージング環境で事前検証(新 License キーまたはファイルを適用)
# 2. 本番環境で License 更新
# オンライン: 管理コンソールから新しい License キーを入力
# オフライン: 新しい License ファイルを配置
# 3. enterprise Pod を再起動(更新反映のため必須)
kubectl rollout restart deployment/dify-enterprise -n dify-production
kubectl rollout status deployment/dify-enterprise -n dify-production --timeout=300s
# 4. 動作確認
curl -s https://enterprise.dify.example.co.jp/api/health | jq .
# 管理コンソールで新しい有効期限が反映されていることを確認
6. 多个实例的许可证分发
6.1 按环境划分的分配策略
如果您的公司运营多个 Dify Enterprise 实例,请明确您的许可证分配政策。
| 环境 | 优先 | 许可证类型 | 笔记 |
|---|---|---|---|
| 生产 | 首要任务 | 普通许可证 | 到期对业务影响最大 |
| 分期 | 高 | 正版授权 | 生产升级前需要验证 |
| 验证/开发 | 中等 | 评估许可证或普通许可证 | 优先级较低,因为更容易重建 |
| 灾难恢复站点 | 高 | 普通许可证 | 发生故障时立即切换 |
6.2 更改命名空间的注意事项
由于许可证链接到命名空间,因此在以下情况下需要重新激活。
- 如果更改命名空间名称
- 如果迁移到另一个集群
- 故障转移到 DR 集群时
# namespace 変更時の対応手順
# 1. 新 namespace にデプロイ
helm upgrade -i dify dify/dify \
-n dify-production-v2 \
-f values.yaml \
--wait
# 2. 再アクティベーション
# 管理コンソールから License キーを再入力
# オフラインの場合は License ファイルを再配置
# 3. 旧 namespace のクリーンアップ
kubectl delete namespace dify-production-old
6.3 DR(灾难恢复)环境中的许可证
在容灾环境中,检查是否需要容灾License,记录故障切换时的重新激活过程,并提前将License文件放置到离线环境中。恢复训练期间还应验证许可证激活。
7. 合规性和内部控制
7.1 许可证相关控制点
| 控制项目 | 内容 | 频率 |
|---|---|---|
| 许可证库存 | 检查所有实例的许可证状态 | 季刊 |
| 使用状态回顾 | 检查用户和工作空间的数量是否在许可证限制内 | 每月 |
| 遵守合同条件 | 检查License使用范围是否符合合同条件 | 季刊 |
| 账本的准确性 | 检查账本记录是否与实际环境相符 | 季刊 |
| 追踪踪迹 | 保留激活和更新的工作记录 | 每次 |
7.2 审核准备情况
在准备内部审计和外部审计(J-SOX 等)时,准备许可证分类账、续订审批流程文件、工作记录、有效期监控日志和纠正程序。
8. 常见问题及解决方法
| 症状 | 原因 | 治疗 |
|---|---|---|
| Enterprise Pod 无法启动 | 许可证未激活 | 从管理控制台激活 |
| “许可证已过期”错误 | 有效期 | 执行更新程序并重新启动 Pod |
| 命名空间迁移后身份验证错误 | 许可证命名空间不匹配 | 使用新命名空间重新激活 |
| 离线模式下不反映更新 | 忘记重启 Pod | 执行 kubectl rollout restart |
| 管理控制台不显示License信息 | Enterprise Pod 异常 | 检查 Pod 日志并在必要时重新部署 |
| 达到用户限制 | 扩大用途 | 考虑升级您的许可证 |
9. 总结
下面总结了可靠许可证管理的五个原则。
- 维护账本:创建三个账本:License基本信息、实例信息、操作历史记录,并保持最新。
- 设置多步骤警报:提前90 / 60 / 30 / 14 / 7天分5步通知,以便提前进行续订流程。
- 将更新流程转化为SOP:登台验证→生产更新→操作确认→标准化账本更新流程
- 注意与命名空间的链接:始终记住,迁移、灾难恢复或更改命名空间时需要重新激活。
- 确保合规性:通过定期进行库存、使用情况审查和跟踪存储来为审核做好准备。
该许可证是 Dify Enterprise 的“运营先决条件”。如果此过程被中断,所有服务都将停止。这就是为什么将许可证管理定位为基础设施运营 SOP 中的首要项目非常重要。