🚀 Terraform Setup for Zabbix Configuration
Этот проект предоставляет Terraform-конфигурации для автоматизированного развертывания и настройки компонентов Zabbix.
🔗 Репозиторий: GitHub
📌 Обзор
Terraform-конфигурация упрощает управление Zabbix, автоматизируя следующие задачи:
1️⃣ Настройка сервера Zabbix: Конфигурирование сервера Zabbix с необходимыми шаблонами и группами хостов.
2️⃣ Управление хостами: Добавление или обновление отслеживаемых хостов с предопределёнными параметрами.
3️⃣ Интеграция: Автоматическая привязка Zabbix к внешним инструментам визуализации, таким как Grafana.
🛠 Требования
Перед использованием этой конфигурации убедитесь, что:
✔️ Сервер Zabbix развернут и доступен (рекомендуемая версия: 6.0+).
✔️ Доступ к API Zabbix включен, и у вас есть действительный токен.
✔️ Terraform установлен (рекомендуемая версия: 1.3+).
🔧 Переменные
Terraform использует следующие переменные для конфигурации:
variable "zabbix_api_url" {
description = "URL API Zabbix"
type = string
}
variable "zabbix_api_user" {
description = "Имя пользователя API Zabbix"
type = string
}
variable "zabbix_api_password" {
description = "Пароль для API Zabbix"
type = string
}
variable "hosts" {
description = "Список хостов, управляемых Zabbix"
type = list(object({
hostname = string
ip_address = string
templates = list(string)
groups = list(string)
}))
}
⚙️ Конфигурация Terraform
📦 Providers
Используйте Zabbix-провайдер для взаимодействия с API Zabbix:
terraform {
required_providers {
zabbix = {
source = "djmitche/zabbix"
version = "~> 0.3.0"
}
}
}
provider "zabbix" {
url = var.zabbix_api_url
user = var.zabbix_api_user
password = var.zabbix_api_password
}
📌 Пример ресурсов
Добавление нового хоста в Zabbix
resource "zabbix_host" "example_host" {
name = var.hosts[0].hostname
interfaces = [{
type = "1"
main = true
ip = var.hosts[0].ip_address
dns = ""
port = "10050"
}]
groups = var.hosts[0].groups
templates = var.hosts[0].templates
}
🚀 Использование
🔹 1. Экспорт переменных окружения
export TF_VAR_zabbix_api_url="https://zabbix.example.com/api_jsonrpc.php"
export TF_VAR_zabbix_api_user="Admin"
export TF_VAR_zabbix_api_password="zabbix"
🔹 2. Инициализация Terraform
Запустите следующую команду для загрузки необходимых провайдеров:
terraform init
🔹 3. Планирование изменений
Чтобы увидеть, какие изменения будут применены, выполните:
terraform plan
🔹 4. Применение конфигурации
Запустите следующую команду для создания ресурсов:
terraform apply
🔹 5. Удаление ресурсов (при необходимости)
Чтобы удалить все ресурсы, управляемые Terraform:
terraform destroy
🎯 Заключение
Эта Terraform-конфигурация автоматизирует управление Zabbix, обеспечивая консистентность и масштабируемость мониторинга.
Вы можете настроить переменные и ресурсы в соответствии с вашей инфраструктурой, а также легко интегрировать Zabbix с другими инструментами.🚀