mcpField
G
grafana

grafana

github.com/alphaonedev云与 DevOps48 次安装
代码仓库

关于 grafana

Grafana 是用于查询和可视化指标、日志与追踪数据的开源平台,适合监控基础设施和应用的团队。它将仪表板、数据源集成与告警功能集中于一处。

主要功能

  1. 01交互式仪表板与面板
  2. 02通过插件集成数据源
  3. 03指标与日志告警规则
  4. 04即席查询与数据探索
  5. 05基于角色的访问控制
  6. 06以 JSON 导入和导出仪表板

适用场景

  1. 01通过 Prometheus 指标监控基础设施
  2. 02探索并可视化服务器日志
  3. 03关联分布式系统中的追踪数据
  4. 04为指标阈值创建告警

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill grafana

安装后在 Claude Code 中输入/grafana确认已加载。

详细介绍

grafana

用途

Grafana 是一个开源平台,可用于可视化和查询来自各种数据源的指标、日志和追踪数据。它支持用户创建交互式仪表板、设置告警并探索数据,从而有效监控系统。

适用场景

需要为基础设施、应用或服务构建自定义仪表板以进行实时监控时,可使用 Grafana。它非常适合可观测性场景,例如跟踪 Kubernetes 指标、分析服务器日志,或关联分布式系统中的追踪数据。简单的静态报告不适合使用 Grafana;需要动态查询和可视化时再选择它。

主要功能

  • 创建和管理仪表板,并添加图表、表格和仪表盘面板。
  • 通过插件集成 Prometheus、Loki、Elasticsearch 等数据源。
  • 根据指标或日志的阈值设置告警规则。
  • 支持使用 PromQL 等查询语言进行即席查询和数据探索。
  • 使用基于角色的访问控制(RBAC)保护仪表板和数据。
  • 以 JSON 格式导入和导出仪表板,以便进行版本管理。

使用模式

要将 Grafana 作为服务运行,请使用配置文件启动:指定配置文件路径并绑定到一个端口。要实现自动化,可使用 API 以编程方式创建仪表板。常见模式:从 Prometheus 摄取数据,然后通过 Grafana 的 UI 或 API 查询数据。对于 CI/CD,可将 Grafana 嵌入工作流,以即时生成仪表板。为确保可扩展性,请始终在容器化环境中运行它,例如使用官方镜像运行 Docker。

常用命令/API

使用 Grafana CLI 执行管理任务。启动服务:grafana-server --config /etc/grafana/grafana.ini --homepath /usr/share/grafana。安装插件:运行 grafana-cli plugins install <plugin-name>。

API 端点需要通过 API 密钥进行身份验证。将密钥设置为环境变量:export GRAFANA_API_KEY=$YOUR_API_KEY。然后使用 curl 发送请求。

示例:通过 API 创建仪表板:

curl -H "Authorization: Bearer $GRAFANA_API_KEY" -X POST https://your-grafana-instance/api/dashboards/db -d '{"dashboard": {"id": null, "uid": null, "title": "New Dashboard", "tags": ["example"], "timezone": "browser", "panels": []}, "folderId": 0, "overwrite": false}'

查询数据源:GET https://your-grafana-instance/api/datasources/1。配置文件采用 INI 格式,例如:

[server]
http_port = 3000

集成说明

可通过 UI 或配置添加数据源,以此将 Grafana 与数据源集成。对于 Prometheus,添加 URL 为 http://prometheus:9090 的数据源,并在需要时启用基本身份验证。使用环境变量存储密钥,例如 GF_SECURITY_ADMIN_PASSWORD=$ADMIN_PASSWORD。对于告警,可在配置中关联 Slack 或 PagerDuty 等通知渠道:在 grafana.ini 的 [alerting] 部分下添加配置。

要将仪表板嵌入其他工具,请使用 iframe 嵌入选项。要进行代码集成,可在 Terraform 中导入 Grafana 仪表板:定义如下资源:resource "grafana_dashboard" "example" { config_json = file("dashboard.json") }。请先通过 Grafana 的配置 YAML 文件配置数据源,例如:

apiVersion: 1
datasources:
  - name: Prometheus
    type: prometheus
    url: http://prometheus:9090

错误处理

常见错误包括无法连接数据源;请使用 journalctl -u grafana-server 检查日志,或在 UI 的 Server Admin > Logs 中查看。对于 API 错误(例如 401 Unauthorized),请使用 echo $GRAFANA_API_KEY 验证 API 密钥,并确保密钥未过期。处理查询错误时,可使用 try-catch 块封装 API 调用,例如在 Python 中:

import requests
try:
    response = requests.post('https://your-grafana-instance/api/dashboards/db', headers={'Authorization': f'Bearer {os.environ["GRAFANA_API_KEY"]}'}, json=data)
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print(f"Error: {err.response.status_code} - {err.response.text}")

对于配置问题,请使用 grafana-server --config /path/to/config.ini --verify-config 验证 grafana.ini。

具体使用示例

示例 1:设置基本的 Prometheus 仪表板。首先启动 Grafana:docker run -d -p 3000:3000 grafana/grafana。登录(默认用户名:admin,密码:admin),通过 UI 添加数据源:前往 Configuration > Data Sources > Add Prometheus,并将 URL 设为 http://your-prometheus-url:9090。创建仪表板:添加一个面板并使用查询 up{job="prometheus"},然后保存。

示例 2:通过 API 自动创建告警。将 API 密钥导出为环境变量:export GRAFANA_API_KEY=your_key。发送请求以创建告警规则:

curl -H "Authorization: Bearer $GRAFANA_API_KEY" -X POST https://your-grafana-instance/api/ruler/grafana/default -d '{"name": "High CPU Alert", "condition": "A", "for": "5m", "query": {"params": ["avg", "up", "{job=\"node\"}"], "model": {}}}'

这会根据指标为高 CPU 使用率设置告警。

图关系

  • 相关项目:Prometheus(提供指标数据)、Loki(处理日志),属于 devops-sre 集群的一部分。
  • 连接对象:Elasticsearch(用于日志可视化)、Jaeger/Zipkin(用于追踪)。
  • 依赖项:通常与 Alertmanager 等监控工具配合使用,以实现完整的可观测性工作流。

评论

支持 Markdown