ブログ
HOME Developer Square ブログ 【 SCSK技術者によるブログ】Sysdigの設定をTerraformで管理してみた(Monitor編)
【 SCSK技術者によるブログ】Sysdigの設定をTerraformで管理してみた(Monitor編)
みなさん、こんにちは!SCSK技術者ブログ第15回を担当するのは、鳥飼です。
第9回ではSysdig SecureにおけるTerraform管理を取り上げましたが、今回はSysdig MonitorをIaCで管理する方法をご紹介します。
Sysdig Secureの記事をご覧になったお客様からSysdig MonitorでもTerraform管理できるのかとご質問を頂き、執筆に至った次第です。
Sysdig Secureと同様にSysdig MonitorもTerraformで管理することが出来ます。今回のブログでは、メリットや手順についてご紹介します。
Terraformで管理するメリット
- 変更履歴を残す
Sysdigでは設定の変更など、UI上の操作をログとして残す機能はありますが、変更の内容までは残りません。コード化、そしてコード管理ツールと組み合わせることで、誰がいつどういった理由で設定を変更したといった情報を履歴として残すことができます。 - 設定ミスをなくす
GUIから操作した場合、人的なミスが発生することがあります。特にSysdig Monitorはメトリクスの文字列や、閾値の数字など、項目が複数あり、GUIではよくミスをします。(体験談) Terraformでコード管理をしていれば、terraformコマンドを実行するだけで、設定が反映されます。 - バックアップ、リストアとして利用する
誰かが誤って設定を削除してしまった。そ んな時でもTerraformで管理していれば大丈夫。terraformコマンドを実行すれば、元通りです。
IaCコード(Terraform)で管理できることにより、業務の正確性向上、可視性向上、ひいては業務の効率化につながるといえるでしょう。
今回はSysdig Monitor上に ①通知先(Notification Channel) ②アラート を設定します。
それでは、実際にSysdig MonitorをTerraformで管理してみましょう!皆さんもぜひ試してみてください。
前提条件
- Sysdig SaaSと通信可能なTerraformの実行環境(terraform v0.13+)
- Sysdig MonitorのエンドポイントURL
下記のドキュメントを参考にご利用のSaaSリージョンに対するMonitorエンドポイントURLを控えます。(例: us1 - https://app.sysdigcloud.com)
https://docs.sysdig.com/en/docs/administration/saas-regions-and-ip-ranges/ - Sysdig MonitorのAPI token
[ Settings > User Profile > Sysdig Monitor API ]を控えます。
手順
①通知先の設定を行います。
以下のmain.tfを作成し、配置したディレクトリでterraformコマンドを実行します。
$ cat main.tf terraform { required_providers { sysdig = { source = "sysdiglabs/sysdig" version = ">=0.5" } } } provider "sysdig" { sysdig_monitor_url = "<前提条件で確認したMonitor URLを指定します>" sysdig_monitor_api_token = "<前提条件で確認したMonitor Tokenを指定します>" } resource "sysdig_monitor_notification_channel_email" "sample_email" { name = "[terraform]Example Channel - Email" recipients = ["dummy-email@co.jp"] enabled = true notify_when_ok = false notify_when_resolved = false send_test_notification = false } $terraform init && terraform apply ~省略~ Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes sysdig_monitor_notification_channel_email.sample_email: Creating... sysdig_monitor_notification_channel_email.sample_email: Creation complete after 1s [id=256829] ★2で利用します。 Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
デプロイが完了しました。 [ Sysdig Monitor > Settings > Notification Channels ]に、作成した通知先が表示されています。
②アラートの設定を行います。 下記の記述をmain.tfに追記し、terraformコマンドを実行します。 notification_channels.idには1).で表示された数字列を入れます。
``` resource "sysdig_monitor_alert_v2_metric" "sample" { name = "[terraform test] high cpu used" severity = "high" metric = "sysdig_container_cpu_used_percent" group_aggregation = "avg" time_aggregation = "avg" operator = ">" threshold = 75 group_by = ["kube_pod_name"] scope { label = "kube_cluster_name" operator = "in" values = ["my_cluster_1", "my_cluster_2"] } scope { label = "kube_deployment_name" operator = "equals" values = ["my_deployment"] } notification_channels { id = 256829 renotify_every_minutes = 60 } range_seconds = 60 } ```` $ terraform apply ~省略~ Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes sysdig_monitor_alert_v2_metric.sample: Creating... sysdig_monitor_alert_v2_metric.sample: Still creating... [10s elapsed] sysdig_monitor_alert_v2_metric.sample: Creation complete after 10s [id=16236503] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
デプロイが完了しました。
[ Sysdig Monitor > Alerts ]に、作成したアラートが表示されています。
最後に
TerraformでSysdig Monitorを管理する方法をご紹介しました。
Sysdig Monitor上の設定をIaC化することで、『正確に』『早く』『簡単に』管理することができるのは魅力的ですね。
今後もSysdigに関する情報を発信していきますので、チェックしてください~!
■参考: Sysdigドキュメント - Developer Tools
https://docs.sysdig.com/en/docs/developer-tools/terraform-provider/
■参考: Terraformレジストリ - Sysdig Provider
https://registry.terraform.io/providers/sysdiglabs/sysdig/latest/docs
担当者紹介
- 担当者名
- 鳥飼
- コメント
- Sysdigを中心にコンテナ、Kubernetes、クラウド領域の業務に従事しています。
- 保有資格
- Certified Kubernetes Administrator