|
|
6 months ago | |
|---|---|---|
| .. | ||
| README.cn.md | 6 months ago | |
| README.md | 6 months ago | |
| init.go | 6 months ago | |
Netdata 代理(以及即将推出的 Netdata Cloud)提供模型上下文协议 (MCP) 服务器,使 Claude 或 Cursor 等 AI 助手能够与您的基础设施监控数据进行交互。此集成允许 AI 助手访问指标、日志、告警和实时系统信息(进程、服务、容器、虚拟机、网络连接等),充当功能强大的 DevOps/SRE/系统管理员助手。
AI 助手对您基础设施的可见性取决于它们在 Netdata 层次结构中的连接位置:
您可以将 Netdata 与以下 AI 助手一起使用:
可能还有更多:查看 MCP 文档 获取支持的 AI 助手完整列表。
所有这些 AI 助手都需要本地访问 MCP 服务器。这意味着您在计算机上本地运行的应用程序(Claude Desktop、Cursor 等)需要能够使用 stdio 通信连接到 Netdata。但是,由于您的 Netdata 在服务器上远程运行,您需要一个桥接器将 stdio 通信转换为 WebSocket 通信。Netdata 提供多种语言(Node.js、Python、Go)的桥接器来促进此转换。
一旦 MCP 集成到 Netdata Cloud 中,也将支持基于 Web 的 AI 助手。对于基于 Web 的 AI 助手,助手的后端连接到可公开访问的 MCP 服务器(即 Netdata Cloud)以访问基础设施可观测性数据,无需桥接器。
MCP 服务器内置于 Netdata 中,无需额外安装。只需确保您安装了最新版本的 Netdata。
要将 Netdata 的 MCP 集成与 AI 客户端一起使用,您需要配置它们并将它们桥接到 Netdata MCP 服务器。
大多数 AI 助手的配置都是通过配置文件完成的,对于所有助手来说几乎相同。
{
"mcpServers": {
"netdata": {
"command": "/usr/bin/nd-mcp",
"args": [
"ws://IP_OF_YOUR_NETDATA:19999/mcp?api_key=YOUR_API_KEY"
]
}
}
}
程序 nd-mcp 是将 stdio 通信转换为 WebSocket 通信的桥接程序。此程序是所有 Netdata 安装的一部分,因此通过在您的个人计算机(Linux、MacOS、Windows)上安装 Netdata,您就可以使用它。
根据您安装 Netdata 的方式,可能有不同的路径:
/usr/bin/nd-mcp 或 /usr/sbin/nd-mcp:Linux 原生包(与 netdata 和 netdatacli 命令一起)/opt/netdata/usr/bin/nd-mcp:Linux 静态 Netdata 安装/usr/local/netdata/usr/bin/nd-mcp:MacOS 从源码安装C:\\Program Files\\Netdata\\usr\\bin\\nd-mcp.exe:Windows 安装您还需要:
IP_OF_YOUR_NETDATA 是您要连接的 Netdata 实例的 IP 地址或主机名。这最终将被 Netdata Cloud URL 替换。对于此开发预览版,请使用任何 Netdata,最好是您的父节点之一。请记住,AI 助手将只"看到"连接到该 Netdata 实例的节点。
YOUR_API_KEY 是允许 AI 助手访问敏感功能(如日志和实时系统信息)的 API 密钥。只需启动 Netdata,它将自动为您生成一个随机 UUID。您可以在以下位置找到它:
/var/lib/netdata/mcp_dev_preview_api_key
或者,如果您安装了静态 Netdata 包,它可能位于:
/opt/netdata/var/lib/netdata/mcp_dev_preview_api_key
要查看您的 API 密钥:
sudo cat /var/lib/netdata/mcp_dev_preview_api_key
或
sudo cat /opt/netdata/var/lib/netdata/mcp_dev_preview_api_key
要将 Netdata MCP 添加到 Claude Desktop:
Linux 用户:Claude Desktop 可通过社区项目获得 (https://github.com/fsoft72/claude-desktop-to-appimage)。它与 https://github.com/TheAssassin/AppImageLauncher 配合使用效果最佳。
正确配置后,您需要重启 Claude Desktop。 重启后,您应该看到"netdata"出现在 Claude Desktop 中:
对于 Claude Code,在您项目的根目录添加文件 .mcp.json,内容如上所述。此文件将在 Claude Code 下次在该目录中启动时自动检测到。
正确配置后,向您的 Claude Code 发出命令 /mcp。它应该显示可用的 MCP 服务器,包括"netdata"。
对于 Cursor,将配置添加到 MCP 设置中。
stdio 到 websocket 桥接器我们为您提供 3 种不同的桥接器,您可以选择最适合您环境的一种:
src/web/mcp/bridges/stdio-golang/src/web/mcp/bridges/stdio-nodejs/src/web/mcp/bridges/stdio-python/所有这些桥接器都应该提供完全相同的功能,因此您可以选择最适合您环境的一种。
每个目录都包含 build.sh 脚本来安装依赖项并准备桥接器。
Go 桥接器还为 Windows 用户提供了 build.bat 脚本。
MCP 集成为 AI 助手提供以下访问权限:
集成提供对 Netdata 收集的所有指标类别的访问,包括:
配置完成后,您可以提出以下问题:
问:我可以将 MCP 与其他 AI 助手一起使用吗?
问:我需要在本地机器上运行桥接器吗?
答:是的,桥接器将 stdio 通信转换为 WebSocket 以远程访问 Netdata。桥接器在您的本地机器(个人计算机)上运行以连接到 Netdata 实例。
问:如何找到我的 API 密钥?
/var/lib/netdata/mcp_dev_preview_api_key 或 /opt/netdata/var/lib/netdata/mcp_dev_preview_api_key 中。使用 sudo cat 查看它。问:我可以将 MCP 与 Netdata Cloud 一起使用吗?
问:我可以使用 MCP 访问哪些数据?
问:我可以将 MCP 与现有的 Netdata 安装一起使用吗?
问:MCP 安全吗?
问:我的可观测性数据会暴露给 AI 公司吗?
问:AI 助手的响应准确吗?
有时,当您询问关于基础设施的一般性问题时,AI 助手会对基础设施的少数节点进行简单采样,而不是查询所有节点。在 Netdata 中,我们提供了正确执行此操作的工具,但 AI 助手可能不会使用它们。
示例:
问:"我的服务器上运行的顶级进程/容器/虚拟机/服务是什么?"
AI 助手可能会响应来自少数节点的进程/容器/虚拟机/服务列表,而不是查询所有节点。
在 Netdata 中的正确方法是查询:
app.* 图表/上下文用于 processes,这将返回按类别分组的所有节点上运行的进程。systemd.* 获取所有节点上运行的服务。cgroup.* 获取所有节点上的所有容器和虚拟机。对于所有此类查询,Netdata 响应返回基数信息(很像您 Netdata 仪表板上的 NIDL 图表),因此 AI 助手可以获得更好的图片而不是采样数据。当您注意到这一点时,您可以要求 AI 助手使用更通用的查询来找到答案。
有时您询问 AI 助手关于最近添加到 Netdata 的功能(例如日志或 Windows 功能),AI 助手不是检查通过其 MCP 连接可用的内容,而是说 Netdata 不支持该功能。回答"检查您的 MCP 工具、功能、函数"通常足以让 AI 助手检查可用功能并开始使用它们。
有时您需要指示它们使用其 MCP 连接。因此,与其说"检查我的生产数据库的性能",您可以说"使用 netdata 检查我的生产数据库的性能"。这样,AI 助手将使用其 MCP 连接查询 Netdata 实例并为您提供相关信息。
我们的建议是使用 AI 助手做"您的洗衣":给它们具体的任务,检查它们获取该信息所做的查询,并在可能的情况下要求它们使用不同的工具/源交叉检查其答案。AI 助手通常急于得出结论,所以挑战它们,它们会更深入并自我纠正。请记住,您始终需要验证它们的答案,特别是对于关键任务。
如果您需要配置多个 MCP 服务器,您可以在 mcpServers 部分下使用不同的名称添加它们。示例:
{
"mcpServers": {
"netdata-production": {
"command": "/usr/bin/nd-mcp",
"args": [
"ws://IP_OF_YOUR_NETDATA:19999/mcp?api_key=YOUR_API_KEY"
]
},
"netdata-testing": {
"command": "/usr/bin/nd-mcp",
"args": [
"ws://IP_OF_YOUR_NETDATA:19999/mcp?api_key=YOUR_API_KEY"
]
}
}
}
但是,当配置多个 netdata MCP 服务器时,所有 AI 助手都难以确定使用哪一个:
.mcp.json 文件,因此您可以为每个项目/目录有不同的配置。由于 Claude Code 还支持带有 AI 助手默认指令的 Claude.md 文件,您可以有不同的目录,具有不同的指令和配置,因此您可以通过在不同目录中生成多个 Claude Code 实例来使用多个 Netdata MCP 服务器。有关 Netdata 的更多信息,请访问 netdata.cloud