Grafana
Grafana 是一款开源监控解决方案,可用于配置 Istio 的仪表板。您可以使用 Grafana 监控 Istio 的运行状况以及服务网格中应用程序的运行状况。
配置
虽然您可以构建自己的仪表板,但 Istio 提供了一组预配置的仪表板,用于网格和控制平面的所有重要指标。
- 网格仪表板 提供了网格中所有服务的概述。
- 服务仪表板 提供了服务的指标详细分析。
- 工作负载仪表板 提供了工作负载的指标详细分析。
- 性能仪表盘 监控网格的资源使用情况。
- 控制平面仪表盘 监控控制平面的健康状况和性能。
- WASM 扩展仪表盘 提供网格范围内的 WebAssembly 扩展运行时和加载状态概述。
有几种方法可以配置 Grafana 来使用这些仪表盘
选项 1:快速入门
Istio 提供一个基本的示例安装程序,可以快速启动并运行 Grafana,并捆绑所有已安装的 Istio 仪表盘。
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/addons/grafana.yaml
这会将 Grafana 部署到您的集群中。 这仅用于演示,未针对性能或安全进行优化。
选项 2:从 grafana.com
导入到现有部署
要快速将 Istio 仪表盘导入到现有的 Grafana 实例中,您可以使用 导入 Grafana UI 中的按钮 来添加上面的仪表盘链接。 导入仪表盘时,请注意您必须选择 Prometheus 数据源。
您也可以使用脚本一次性导入所有仪表盘。 例如
$ # Address of Grafana
$ GRAFANA_HOST="https://127.0.0.1:3000"
$ # Login credentials, if authentication is used
$ GRAFANA_CRED="USER:PASSWORD"
$ # The name of the Prometheus data source to use
$ GRAFANA_DATASOURCE="Prometheus"
$ # The version of Istio to deploy
$ VERSION=1.24.0
$ # Import all Istio dashboards
$ for DASHBOARD in 7639 11829 7636 7630 7645 13277; do
$ REVISION="$(curl -s https://grafana.org.cn/api/dashboards/${DASHBOARD}/revisions -s | jq ".items[] | select(.description | contains(\"${VERSION}\")) | .revision" | tail -n 1)"
$ curl -s https://grafana.org.cn/api/dashboards/${DASHBOARD}/revisions/${REVISION}/download > /tmp/dashboard.json
$ echo "Importing $(cat /tmp/dashboard.json | jq -r '.title') (revision ${REVISION}, id ${DASHBOARD})..."
$ curl -s -k -u "$GRAFANA_CRED" -XPOST \
$ -H "Accept: application/json" \
$ -H "Content-Type: application/json" \
$ -d "{\"dashboard\":$(cat /tmp/dashboard.json),\"overwrite\":true, \
$ \"inputs\":[{\"name\":\"DS_PROMETHEUS\",\"type\":\"datasource\", \
$ \"pluginId\":\"prometheus\",\"value\":\"$GRAFANA_DATASOURCE\"}]}" \
$ $GRAFANA_HOST/api/dashboards/import
$ echo -e "\nDone\n"
$ done
选项 3:特定于实现的方法
Grafana 可以通过其他方法安装和配置。 要导入 Istio 仪表盘,请参阅安装方法的文档。 例如
- Grafana 配置 官方文档。
- 导入仪表盘 用于
stable/grafana
Helm 图表。