亚马逊AWS官方博客
使用 Amazon Bedrock Claude3 多模态能力和 Grafana 构建智能巡检平台
前言
现在智能监控平台已经成为确保 IT 基础设施高效运行和优化运维效率的关键工具,很多公司已经使用 Grafana 和 Prometheus 作为可观测性的核心工具。传统的监控系统往往只能被动收集和展示原始数据,缺乏深入分析和智能见解的能力。相比之下,智能监控平台通过融合先进的人工智能、机器学习和大数据分析技术,可以从海量监控数据中主动发现隐藏的模式和趋势,提供预测性维护和自动化优化建议。
借助 Amazon Bedrock 等 AI 技术平台,智能监控平台可以集成业界领先的大语言模型(LLM),如 Claude 3 等。这些 LLM 具备出色的自然语言处理能力和多模态能力,能够对监控日志、警报消息和系统指标图表等非结构化数据进行深度分析和理解,从而发现潜在的异常情况和风险因素。为此我们集成了常用的 Grafana 监控平台,将 CloudWatch 数据通过 Grafana 仪表盘进行展示,结合 Claude 3 的多模态进行智能分析,降低 IT 部门日常监控复杂度,实现高效、智能的自动巡检。
本项目已经发布在 https://github.com/aws-samples/grafana-smartmonitor-sample。
架构介绍
本文示例将构建实现以下监控巡检流程:
1. 创建 Grafana datasource,拉取 Amazon CloudWatch 监控数据
2. 关键仪表盘信息提取, 通过chromedp 自动获取仪表盘图片, 由Claude3 多模态能力提取报表数据关键信息
3. Claude 3 根据多模态提取的信息,进行指标判断,返回巡检结果
4. Claude 3 按照项目维度,进行多个指标巡检,并且进行总结
![]() |
关键组件介绍:
Amazon Cloudwatch:AWS CloudWatch 是亚马逊云科技(AWS)提供的一项监控和可观察性服务。它可以帮助您收集和跟踪来自多个 AWS 资源的指标、日志和事件数据,通过 CloudWatch,您可以全面了解 AWS 环境中的资源和应用程序的运行状况,从而优化资源利用率、应对潜在问题并保持系统正常运行。CloudWatch 与其他 AWS 服务紧密集成,为您提供全面的监控和可观察性解决方案。
Amazon Bedrock:Amazon Bedrock 是一项完全托管的服务,通过单个 API 提供来自 AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI 和 Amazon 等领先人工智能公司的高性能基础模型(FM),以及通过安全性、隐私性和负责任的人工智能构建生成式人工智能应用程序所需的一系列广泛功能。
Grafana:Grafana 是一款开源的数据可视化工具,使用 Grafana 可以非常轻松的将数据转成图表的展现形式来做到数据监控以及数据统计。
Chromedp:Chromedp 是一个用 Go 语言编写的高级浏览器驱动库。它可以通过操作 Chrome/Chromium 浏览器来执行各种任务,例如网页抓取、自动化测试、生成屏幕截图或 PDF 等。chromedp 旨在提供一种简单、可靠且高效的方式来与 Chrome 浏览器进行交互。
部署项目
本例中为了简化部署,我们使用 docker compose 的方式来部署服务,咱们可以根据自己的环境特性来选择组件。整体部署流程如下:
1. EC2 配置
EC2 关联 Role 需要具备 Bedrock invokeModel 权限
2. 环境配置
NodeJS:20+,可以参考 https://nodejs.org/en/download/package-manager 进行安装配置
Golang:1.21+,可以参考 https://go.dev 进行安装配置
3. 下载代码
4. 安装 Docker
5. 镜像打包 -backend
6. 镜像打包 -front
7. 修改 Docker Compose
8. 服务启动
9. 服务验证
至此我们环境就部署完毕了。
巡检测试
下面我们来测试一下整体的服务流程是不是跟我们预期一致。
1. 登录 Grafana(http://localhost:3000),导入 CloudWatch Dashboard
添加 CloudWatch 数据源
![]() |
配置 AWS Credentials
![]() |
导入 Dashboard
![]() |
验证 Dashboard 正常与否
![]() |
2. 登录 Grafana-SmartMonitor,默认用户名和密码:admin/admin,配置指标
![]() |
3. 点击 Run 之后,可以看到 SmartMonitor 通过截屏的方式已经分析出响应的指标信息,并给出判断
![]() |
4. Scheduler 配置,我们可以针对整个项目下的所有指标进行综合评估,并且可以通过周期性调用
![]() |
5. 过一段时间来查看巡检结果
![]() |
代码说明
项目分为 front,backend 分别是 SmartMonitor 的前后端。
1. 获取 Grafana 仪表盘
ChromeDP 初始化:创建 ChromeDP 的执行上下文,并设置一些浏览器选项,如无头模式、GPU 加速、禁用扩展等
2. 登录截取指定页面内容
3. 根据预置条件来通过 Claude 3 多模态功能来分析图片内容
其中 runConditionPromptTemplate 的提示词模版为:
我们会使用 imageTextExtracPromptTemplate和runConditionPromptTemplate 来完成图片识别和指标条件判断,提示词如下:
4. 项目下所有指标总结
其中 projectSummaryPromptTemplate 的提示词模版为:
在整个项目总结中我们使用了 projectSummaryPromptTemplate 提示词
总结
在本文中,我们探讨了如何利用 Amazon Bedrock、Claude 3 大型语言模型和云原始监控工具 Grafana 来构建一个应用智能巡检系统。我们构建了一个端到端的巡检流程,包括创建 CloudWatch 数据元,监控指标创建、仪表盘关键信息提取、巡检等步骤。通过结合 Claude 3 的强大多模态能力和自然语言处理能力,我们能够高效地对多个监控指标进行巡检、分析。让大语言模型自动提取关键信息、分析当前系统状态,并生成总结性报告。我们演示了对 Amazon EC2、RDS 等多个服务进行巡检,可以获得更全面的 IT 服务洞见。总的来说,将 Amazon Bedrock、Claude 3 和 Grafana 结合使用,为构建智能化智能巡检系统系统提供了一种有前景的解决方案。未来,我们计划进一步扩展和优化这一系统,以支持更多功能和更大规模的监控分析、处理需求。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。
参考资料
https://docs.aws.amazon.com/bedrock
https://github.com/aws-samples/grafana-smartmonitor-sample
https://github.com/chromedp/chromedp