目前我已经手动创建了 Grafana Dashboard。我已经拿到了 Json。我想要实现自动化,并且遇到了 Grafana HTTP API。 https://grafana.com/docs/grafana/latest/developers/http_api/dashboard/。问题是目前Grafana没有暴露在外面。它有内部负载平衡器。我计划通过自动化仪表板创建
有没有其他选择或者这样做有任何安全问题吗?
在 Azure DevOps Pipeline 中,没有内置任务或扩展任务可以创建 Grafana Dashboard。
因此,使用Grafana HTTP API创建Grafana Dashboard是一个不错的选择,并且使用短期服务帐户令牌也可以提高安全性。
这是一个例子:
curl -X POST --insecure -H "Authorization: Bearer <serviceaccount token>" -H "Content-Type: application/json" -d '{
"dashboard": {
"id": null,
"title": "Production Overview",
"tags": [ "templated" ],
"timezone": "browser",
"rows": [
{
}
],
"schemaVersion": 6,
"version": 0
},
"overwrite": false
}' http://serverhost/api/dashboards/db
由于 Grafana 没有暴露在外部并具有内部负载均衡器,因此该计划的限制可能是,当在 Pipeline 中使用 Microsoft 托管的代理通过临时 pod 执行 API 时,它将无法访问临时 pod .
在这种情况下,您可以考虑在有权访问 Grafana 的计算机或具有相同负载均衡器的计算机上创建 自托管代理。