Nanuq 2.0:统一管理平台,适用于 Kafka、Redis、RabbitMQ、AWS 和 Azure
Source: Dev.to
在开发环境中管理多个消息和缓存系统是一个常见的痛点。每个平台都需要自己的 CLI 工具、不同的身份验证机制以及独特的管理界面。在与同时处理 Kafka 主题、Redis 缓存、RabbitMQ 交换机、AWS SQS 队列以及 Azure Service Bus 的团队合作后——往往是并行进行——我创建了 Nanuq 来解决这个问题。
今天,我很高兴分享 Nanuq 2.0,这是一个重要的里程碑,为该开源项目带来了云平台支持、企业级安全以及生产就绪的功能。
什么是 Nanuq?
Nanuq 是一个统一的管理界面,将五个关键的消息和缓存平台整合到一个直观的 Web UI 中:
- Apache Kafka – 主题管理与监控
- Redis – 6 种数据类型,提供完整的 CRUD 操作
- RabbitMQ – 交换机和队列管理
- AWS (SQS/SNS) – 云端消息队列和发布/订阅
- Azure Service Bus – 企业级消息,支持队列、主题和订阅
开发者无需在 kafka-console-consumer、redis-cli、rabbitmqctl、AWS 控制台和 Azure 门户之间切换,便可在同一平台上完成所有管理工作。
Kafka 主题管理

Kafka 主题管理,显示消息计数和分区详情
统一仪表盘

统一仪表盘展示五个平台的指标
新版本 2.0 更新内容
云平台集成
2.0 中最大的新增功能是完整的云平台支持。
AWS (SQS/SNS)
- 支持 15 个 AWS 区域(us‑east‑1、eu‑west‑1、ap‑southeast‑1 等)
- 完整的 SQS 操作:创建队列(standard/FIFO)、发送/接收消息、监控队列属性
- SNS 主题管理:发布消息、管理订阅(HTTP、Email、SMS、SQS、Lambda)
- 多区域部署,适用于分布式团队
Azure Service Bus
- 全球支持 30+ 个 Azure 区域
- 队列管理,支持可配置的 TTL、死信、重复检测
- 主题和订阅,具备过滤功能
- 完整的消息生命周期:发送、接收(peek‑lock 模式)以及死信队列访问
AWS SQS 示例

管理具备发送/接收功能的 AWS SQS 队列
Azure Service Bus 示例

Azure Service Bus 主题和订阅管理
企业安全
安全是 2.0 的首要任务。
-
AES‑256 加密凭证存储
所有存储的凭证(密码、访问密钥、连接字符串)在静止时均使用 AES‑256 并结合 DPAPI 派生的密钥进行加密。加密服务在保存凭证时自动加密,在 API 调用需要时自动解密。密码永不在 API 响应中暴露——仅返回元数据给前端。 -
连接测试
在保存凭证之前,用户可以测试连接以确认其可用性。这可以在将访问密钥、密码和连接字符串持久化到数据库之前验证其正确性,防止配置错误。
统一仪表盘
全新仪表盘提供跨所有平台的实时可视化:
- 每个平台的服务器数量、主题/队列数量以及资源指标
- 环境划分(开发、预发布、生产),使用颜色标签显示
- 最近活动流,可按平台和操作类型过滤
- 快速操作,可为每个平台添加新服务器
活动追踪与审计
覆盖所有平台的 24+ 种活动类型的完整审计轨迹:
- 高级过滤(按类型、日期范围、搜索文本)
- 支持导出为 CSV 或 JSON,以满足合规需求
- 使用 Material Design 图标的可视化时间线
- 自动刷新,实现实时监控

完整的活动审计轨迹,具备过滤和导出功能
高级 Redis 支持
对所有 6 种 Redis 数据类型提供完整的 CRUD 操作:
- Strings – 查看、添加、更新和删除带 TTL 的缓存键
- Lists – 推入/弹出元素,查看全部列表项
(内容继续如原始来源所示。)
Redis 与 RabbitMQ 管理概览
- Strings – 设置/获取值,管理列表键
- Hashes – 设置/获取字段,查看所有字段,管理哈希键
- Sets – 添加/删除成员,查看集合成员
- Sorted Sets – 添加带分数的成员,查看排序后的成员
- Streams – 添加包含多个字段的条目,查看流条目
所有操作均支持分页,以处理大型数据集。
图片

管理不同数据类型的 Redis 键

RabbitMQ 交换机和队列管理
多环境管理
在 UI 中使用颜色编码的徽章按环境(Development、Staging、Production)标记服务器。这可以轻松避免意外修改生产资源,并帮助团队管理多环境工作流。
技术架构
后端:.NET 10.0 模块化单体
后端采用干净、模块化的架构:
Nanuq.WebApi/ # FastEndpoints API
Nanuq.Kafka/ # Kafka integration
Nanuq.Redis/ # Redis integration
Nanuq.RabbitMQ/ # RabbitMQ integration
Nanuq.AWS/ # AWS SQS/SNS integration
Nanuq.Azure/ # Azure Service Bus integration
Nanuq.Security/ # AES‑256 encryption service
Nanuq.EF/ # Entity Framework Core context
Nanuq.Sqlite/ # SQLite repositories
Nanuq.Common/ # Shared records and interfaces
关键模式
- FastEndpoints 取代传统控制器,以获得更好的性能
- 仓储模式 用于数据访问抽象
- DbUp 迁移 用于数据库模式管理
- 依赖注入 全局使用
前端:Vue 3 + Vuetify
前端使用 Vue 3 并结合 Vuetify 的 Material Design 组件。
状态管理
- 为每个平台分别创建 Vuex 模块(
kafka.js、redis.js、aws.js、azure.js) - 使用全局通知系统进行集中错误处理
- 乐观 UI 更新,错误时回滚
数据库:使用 EF Core 的 SQLite
SQLite 为所有服务器配置、凭证和活动日志提供零配置持久化。DbUp 迁移在启动时自动运行,使模式更新无缝进行。
入门
Docker(推荐)
# 拉取并运行后端和前端
docker-compose -f Docker/docker-compose.yml up -d
# 访问应用
open http://localhost:8080
Kubernetes
一键部署:
kubectl apply -f https://raw.githubusercontent.com/waelouf/Nanuq/main/K8s/nanuq-all-in-one.yaml
# 检查部署情况
kubectl get pods
kubectl get service nanuq-frontend
本地开发
后端
cd src/services/Nanuq/Nanuq.WebApi
dotnet run # 在 http://localhost:5000 上运行
前端
cd src/app/nanuq-app
npm install
npm run serve # 在 http://localhost:8080 上运行
实际使用案例
- 微服务开发 – 在单一 UI 中检查 Kafka 主题、Redis 缓存和 RabbitMQ 队列。
- 多云部署 – 并行管理 AWS SQS 与 Azure Service Bus,减少上下文切换。
- 环境晋升 – 将服务器标记为 Dev / Staging / Prod,并在提升更改前比较配置。
- 生产问题调试 – 快速查看消息计数、预览队列内容,并在无需安装 CLI 工具的情况下识别瓶颈。
性能考虑
分页
所有列表操作都支持分页(基于游标或令牌),以高效处理大数据集。
缓存策略
- 服务器列表会被缓存,直到显式刷新。
- 队列/主题详情缓存 5 分钟 TTL。
- 消息列表从不缓存(始终实时)。
连接池
AWS 和 Azure SDK 客户端使用连接池,以最小化开销并提升连续操作的响应时间。
Security Best Practices
What Nanuq does
- 对所有静止的凭证进行加密(AES‑256)。
- 永不记录敏感数据(密码、密钥、令牌)。
- 所有前端‑后端通信均使用 HTTPS。
- 在前端和后端都对用户输入进行验证。
What you should do
- 使用环境特定的凭证(不要在开发环境中共享生产凭证)。
- 为云账户启用多因素认证(MFA)。
- 定期轮换凭证。
- 审查活动日志,查找未授权访问。
- 部署在 VPN 后或限制网络访问。
限制与未来路线图
当前限制
- 没有内置 … (根据需要继续列表)
用户认证(单用户模式)
- 没有基于角色的访问控制(RBAC)
- 仅限 Windows 使用 DPAPI‑based 加密(计划跨平台加密)
路线图 (欢迎贡献!)
- 指标和告警(Prometheus 集成)
- Kafka 的 Schema Registry 支持
- 更多云平台(Google Cloud Pub/Sub)
- 暗色模式 UI 主题
贡献
Nanuq 是开源的,欢迎贡献。
我们希望得到帮助的领域
- 跨平台加密(替代 Windows DPAPI)
- 单元测试和集成测试覆盖率
- 文档改进
- 错误报告和功能请求
查看 GitHub 仓库 开始吧。
结论
Nanuq 2.0 代表了在简化消息和缓存平台管理方面的重要进展。通过将五个平台整合到一个具备企业级安全性的界面中,我们降低了开发者的认知负荷,使多平台工作流更加高效。
该项目使用现代 .NET 和 Vue.js 构建,遵循清晰架构原则,并设计为易于扩展以支持更多平台。
试试看,并在评论中告诉我你的想法!
链接
- GitHub:
- Issues:
您在项目中管理哪些消息平台?统一的界面能帮助您的工作流吗?在下方分享您的想法!