使用 azure cli 建立 Service principal 串接 Grafana 小記
目前大家真的已經很泛用 Grafana 來呈現不同的監控資料, 然後 Azure Managed Grafana 也 GA 了
接下來看看能不能抓部份時間來 study 還有寫寫 Grafana 的筆記 :)
首先大家可能會搜尋到的是這篇 Azure 原廠的文件, 在 Grafana 中監視 Azure 服務
- https://docs.microsoft.com/zh-tw/azure/azure-monitor/visualize/grafana-plugin 
- 如果對 AAD 還有權限沒有很熟悉的狀況下, 看這篇文件的時候, 可能會對於如何建立 Service Principal 以及設定適當權限會有點迷茫( 我是說我自己 :p ). 
簡單來說, 要讓 Grafana 可以監視 Azure 的服務, 大概就是
- 建立 Azure Service principal ( 應用程式註冊 ) 
- 設定該 Service principal 用戶端密碼 ( 建立給 Grafana 使用的密碼 ) 
- 在 AAD 內的角色指派, 針對該 Service principal 給予相關權限 
- Log Analytics 讀取者 
- 讀者 
上述的動作肯定可以使用 Console 來達成, 但是有的時候 Console 不熟的人, 可能對上述的建立會比較苦手 ( 如果哪天介面又改變的話 ), 所以今天就使用 azure cli 來實作
首先登入 Azure Portal
接下來就使用 Cloud Shell 來進行相關操作
參考之前自己的文章
我們可以藉由以下指令來列出相關資訊, 看看之前有沒有使用 azure cli 建立過應用程式
$ az ad sp list --output table
- 這樣可能會列出太多資訊, 所以過濾一下關鍵字 
$ az ad sp list --output table | grep azure-cli
- 從輸出的 azure-cli-202x-xx-xx-xx-xx-xx 就可以知道建立的時間 
接下來使用 azure cli 來建立 Service Principal
使用 az account 指令取得 subscription_id
$ az account show --query "{ subscription_id: id }"
{
"subscription_id": "6a2bdf3b-XXXX-XXXX-XXXX-3371d3401feb"
}
使用以下指令建立 Service Principal 指定 Role 為 Log Analytics Reader, 並同時建立用戶端密碼
$ az ad sp create-for-rbac --role "Log Analytics Reader" --scopes /subscriptions/6a2bdf3b-XXXX-XXXX-XXXX-3371d3401feb
輸出範例如下
{
"appId": "83d5xxxx-xxxx-xxxx-xxxx-xxxxxxxxad2d",
"displayName": "azure-cli-2022-09-03-13-08-28",
"password": "5KN7Q~pygZIH5RbAGBSGz3Nx.bC4JSXUSjfQ-dvv",
"tenant": "4cd3xxxx-xxxx-xxxx-xxxx-xxxxxxxxabd4"
}
- az ad sp 指令可以用 -n 方式指定名稱, 但是我喜歡不指定名稱, 這樣我可以知道是何時建立 
- password 只會這個時候出現, 請記下來後續使用 
之前的文章如果 Service Principal 密碼到期, 作法上可能會
- 使用 az ad sp delete 刪除舊的認証, 然後再建立新的認証 
這邊再紀錄另外一種方式, 直接重設 Service Principal 的用戶端密碼
- $ az ad sp credential reset --id {service principal appId} 
- 重設密碼的原因是預設效期為一年 
接下來回到 Grafana 這邊
登入 Grafana
點選 Configuration -- > Data sources
點選 Add data source
搜尋 azure, 應該就會看到 Azure Monitor
點選 Azure Monitor
填入相關資訊
點選 Save & test
成功應該會看到相關訊息
大功告成
接下來就可以找時間針對 Azure 資源來觀察了
~ enjoy it
Reference
- https://docs.microsoft.com/zh-tw/azure/azure-monitor/visualize/grafana-plugin 
- https://sakananote2.blogspot.com/2020/05/azure-dynamic-inventory-with-ansible.html 
- 雲馥夥伴的幫忙 
 
 
沒有留言:
張貼留言