使用Terraform部署AWS的CloudWatch相关配置
Terraform系列的第7版是CloudWatch(以下简称CW)。
以下是过去的Terraform文章:
第一篇:尝试使用Terraform部署AWS资源
第二篇:在使用Terraform部署AWS环境之前需要了解的事情
第三篇:使用Terrafor部署AWS的IAM相关内容
第四篇:使用Terrafor部署AWS的网络相关内容
第五篇:使用Terrafor部署AWS的EC2相关内容
第六篇:使用Terrafor部署AWS的S3
活动规则
在这里,我们以安全组的监视作为例子。事件模式本身是以json描述并导出。通知对象有点特殊,我们将其作为另一个账户的事件总线来处理。
resource "aws_cloudwatch_event_rule" "SecurityGroupMonitor" {
name = "SecurityGroupMonitor"
description = "Monitoring Security Group Configurataion"
is_enabled = false
event_pattern = file("folder/SecurityGroupMonitor.json")
}
resource "aws_cloudwatch_event_target" "SecurityGroupMonitor" {
rule = aws_cloudwatch_event_rule.SecurityGroupMonitor.name
arn = "arn:aws:events:ap-northeast-1:XXXXXXXXXXX:event-bus/default"
role_arn = aws_iam_role.対象ロール名.arn
}
度量筛选器
从日志组中筛选出指定的字符串,以下示例中使用了”Error”作为匹配条件。将与metric_transformation中定义的Metric Alarm进行关联。
resource "aws_cloudwatch_log_metric_filter" "Error" {
name = "Error"
pattern = "Error"
log_group_name = "ロググループ名"
metric_transformation {
name = "メトリクス名"
namespace = "LogMetrics" #名前空間
value = "1" #メトリクス値
}
}
度量警报
使用度量筛选器提取的信息会通过通知进行传达。由于代码可能难以理解,可以将其与控制台对照一起查看,这样更容易理解。
resource "aws_cloudwatch_metric_alarm" "Error" {
alarm_name = "アラーム名"
comparison_operator = "GreaterThanOrEqualToThreshold" #アラーム条件
evaluation_periods = "1" #アラームを実行するデータポイント
metric_name = "メトリクス名"
namespace = "LogMetrics" #名前空間
period = "60" #期間(秒)
statistic = "Sum" #統計方法
threshold = "0" #アラーム条件のしきい値
alarm_actions = ["arn:通知先"]
actions_enabled = "false"
}
以下的文章可以作为参考:
※这篇文章对你可能有所帮助。
https://qiita.com/hengineer/items/382c4f45b83cedfaea85
由于项目可能会创建大量的过滤器,因此在这种情况下,您可以从速度的角度获得很大的好处。另外,将每个动作设置为false是在假设尚未进入操作的情况下设置为false的。由于后续可以手动切换,所以请根据需要进行适当的设置。