使用 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
dashboard.png
cpu.png

这就是以上的内容。

广告
将在 10 秒后关闭
bannerAds