Документация VMmanager 6 (администратор)

Zabbix

ISPSystem

Zabbix — это система мониторинга с открытым исходным кодом. С помощью Zabbix вы можете настроить мониторинг виртуальных машин и других сущностей платформы.

Основные компоненты Zabbix:

  • сервер — компонент для управления сетевыми сервисами, хранения данных мониторинга, оповещения администратора о проблемах с оборудованием. Вы можете использовать собственный сервер Zabbix или создать ВМ для выполнения этих функций;
  • прокси — промежуточный сервис, который собирает данные с ВМ и передаёт на сервер. Необязательный компонент. Прокси следует использовать, чтобы сократить нагрузку на сервер или если ВМ не имеют прямого доступа к серверу. Вы можете создать одну или несколько ВМ, выполняющую роль прокси;
  • агент — программное обеспечение, устанавливаемое на ВМ или узел кластера. Агент собирает данные мониторинга и передаёт на сервер или прокси.

Подробнее о Zabbix см. в официальной документации.

Установка компонентов Zabbix


Установка Zabbix на ВМ производится с помощью скриптов из репозитория ISPsystem. Скрипты могут быть запущены как при создании ВМ, так и после создания. Подробнее см. в статье Запуск скриптов на ВМ.

Для установки Zabbix на узел кластера потребуется создать Ansible-скрипт установки. Подробнее см. в статье Создание скрипта для узла.

Сервер

Системные требования к серверу Zabbix зависят от количества устройств, для которых нужно проводить мониторинг. Подробную информацию о системных требованиях см. в официальной документации Zabbix.

Чтобы установить сервер Zabbix на ВМ:

  1. Cоздайте ВМ с ОС CentOS 8, Ubuntu 20.04 или Debian 10.
  2. Запустите на ВМ скрипт Zabbix server.

Веб-интерфейс сервера будет доступен по URL http://<IP созданной ВМ>. Например, http://192.168.100.100. Для авторизации используйте:

  • имя пользователя — Admin;
  • пароль — zabbix.

Прокси

Чтобы установить прокси Zabbix на ВМ:

  1. Cоздайте ВМ с ОС CentOS 8, Ubuntu 20.04 или Debian 10.
  2. Запустите на ВМ скрипт Zabbix proxy. Укажите IP-адрес сервера Zabbix при запросе параметра.

Агент

Чтобы установить агенты Zabbix на ВМ:

  1. Запустите на ВМ:
    • с ОС семейства Linux — скрипт Zabbix agent linux;
    • с ОС Windows — скрипт Zabbix agent windows.
  2. Укажите при запросе параметра ZABBIX_SERVER:
    • если вы используете прокси — IP-адрес прокси Zabbix;
    • если вы не используете прокси — IP-адрес сервера Zabbix.

Чтобы установить агенты Zabbix на узлах кластера:

  1. Перейдите в Скрипты Для узлов Создать скрипт.
  2. Создайте Ansible-скрипт и укажите в нём IP-адрес сервера Zabbix вместо фрагмента <zabbix_server> в секциях Change Server IP и Change Active Server IP:

    ---
    - name: Install zabbix-agent playbook
      hosts: all
      debugger: on_failed
      tasks:
        - name: Install zabbix-release AlmaLinux 8
          yum:
            name: https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
            state: present
          when: ansible_os_family == "RedHat" and ansible_distribution_major_version == "8"
    
        - name: Install zabbix-release CentOS 7
          yum:
            name: https://repo.zabbix.com/zabbix/5.4/rhel/7/x86_64/zabbix-release-5.4-1.el7.noarch.rpm
            state: present
          when: ansible_os_family == "RedHat" and ansible_distribution_major_version == "7"
    
        - name: Install zabbix release package
          apt:
            deb: https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
          when: ansible_distribution == 'Ubuntu'
    
        - name: Install zabbix-agent2 package
          package:
            name: zabbix-agent2
            state: present
    
        - name: Change Server IP
          lineinfile:
            path: /etc/zabbix/zabbix_agent2.conf
            regexp: 'Server=127.0.0.1'
            line: "Server=127.0.0.1,<zabbix_server>"
    
        - name: Change Active Server IP
          lineinfile:
            path: /etc/zabbix/zabbix_agent2.conf
            regexp: 'ServerActive=127.0.0.1'
            line: "ServerActive=127.0.0.1,<zabbix_server>"
    
        - name: Stop zabbix-agent
          service:
            name: zabbix-agent
            state: stopped
            enabled: no
          ignore_errors: yes
    
    
        - name: Start zabbix-agent2
          service:
            name: zabbix-agent2
            state: started
            enabled: yes
    
        - name: Create a new sudoers file
          file:
            path: /etc/sudoers.d/zabbix
            state: touch
            mode: 0400
            owner: root
    
        - name: Add sudoers
          copy:
            dest: /etc/sudoers.d/zabbix
            content: |
              Defaults:zabbix !requiretty
              Cmnd_Alias ZABBIX_CMD = /usr/bin/virsh -q list, /usr/bin/virsh -q list --all
              zabbix ALL = (root) NOPASSWD: ZABBIX_CMD
    
        - name: Add vmmanager config to zabbix
          file:
            path: /etc/zabbix/zabbix_agent2.d/vmmanager.conf
            state: touch
            mode: 0644
            owner: root
    
        - name: Configure zabbix for VMmanager
          copy:
            dest: /etc/zabbix/zabbix_agent2.d/vmmanager.conf
            content: |
              UserParameter=vm.all,sudo virsh -q list --all | wc -l
              UserParameter=vm.running,sudo virsh -q list | wc -l
    
    
  3. Запустите скрипт на узлах кластера.

Настройка сервера Zabbix


Добавление конфигурации прокси

  1. Перейдите в AdministrationProxiesCreate proxy.
  2. Укажите настройки прокси:
    1. Proxy name — произвольное имя прокси.
    2. Proxy mode — режим работы прокси. Выберите Passive.
    3. IP address — IP-адрес прокси.
    4. DNS name — имя DNS-сервера. Оставьте значение по умолчанию — localhost.
    5. Connect to — тип подключения. Выберите IP.
    6. Port — порт подключения. Оставьте значение по умолчанию — 10051.
    7. Description — произвольный комментарий к прокси.
  3. Нажмите Add.

Добавление мониторинга платформы

  1. Создайте токен для авторизации в платформе:

    curl -s -X POST -H  "accept: application/json" -H  "Content-Type: application/json" -d '{"email": "admin@example.com", "password": "admin_pass"}' "https://vm6.example.com/auth/v4/public/token"

    admin@example.com — имя пользователя VMmanager с правами администратора

    admin_pass — пароль пользователя

    vm6.example.com — доменное имя или IP-адрес сервера с платформой

    Сохраните значение token из ответа:

    Пример ответа
    {"id":"69","token":"69-a56c5bd9-ba6b-489e-a670-c452cbdd3b70"}
  2. Скачайте шаблоны из репозитория Zabbix:
    1. template_vmmanager_6_master.yaml — для мониторинга платформы.
    2. template_vmmanager_6_kvm_hypervisor.yaml — для мониторинга узлов кластера.
  3. Импортируйте загруженные шаблоны в Zabbix: ConfigurationTemplates Import → выберите файл шаблона → ImportImport.
  4. Включите мониторинг сервера с VMmanager в Zabbix:
    1. Перейдите в ConfigurationHostsCreate host.
    2. Укажите параметры сервера:
      1. Host name — произвольное имя для обозначения сервера в базе данных Zabbix.
      2. Visible name — произвольное имя для отображения сервера в интерфейсе Zabbix.
      3. Groups — группа объектов. Выберите VMmanager 6.
      4. Interfaces — сетевые интерфейсы. Нажмите AddAgent.
      5. IP address — IP-адрес сервера c платформой.
      6. DNS name — имя DNS-сервера. Оставьте пустое значение по умолчанию.
      7. Connect to — тип подключения. Выберите IP.
      8. Port — порт подключения. Оставьте значение по умолчанию — 10050.
      9. Description — произвольный комментарий.
      10. Monitored by proxy — используемый прокси. Выберите имя прокси, если вы его используете.
      11. Enabled — включите опцию, чтобы активировать мониторинг платформы.
    3. Перейдите на вкладку Templates и введите в поле Link new templates: Template VMmanager 6 Master.
    4. Перейдите на вкладку Macros и добавьте макросы:
      1. {$VM6_TOKEN} — токен для авторизации в платформе.
      2. {$VM6_URL} — URL сервера с платформой в формате https://vm6.example.com/vm/v3, где vm6.example.com — доменное имя или IP-адрес сервера с платформой.
    5. Нажмите Add.
  5. Включите мониторинг узлов кластера в Zabbix:
    1. Перейдите в ConfigurationHosts → выберите сервер с платформой → Discovery.
    2. В разделе Discovery Rules в строке Template VMmanager 6 Master: Host discovery нажмите Host prototypes.

    3. В разделе Host Prototypes включите для сервера опции Create enabled и Discover.
    4. Перейдите в Monitoring Hosts → выберите сервер с платформой → Inventory.

    5. В разделе Host Inventory нажмите Discovery.

    6. Выделите строку VMmanager 6 Master: Host discoveryExecute now.

Zabbix автоматически подключится к VMmanager и получит список узлов кластера для мониторинга. Чтобы новые узлы кластера автоматически добавлялись в настройки Zabbix, установите на узлы агент Zabbix.

Добавление отдельных ВМ для мониторинга

  1. Перейдите в ConfigurationHostsCreate host.
  2. Добавьте настройки ВМ:
    1. Host name — произвольное имя для обозначения ВМ в базе данных Zabbix.
    2. Visible name — произвольное имя для отображения ВМ в интерфейсе Zabbix.
    3. Groups — группа объектов. Выберите Virtual machines.
    4. Interfaces — сетевые интерфейсы. Нажмите AddAgent.
    5. IP address — IP-адрес ВМ.
    6. DNS name — имя DNS-сервера. Оставьте пустое значение по умолчанию.
    7. Connect to — тип подключения. Выберите IP.
    8. Port — порт подключения. Оставьте значение по умолчанию — 10050.
    9. Description — произвольный комментарий к ВМ.
    10. Monitored by proxy — используемый прокси. Выберите имя прокси, если вы его используете.
    11. Enabled — включите опцию, чтобы активировать мониторинг этой ВМ.
  3. Перейдите на вкладку Templates и выберите в поле Link new templates шаблон для мониторинга ВМ:
    • с ОС семейства Linux — Template OS Linux by Zabbix agent;
    • с ОС Windows — Template OS Windows by Zabbix agent.
  4. Нажмите Add.
Спасибо за ваш отзыв!
Была ли полезна статья?
Уточните, почему:

статья не соответствует названию

статью сложно понять

в статье нет ответа на мой вопрос

рекомендации из статьи не помогли

другая причина

Расскажите, что вам не понравилось в статье: