Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

はじめに

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

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

terraform-provider-mackerel

terraform-provider-mackerel とは

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

https://github.com/kjmkznr/terraform-provider-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

以上です。

4cast
豊かな表現力と確かな技術力でインターネットを通じて豊かな社会づくりを目指す会社
http://www.4cast.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした