使用 Terraform 管理 Mackerel 的监控规则
首先
最近我们开始使用Terraform来管理AWS的配置。通过代码管理,可以通过Pull Request进行审查,并且所有历史记录都会保存在代码库中,这一点非常好。不过,这也意味着需要花费一些时间来编写代码。
在我们目前开发的服务中,打算使用 Mackerel 进行监控。
Mackerel 是一个用 go 语言编写的库,可以简单地访问 API。
我也希望能够像 AWS 一样使用 terraform 来管理监控规则,所以尝试创建了可以用 terraform 管理 Mackerel 的提供程序。
terraform-provider-mackerel 可以被改写为 “土地配置提供商-马卡瑞尔”。
terraform-provider-mackerel 是什么意思?
这是一个由Hashicorp开发的terraform工具的插件。通过使用该插件,可以在terraform中管理Mackerel的配置。
能够做的事情 zuò de
目前为止,您可以做以下几件事情。
-
- ダッシュボードの管理
-
- 監視ルールの管理
ホストメトリック
サービスメトリック
外形
式
无法进行没有API提供的角色管理、用户管理、AWS集成等操作。
安装方法
如果从源代码构建,执行 make build 将创建一个名为 bin/terraform-provider-mackerel 的可执行文件。在构建过程中使用了一个名为 govendor 的工具,因此需要提前安装。
如果您想使用已构建的文件,您可以从发布页面上下载。
将 terraform-provider-mackerel 放置在 $PATH 中的一个目录中,或者通过创建以下配置文件来让 terraform 能够识别它。
- ~/.terraformrc
providers {
mackerel = "/path/to/terraform-provider-mackerel"
}
使用方法
鲭鱼.tf
provider "mackerel" {
apikey = "xxxx"
}
resource "mackerel_dashboard" "foobar" {
title = "terraform_for_mackerel_test_foobar"
url_path = "foo/bar"
body_markdown = <<EOF
# Head1
## Head2
* List1
* List2
EOF
}
resource "mackerel_host_monitor" "cpu" {
name = "CPU"
duration = 10
metric = "cpu%"
operator = ">"
warning = 85.5
critical = 95.5
notification_interval = 10
}
$ terraform plan
+ mackerel_dashboard.foobar
body_markdown: "# Head1\n## Head2\n\n* List1\n* List2\n"
title: "terraform_for_mackerel_test_foobar"
url_path: "foo/bar"
+ mackerel_host_monitor.cpu
critical: "95.5"
duration: "10"
metric: "cpu%"
name: "CPU"
notification_interval: "10"
operator: ">"
warning: "85.5"
Plan: 2 to add, 0 to change, 0 to destroy.
$ terraform apply
这就是以上的内容。