Grafana

Grafana 是一个开源的监控解决方案,可以用来为 Istio 配置仪表板。您可以使用 Grafana 来监控 Istio 及部署在服务网格内的应用程序。

配置

尽管可以构建自己的仪表板,但 Istio 同时也提供了一组预先配置的仪表板用来监视网格和控制平面的所有最重要的指标。

可以通过多种方法来配置 Grafana 来使用这些仪表板:

方法1:快速开始

Istio 提供了一个基本的安装示例,以快速让 Grafana 启动和运行,与所有已经安装的 Istio 仪表板捆绑在一起:

  1. $ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.11/samples/addons/grafana.yaml

通过 kubectl apply 方式将 Grafana 部署到集群中。该策略仅用于演示,并没有针对性能或安全性进行调优。

方法2:从 grafana.com 导入已经部署的 Deployment

如果想要快速地将Istio仪表板导入到现有的Grafana实例中,您可以使用 Grafana UI 中的 Import 按钮 来添加上面的仪表板链接。当导入仪表板时,请注意必须选择一个 Prometheus 数据源。

也可以使用脚本一次导入所有仪表板。例如:

  1. $ # Address of Grafana
  2. $ GRAFANA_HOST="http://localhost:3000"
  3. $ # Login credentials, if authentication is used
  4. $ GRAFANA_CRED="USER:PASSWORD"
  5. $ # The name of the Prometheus data source to use
  6. $ GRAFANA_DATASOURCE="Prometheus"
  7. $ # The version of Istio to deploy
  8. $ VERSION=1.11.0
  9. $ # Import all Istio dashboards
  10. $ for DASHBOARD in 7639 11829 7636 7630 7642 7645; do
  11. $ REVISION="$(curl -s https://grafana.com/api/dashboards/${DASHBOARD}/revisions -s | jq ".items[] | select(.description | contains(\"${VERSION}$\")) | .revision")"
  12. $ curl -s https://grafana.com/api/dashboards/${DASHBOARD}/revisions/${REVISION}/download > /tmp/dashboard.json
  13. $ echo "Importing $(cat /tmp/dashboard.json | jq -r '.title') (revision ${REVISION}, id ${DASHBOARD})..."
  14. $ curl -s -k -u "$GRAFANA_CRED" -XPOST \
  15. $ -H "Accept: application/json" \
  16. $ -H "Content-Type: application/json" \
  17. $ -d "{\"dashboard\":$(cat /tmp/dashboard.json),\"overwrite\":true, \
  18. $ \"inputs\":[{\"name\":\"DS_PROMETHEUS\",\"type\":\"datasource\", \
  19. $ \"pluginId\":\"prometheus\",\"value\":\"$GRAFANA_DATASOURCE\"}]}" \
  20. $ $GRAFANA_HOST/api/dashboards/import
  21. $ echo -e "\nDone\n"
  22. $ done

方法3:特定的实现方法

Grafana 可以通过其他方法进行安装和配置。要导入 Istio 仪表板,请参考文档中的安装方法。例如: