13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MackerelAdvent Calendar 2016

Day 15

terraform で Mackerel の監視ルールを管理する

Last updated at Posted at 2016-12-14

はじめに

ここのところ terraform を使い AWS の構成を管理するようにしています。
コードで管理することで、PullRequestベースでレビューしあうことができ、かつリポジトリに過去の履歴が全て残るという点がすばらしいですね。
その分、コードに落す工数がかかってしまいますが。

今開発しているサービスでは Mackerel を監視に使用するつもりでいます。
Mackerel は go で書かれたライブラリがあり、簡単にAPIへのアクセスができます。
監視ルールも AWS と同じく terraform で管理できると良いな、と思い、terraform で Mackerel を管理する provider を作ってみました。

terraform-provider-mackerel

terraform-provider-mackerel とは

Hashicorp社が開発している terraform というツールのプラグインです。
このプラグインを使用することで terraform で Mackerel の設定を管理することができます。

できること

現時点では以下のことができます。

  • ダッシュボードの管理
  • 監視ルールの管理
    • ホストメトリック
    • サービスメトリック
    • 外形

API が用意されていないロールの管理や、ユーザの管理、AWS Integrationなどはできません。

インストール方法

ソースからビルドする場合は make build とすれば実行ファイルが bin/terraform-provider-mackerel というファイル名で作られます。
govendor というツールをビルド時に使用していますので、あらかじめインストールしておく必要があります。

ビルド済みのファイルを使用する場合は、Releaseページからダウンロードすることができます。

terraform-provider-mackerel$PATH に含まれているディレクトリに配置するか、以下のような設定ファイルを作ることで terraform から認識されるようになります。

  • ~/.terraformrc
providers {
    mackerel = "/path/to/terraform-provider-mackerel"
}

使い方

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

以上です。

13
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?