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://#: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.com/api/dashboards/${DASHBOARD}/revisions -s | jq ".items[] | select(.description | contains(\"${VERSION}\")) | .revision" | tail -n 1)"
$ curl -s https://grafana.com/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 圖表。