- Azure
- Azure Container Apps
- Terraform
Dans ce tutoriel, vous allez déployer Azure Managed Grafana pour monitorer vos Azure Container Apps définies dans le tutoriel précédent. Le code source est disponible dans ce répertoire Github.
Ce tutoriel fait partie d’une série complète de tutoriel sur l’utilisation d’Azure Container Apps avec Terraform.
Avant de pouvoir déployer Azure Managed Grafana, vous devez configurer votre souscription Azure pour l’utiliser. Pour ce faire, vous devez enregistrer le provider de ressources Microsoft.Dashboard
.
Pour enregistrer le provider de ressources Microsoft.Dashboard
, vous pouvez utiliser l’Azure CLI:
# Register
az provider register --namespace 'Microsoft.Dashboard'
# Check the registration status
az provider show -n Microsoft.Dashboard
Le déploiement d’Azure Managed Grafana est assez simple. Il vous suffit d’ajouter la ressource suivante à votre définition Terraform :
resource "azurerm_dashboard_grafana" "this" {
name = format("amg-%s", local.resource_suffix_kebabcase)
resource_group_name = azurerm_resource_group.this.name
location = azurerm_resource_group.this.location
api_key_enabled = false
deterministic_outbound_ip_enabled = false
public_network_access_enabled = true
identity {
type = "SystemAssigned"
}
tags = local.tags
}
Pour pouvoir accéder à l’instance Azure Managed Grafana, vous devez gérer les identités. En effet, vous devez donner le rôle Grafana Viewer
, Grafana Editor
et Monitoring Reader
à l’instance Azure Managed Grafana.
Pour ce faire, créez un nouveau fichier appelé roles.tf
et ajoutez :
resource "azurerm_role_assignment" "grafana_viewer" {
scope = azurerm_resource_group.this.id
role_definition_name = "Grafana Viewer"
principal_id = azurerm_dashboard_grafana.this.identity[0].principal_id
}
resource "azurerm_role_assignment" "grafana_editor" {
scope = azurerm_resource_group.this.id
role_definition_name = "Grafana Editor"
principal_id = azurerm_dashboard_grafana.this.identity[0].principal_id
}
resource "azurerm_role_assignment" "monitor_reader" {
scope = azurerm_resource_group.this.id
role_definition_name = "Monitoring Reader"
principal_id = azurerm_dashboard_grafana.this.identity[0].principal_id
}
Et pour chaque utilisateur auquel vous souhaitez accorder l’accès et la possibilité de configurer Azure Managed Grafana, vous devez également attribuer les rôles Grafana Viewer
, Grafana Editor
et Monitoring Reader
.
Dans votre fichier locals.tf
, déclarez une liste d’identités d’utilisateur :
users_identities = ["USE-YOUR-OWN-IDENTITY-HERE"]
Revenez ensuite au fichier roles.tf
et ajoutez la ressource suivante :
resource "azurerm_role_assignment" "users_grafana_viewer" {
for_each = toset(local.users_identities)
scope = azurerm_resource_group.this.id
role_definition_name = "Grafana Viewer"
principal_id = each.key
}
resource "azurerm_role_assignment" "users_grafana_editor" {
for_each = toset(local.users_identities)
scope = azurerm_resource_group.this.id
role_definition_name = "Grafana Editor"
principal_id = each.key
}
resource "azurerm_role_assignment" "users_monitor_reader" {
for_each = toset(local.users_identities)
scope = azurerm_resource_group.this.id
role_definition_name = "Monitoring Reader"
principal_id = each.key
}
Il est maintenant temps de déployer Azure Managed Grafana. Exécutez simplement la commande Terraform plan
et appliquez-la :
terraform plan --out=plan.out
Puis:
terraform apply plan.out
Accédez au portail Azure puis à l’instance Azure Managed Grafana avec l’un des utilisateurs auxquels vous avez donné accès. Ensuite, configurez-le en ajoutant ces deux tableaux de bord :
Pour ce faire, dans le panneau de gauche, cliquez sur Dashboard
, puis sur import
. Copiez-collez l’URL et cliquez sur Load
. Sélectionnez ensuite Azure Monitor et cliquez sur Import
.
Répéter l’opération pour le deuxième tableau de bord.
Maintenant, si vous accédez au premier tableau de bord, vous verrez la liste de vos container apps :
Et si vous cliquez sur l’un d’entre eux, vous serez redirigé vers le deuxième tableau de bord pour voir les détails de votre container App :
L’instance Azure Managed Grafana est déployée et configurée. Vous pouvez maintenant commencer à monitorer votre Azure Container Apps. Vous trouverez le code source complet dans ce répertoire Github.