Closed35

terraform-provider-mackerel で監視を設定する Scrap

sogaohsogaoh

Fargateのサービス環境に監視を入れていく
やっていったことの情報源を書く

  • terraform 1.0.4 -> 1.0.8
  • terraform-provider-aws 3.52.0 -> 3.62.0
  • terraform-provider-mackerel 0.0.3 -> 0.0.5
sogaohsogaoh
sogaohsogaoh

mkr でホストにシェルで Service:Role を一括設定する


# SES をこんな感じで設定した
mkr update --roleFullname ${SERVICE}:Mail $(mkr hosts | jq -r '.[] | select(.displayName=="SES") | .id')

# Redis はこんな感じ
mkr update --roleFullname ${SERVICE}:${ROLE} $(mkr hosts | jq -r '.[] | select(.name | startswith("production-hoge-redis-cluster-001")) | .id')

https://mackerel.io/ja/docs/entry/advanced/cli

sogaohsogaoh

Channel の Slack 、毎回 replace になるのは・・・なんだろう?(バグ?)

sogaohsogaoh

issue を上げた
https://github.com/mackerelio-labs/terraform-provider-mackerel/issues/61

その後、Slack コミュニティにコメントがあり、API 経由での update ができないので channel リソースは再作成になってしまう とのこと・・・

https://mackerel.io/ja/api-docs/entry/channels

tfstate のディレクトリを別にして id を variable で参照するようにして「毎回replace」を回避

一度はなるほど、と思ったが、 email ではそう(毎回 replace)はならない・・・という疑問を投げておいた・・・

sogaohsogaoh
sogaohsogaoh
S3 から設定ファイルを参照するときの IAM ポリシー例(雑...)

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*Object",
      "Resource": "arn:aws:s3:::${var.config_bucket_name}/*"
    }
  ],
  "Version": "2012-10-17"
}
sogaohsogaoh

プラグインの利用
メトリックプラグイン、チェックプラグインが利用可能です。

また、mackerel-container-agentでは 公式プラグインを同梱したDockerイメージ も公開しています。 plugins > は latest に、vX.Y.Z-pluginsvX.Y.Z にプラグインを同梱したイメージとなります。

サイズだいたい倍(使う)

sogaohsogaoh
タスク定義に追加するコンテナ定義例 (ecspresso 前提)

    {
      "name": "mackerel-container-agent",
      "image":"{{ must_env `MACKEREL_ECR_IMAGE_REPO_TAG` }}",
      "memoryReservation": 128,
      "essential": false,
      "environment": [
        {
          "name": "MACKEREL_CONTAINER_PLATFORM",
          "value": "fargate"
         },
         {
           "name": "MACKEREL_AGENT_CONFIG",
           "value": "s3://hoge-config-store/development/mackerel.yaml"
         },
         {
           "name": "MACKEREL_AGENT_CONFIG_POLLING_DURATION_MINUTES",
           "value": "5"
         }
      ],
      "secrets": [
        {
           "name": "MACKEREL_APIKEY",
           "valueFrom": "{{ must_env `PARAM_STORE_PREFIX`}}{{`MACKEREL_API_KEY`}}"
        }
      ]
    }

ecspresso v1.6.0 対応の意図で CircleCI の Orb は v0.0.15 を使用

https://circleci.com/developer/orbs/orb/fujiwara/ecspresso

https://sfujiwara.hatenablog.com/entry/ecspresso-v1.6.0

https://github.com/kayac/ecspresso

sogaohsogaoh

Monitor ふたたび

https://registry.terraform.io/providers/mackerelio-labs/mackerel/latest/docs/resources/monitor

AWSインテグレーションで自動認識されたホスト(?)に Monitor (アラート閾値) 設定するときは custom.${Mackerel上でのメトリック名} でホストメトリック監視を指定する

https://mackerel.io/ja/docs/entry/integrations/aws

sogaohsogaoh

Monitor 3たび

このスクラップは2021/12/19にクローズされました