連接 Grafana - AWS DevOps 代理程式

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

連接 Grafana

Grafana 整合可讓 AWS DevOps 代理程式在事件調查期間查詢 Grafana 執行個體中的指標、儀表板和提醒資料。此整合遵循兩個步驟:Grafana 的帳戶層級註冊,然後將其連接到個別客服人員空間。

為了提高安全性,Grafana 整合僅啟用唯讀工具。寫入工具已停用且無法啟用。這表示代理程式可以從 Grafana 執行個體查詢和讀取資料,但無法建立、修改或刪除任何 Grafana 資源,例如儀表板、提醒或註釋。如需詳細資訊,請參閱 Security in AWS DevOps Agent

Grafana 要求

連接 Grafana 之前,請確定您有:

  • Grafana 9.0 版或更新版本。由於缺少 API 端點,某些功能,特別是與資料來源相關的操作,可能無法正確使用舊版。

  • 可透過 HTTPS 存取的 Grafana 執行個體。同時支援公有和私有網路端點。透過私有網路連線,您的 Grafana 執行個體可以在沒有公有網際網路存取的 VPC 中託管。如需詳細資訊,請參閱連線至私有託管工具

  • 具有適當讀取許可之存取權杖的 Grafana 服務帳戶

註冊 Grafana (帳戶層級)

Grafana 已在 AWS 帳戶層級註冊,並在該帳戶中的所有客服人員空間之間共用。

步驟 1:設定 Grafana

  1. 登入 AWS 管理主控台

  2. 導覽至 AWS DevOps 代理程式主控台

  3. 前往能力提供者頁面 (可從側邊導覽存取)

  4. 遙測下的可用提供者區段中尋找 Grafana,然後按一下註冊

  5. 設定 Grafana 頁面上,輸入下列資訊:

    • 服務名稱 (必要) – 使用英數字元、連字號和底線輸入 Grafana 伺服器的描述性名稱。例如 my-grafana-server

    • Grafana URL (必要) – 輸入 Grafana 執行個體的完整 HTTPS URL。例如 https://myinstance.grafana.net

    • 服務帳戶存取字符 (必要) – 輸入 Grafana 服務帳戶存取字符。字符通常以 開頭glsa_。若要建立服務帳戶字符,請導覽至您的 Grafana 執行個體,前往管理 > 服務帳戶,使用檢視器角色建立服務帳戶,並產生字符。

    • 描述 (選用) – 新增描述以協助識別伺服器的目的。例如 Production Grafana server for monitoring

  6. (選用) 將 AWS 標籤新增至註冊以供組織使用。

  7. 按一下下一步

步驟 2:檢閱並提交 Grafana 註冊

  1. 檢閱所有 Grafana 組態詳細資訊

  2. 按一下提交以完成註冊

  3. 成功註冊後,Grafana 會出現在能力提供者頁面的目前註冊區段中

將 Grafana 新增至代理程式空間

在帳戶層級註冊 Grafana 之後,您可以將其連線至個別客服人員空間:

  1. 在 AWS DevOps 代理程式主控台中,選取您的代理程式空間

  2. 前往功能索引標籤

  3. 遙測區段中,按一下新增

  4. 從可用供應商清單中選取 Grafana

  5. 按一下儲存

設定 Grafana 警示 Webhook

您可以將 Grafana 設定為在透過 Grafana 聯絡點傳送 Webhook 來提醒火災時自動觸發 AWS DevOps 代理程式調查。如需 Webhook 身分驗證方法和憑證管理的詳細資訊,請參閱 透過 Webhook 叫用 DevOps 代理程式

步驟 1:建立自訂通知範本

在您的 Grafana 執行個體中,導覽至警示 > 聯絡點 > 通知範本,並使用下列內容建立新的範本:

{{ define "devops-agent-payload" }} { "eventType": "incident", "incidentId": "{{ (index .Alerts 0).Labels.alertname }}-{{ (index .Alerts 0).Fingerprint }}", "action": "{{ if eq .Status "resolved" }}resolved{{ else }}created{{ end }}", "priority": "{{ if eq .Status "resolved" }}MEDIUM{{ else }}HIGH{{ end }}", "title": "{{ (index .Alerts 0).Labels.alertname }}", "description": "{{ (index .Alerts 0).Annotations.summary }}", "service": "{{ if (index .Alerts 0).Labels.job }}{{ (index .Alerts 0).Labels.job }}{{ else }}grafana{{ end }}", "timestamp": "{{ (index .Alerts 0).StartsAt }}", "data": { "metadata": { {{ range $k, $v := (index .Alerts 0).Labels }} "{{ $k }}": "{{ $v }}", {{ end }} "_source": "grafana" } } } {{ end }}

此範本會將 Grafana 警示格式化為 AWS DevOps 代理程式預期的 Webhook 承載結構。它會將提醒標籤、註釋和狀態映射到適當的欄位中,並包含所有提醒標籤作為中繼資料。

步驟 2:建立 Webhook 聯絡點

  1. 在 Grafana 中,導覽至警示 > 聯絡點,然後按一下新增聯絡點

  2. 選取 Webhook 做為整合類型

  3. URL 設定為 your AWS DevOps Agent Webhook 端點

  4. 選用 Webhook 設定下,根據您的 Webhook 類型設定身分驗證標頭。如需詳細資訊,請參閱 Webhook 身分驗證方法

  5. 設定訊息欄位以使用您的自訂範本: {{ template "devops-agent-payload" . }}

  6. 按一下儲存聯絡點

步驟 3:將聯絡點指派給通知政策

  1. 導覽至警示 > 通知政策

  2. 編輯現有政策或建立新的政策

  3. 將聯絡點設定為您建立的 Webhook 聯絡點

  4. 按一下儲存政策

當相符的提醒觸發時,Grafana 會將格式化的承載傳送至 AWS DevOps 代理程式,自動開始調查。

限制

  • ClickHouse 資料來源工具 – 目前不支援 ClickHouse 資料來源工具。

  • 主動預防事件 – 目前主動事件預防不使用 Grafana 工具。未來版本已規劃支援。

Amazon Managed Grafana 考量事項

如果您使用的是 Amazon Managed Grafana (AMG),請注意下列限制:

  • 不支援 Webhook 聯絡點 – AMG 目前在其提醒組態中不支援 Webhook 聯絡點。您無法使用 AMG 將警示 Webhook 直接傳送到 AWS DevOps 代理程式。如需詳細資訊,請參閱 Amazon Managed Grafana 中的警示聯絡點

  • 服務帳戶字符過期 – AMG 服務帳戶字符的過期天數上限為 30 天。您將需要輪換權杖,並在權杖過期之前更新 Grafana 註冊 in AWS DevOps 代理程式。如需如何更新登入資料,請參閱管理 Grafana 連線。如需 AMG 字符限制的詳細資訊,請參閱 Amazon Managed Grafana 中的服務帳戶

管理 Grafana 連線

  • 更新登入資料 – 如果您的服務帳戶字符過期或需要更新,請從能力提供者頁面取消註冊 Grafana,並使用新字符重新註冊。

  • 檢視連線的執行個體 – 在 AWS DevOps 代理程式主控台中,選取您的代理程式空間,然後前往功能索引標籤以檢視連線的遙測來源。

  • 移除 Grafana – 若要中斷 Grafana 與客服人員空間的連線,請在遙測區段中選取它,然後按一下移除。若要完全移除註冊,請先將其從所有客服人員空間中移除,然後從能力提供者頁面取消註冊。