こんにちは、SCSK株式会社の大石です。
Terraformには様々なプロバイダが存在していますが、その中にZabbixのプロバイダがあることをご存じでしょうか?
今回は、Terraformを使用して、Zabbixの監視設定をしてみたいと思います。
監視内容は以下を想定します。
- ホスト: test
- ホストグループ: testHostgroup
- テンプレート: testTemplate
- アイテム: CPU5分間のロードアベレージ
- トリガー: 最終取得データが2を超えた場合
使用するプロバイダは以下となります。
プロバイダのインストール
terraformで使用するプロバイダをインストールします。
.tfファイルを作成し、以下を記述します。
terraform { required_providers { zabbix = { source = "tpretz/zabbix" version = "0.17.0" } } }
上記を記載したら、以下コマンドを実行してインストールをします。
terraform init
プロバイダの選択とZabbixログイン
プロバイダをインストールしたら、プロバイダブロックを記載していきます。
プロバイダブロックは上記でインストールしたZabbixプロバイダとログイン情報を記載する必要があります。
provider "zabbix" { username = "<Webコンソールのユーザ>" password = "<Webコンソールのパスワード>" url = "http://<IPアドレス or ドメイン>/zabbix/api_jsonrpc.php" tls_insecure = false }
監視設定
続いてリソースブロックとデータブロックを記載して、監視設定をします。
// 作成するテンプレートが所属するホストグループを取得 data "zabbix_hostgroup" "templategroup" { name = "Templates" } // 今回作成するホストが所属するホストグループ作成 resource "zabbix_hostgroup" "test_hostgroup" { name = "testHostgroup" } // テンプレート作成 resource "zabbix_template" "test_template"{ host = "testTemplate" //1~3行目で 取得したホストグループのIDを指定 groups = [data.zabbix_hostgroup.templategroup.id] } // エージェントタイプのアイテム作成 resource "zabbix_item_agent" "test_item" { // 作成したテンプレートIDを指定 hostid = zabbix_template.test_template.id key = "system.cpu.load[all,avg5]" name = "test_item_system.cpu.load" valuetype = "float" } // トリガーを作成 resource "zabbix_trigger" "test_trigger" { name = "test_trigger_system.cpu.load[all,avg5]" expression = "last(/test/system.cpu.load[all,avg5])>2" priority = "disaster" } // ホストを作成 resource "zabbix_host" "test" { // 作成したホストグループのIDを指定 groups = [ zabbix_hostgroup.test_hostgroup.id ] host = "test" interface { ip = "172.23.32.191" type = "agent" } // 作成したテンプレートのIDを指定 templates = [zabbix_template.test_template.id] // アイテムとトリガーの依存関係を指定 depends_on = [ zabbix_item_agent.test_item ] }
ここまで書いたら、以下のコマンドを実行して.tfファイルに書いたリソースを適用します。
// 適用前に確認 terraform plan // .tfファイルの内容を適用 terraform apply
ZabbixのWebコンソールを開き、[設定]-[ホスト]を開くと、設定されたホストが登録され、
テンプレートの適用とアイテム、トリガーが登録されていることが分かります。
最後に
Terraformには今回ご紹介したプロバイダ以外にもいくつかありますが、リソースを変更するとホストを削除して再登録する挙動をしたり、
バグで変更そのものができないものもあったりします。今回ご紹介したプロバイダも含め、バグを踏んで予想外の動作をすることもあるので、要検証したうえで使用しましょう。
弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。
SCSK Plus サポート for Zabbix
★YouTubeに、SCSK Zabbixチャンネルを開設しました!★
★YouTubeに、SCSK Zabbixチャンネルを開設しました!★