こんにちは、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チャンネルを開設しました!★