# Vault与Consul集成配置指南 ## 1. 概述 本文档详细说明了Vault与Consul的集成配置,包括架构设计、配置参数和管理操作。 ## 2. 集成架构 ### 2.1 架构图 ``` +------------------+ | Vault Client | +------------------+ | +------------------+ | Vault Server | | (3个节点集群) | +------------------+ | +------------------+ | Consul Backend | | (3个节点集群) | +------------------+ ``` ### 2.2 节点分布 - **Vault节点**: - master节点: 100.117.106.136 - ash3c节点: 100.116.80.94 - warden节点: 100.122.197.112 - **Consul节点**: - master节点: 100.117.106.136 - ash3c节点: 100.116.80.94 - warden节点: 100.122.197.112 ## 3. 配置详情 ### 3.1 Vault配置文件 每个Vault节点的配置文件位于:`/opt/nomad/data/vault/config/vault.hcl` ```hcl storage "consul" { address = "<本地Consul地址>:8500" path = "vault/" } listener "tcp" { address = "0.0.0.0:8200" tls_disable = 1 } api_addr = "http://<节点IP>:8200" cluster_addr = "http://<节点IP>:8201" ui = true disable_mlock = true ``` ### 3.2 Consul配置 Consul作为Vault的存储后端,存储了所有Vault的持久化数据,包括: - 密钥材料 - 策略信息 - 审计日志 - 集群状态 ## 4. 集成验证 ### 4.1 验证命令 ```bash # 检查Vault状态 vault status # 检查Consul成员 consul members # 检查Consul中的Vault数据 curl http://:8500/v1/kv/vault/?recurse | jq . ``` ### 4.2 验证脚本 ```bash # 运行完整验证 /root/mgmt/deployment/scripts/verify_vault_consul_integration.sh ``` ## 5. 管理操作 ### 5.1 日常管理 ```bash # 显示状态 /root/mgmt/deployment/scripts/manage_vault_consul.sh status # 健康检查 /root/mgmt/deployment/scripts/manage_vault_consul.sh health # 验证集成 /root/mgmt/deployment/scripts/manage_vault_consul.sh verify ``` ### 5.2 监控操作 ```bash # 实时监控 /root/mgmt/deployment/scripts/manage_vault_consul.sh monitor # 数据备份 /root/mgmt/deployment/scripts/manage_vault_consul.sh backup ``` ## 6. 故障排除 ### 6.1 常见问题 #### 6.1.1 Vault无法连接Consul **问题**:Vault启动失败,日志显示无法连接Consul **解决方案**: 1. 检查Consul服务是否运行:`consul members` 2. 检查网络连接:`curl http://:8500/v1/status/leader` 3. 验证Vault配置中的Consul地址是否正确 #### 6.1.2 Vault数据丢失 **问题**:Vault无法读取之前存储的数据 **解决方案**: 1. 检查Consul中的数据:`curl http://:8500/v1/kv/vault/?keys` 2. 验证Consul集群状态:`consul members` 3. 如有必要,从备份恢复数据 ### 6.2 日志查看 ```bash # 查看Vault日志 nomad alloc logs -address=http://100.116.158.95:4646 # 查看Consul日志 nomad alloc logs -address=http://100.116.158.95:4646 ``` ## 7. 安全考虑 ### 7.1 数据加密 - Consul中的Vault数据默认已加密 - 网络传输使用TLS加密(生产环境) ### 7.2 访问控制 - Vault使用令牌进行访问控制 - Consul使用ACL策略进行访问控制 ### 7.3 备份策略 - 定期备份Consul中的Vault数据 - 备份文件应加密存储 - 遵循3-2-1备份原则 ## 8. 性能优化 ### 8.1 Consul调优 - 调整Consul的存储后端性能参数 - 监控Consul集群的健康状态 - 定期清理过期的会话 ### 8.2 Vault调优 - 调整Vault的缓存设置 - 监控Vault的性能指标 - 优化密钥引擎的使用 ## 9. 升级维护 ### 9.1 版本升级 1. 先升级Consul集群 2. 再升级Vault集群 3. 验证集成状态 ### 9.2 滚动更新 使用Nomad进行滚动更新,确保服务不中断: ```bash nomad job run -address=http://100.116.158.95:4646 /path/to/updated/job.nomad ``` ## 10. 相关文档 - [Vault官方文档](https://www.vaultproject.io/docs) - [Consul官方文档](https://www.consul.io/docs) - [Nomad官方文档](https://www.nomadproject.io/docs) - Vault开发环境指南 - Vault安全策略文档