はじめに
前回は、Terraformを活用して、Virtual Machineを関連するリソースを構築しました。
今回は、Azureリソースの監視を行うために、VMの監視構成をTerraformで構築していきたいと思います。
【前回の記事】
構成するリソース
やりたい事①:VMのActivitiy Logを検知後、任意のメールアドレスへ通知
・アクティビティログアラートルール
・アクショングループ(メール通知用)
やりたい事②:CPUの使用率を閾値50%以上で監視し、任意のメールアドレスへ通知
・メトリックアラートルール
・アクショングループ(メール通知用)
※メール通知のアクショングループは宛先も同じなので同一のものを紐づけます。
TFファイルを作成
今回はVMやリソースグループは省略して、Azure Monitorの部分だけ記載していきます。
main.tf
#Monitor Create
resource "azurerm_monitor_action_group" "main" {
name = local.action_groupname
resource_group_name = azurerm_resource_group.rg.name
short_name = "test01"
email_receiver {
name = "test01"
email_address = local.mail_address
}
}
resource "azurerm_monitor_metric_alert" "metric_alert_01" {
name = local.metricalert_name
resource_group_name = azurerm_resource_group.rg.name
scopes = [azurerm_windows_virtual_machine.vm.id]
frequency = "PT5M"
severity = "4"
criteria {
metric_namespace = "Microsoft.Compute/virtualMachines"
metric_name = "Percentage CPU"
aggregation = "Average"
operator = "GreaterThan"
threshold = 50
}
action {
action_group_id = azurerm_monitor_action_group.main.id
}
}
resource "azurerm_monitor_activity_log_alert" "main" {
name = "example-activitylogalert"
resource_group_name = azurerm_resource_group.rg.name
scopes = [azurerm_resource_group.rg.id]
criteria {
resource_id = azurerm_windows_virtual_machine.vm.id
category = "ResourceHealth"
}
action {
action_group_id = azurerm_monitor_action_group.main.id
}
}
local.tf
action_groupname = "sample-action-group"
metricalert_name = "smple-metric"
mail_address = "任意のメールアドレスを記入"
main.tfをterraform applyで実行すると
下記の写真の様にアラートルールとアクショングループが作成されました。
実際にこんな感じでメールも届きますので、設定は問題なさそうです。
さいごに
Azure Monitorでは他にもログの収集も行える、Log Analyticsというサービスがあります。
機会があればこのサービスもTerraformで構築する事にチャレンジしてみます。
ここまで見てくれてありがとうございました。
何か意見あればコメントください。