Устанавливаешь ли Zabbix вручную на каждой работе?

«Устанавливаешь ли Zabbix вручную на каждой работе?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, ручная установка — антипаттерн для DevOps. Я автоматизирую развертывание Zabbix с помощью инструментов IaC и конфигурационного менеджмента.

Основные подходы:

  1. Ansible для конфигурации: Использую роли для установки сервера, прокси и агентов, настройки шаблонов и триггеров.
  2. Terraform для инфраструктуры: Разворачиваю ВМ/контейнеры в облаке (AWS, GCP) под Zabbix.
  3. Контейнеризация (Docker/K8s): Для гибкости и масштабирования использую официальные образы или собираю свои.

Пример задачи в Ansible playbook для установки Zabbix-агента:

- name: Install and configure Zabbix Agent 2
  hosts: all_servers
  tasks:
    - name: Add Zabbix repository
      ansible.builtin.apt_repository:
        repo: "deb https://repo.zabbix.com/zabbix/6.0/ubuntu/ {{ ansible_distribution_release }} main"
        state: present
        codename: "{{ ansible_distribution_release }}"
    - name: Install Zabbix Agent 2
      ansible.builtin.apt:
        name: zabbix-agent2
        state: latest
        update_cache: yes
    - name: Configure Zabbix Agent
      ansible.builtin.template:
        src: zabbix_agent2.conf.j2
        dest: /etc/zabbix/zabbix_agent2.conf
      notify: Restart zabbix-agent2
  handlers:
    - name: Restart zabbix-agent2
      ansible.builtin.systemd:
        name: zabbix-agent2
        state: restarted

Для продакшена предпочитаю использовать Helm-чарты для развертывания Zabbix в Kubernetes или managed-сервисы типа Zabbix Cloud.