Теперь можно быстро добавить VMmanager к мониторингу в Zabbix, чтобы отслеживать состояние виртуальной инфраструктуры и узлов. Для этого Zabbix добавил в свой репозиторий скрипт интеграции. Подробнее об установке читайте в статье DevOps-инженера ISPsystem Ильи Калиниченко.
В прошлый раз я рассказывал, как настроить через Zabbix мониторинг ВМ, созданных в VMmanager. Однако, такого решения не всегда достаточно. Часто нужно отслеживать не только виртуальные машины, но другие объекты инфраструктуры. У администратора могут возникать самые разные вопросы:
- работает ли платформа VMmanager? Отвечает ли она на запросы пользователей?
- не возникла ли ошибка при выполнении запущенной задачи, например, создание ВМ или изменение конфигурации?
- в каком состоянии находятся узлы?
- как работают сервисы, запущенные на узле?
Всю эту информацию можно отследить в виджетах самой платформы. Подробнее об этом можно почитать в материале «Мониторинг в VMmanager».
Другой вариант — добавить VMmanager в систему мониторинга Zabbix. Это особенно удобно, если вы уже используете Zabbix для других задач — централизованно следить за состоянием сервисов проще.
Подключить VMmanager к мониторингу достаточно просто — для этого мы написали шаблон, который Zabbix добавил в свой репозиторий. О том как его применить расскажу далее.
Добавление VMmanager в Zabbix
- 1. Если у вас еще нет сервера Zabbix, вы можете легко развернуть его скриптом на виртуальной машине. Подробнее об этом я писал статье «Разворачиваем Zabbix за несколько минут».
- 2. Затем, чтобы настроить мониторинг VMmanager, cкачайте файл шаблона.
- 3. Добавите в Zabbix шаблон для работы с VMmanager 6. Для этого перейдите в меню Zabbix:
Configuration -> Templates -> Import -> Выбрать файл
- 4. В разделе Пользователи в VMmanager создайте пользователя для работы с API.
- 5. Получите токен авторизации, используя Curl:
~ $ curl -s -X POST -H "accept: application/json" -H "Content-Type: application/json" -d '{"email":
"api@example.com", "password": "iQ3xK6nJ2dnY"}' "https://vm6.example.com/auth/v4/public/token"
{"id":"69","token":"69-a56c5bd9-ba6b-489e-a670-c452cbdd3b70"}
Подставьте свой пароль и URL в команду. Token скопируйте.
- 6. Добавите сервер с VMmanager в Zabbix:
-
- 6.1. Configuration -> Hosts -> Create Host
-
- 6.2. Заполните имя, создайте новую группу. Добавьте интерфейс Agent
- 6.3. Затем в разделе Templates прикрепите шаблон
-
- 6.4. В разделе Macros добавьте два макроса:
{$VM6_TOKEN} — токен, который получили выше
{$VM6_URL} — https://__VM_DOMAIN__/vm/v3
Готово
- 7. Далее необходимо установить на узлы Zabbix-agent2. Для этого добавьте Ansible скрипт в платформу. Не забудьте поменять __SERVER_IP__ на ip своего сервера).
---
- name: Install zabbix-agent playbook
hosts: all
debugger: on_failed
tasks:
- name: Install zabbix-release CentOS 8
yum:
name: https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
state: present
- 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,__SERVER_IP__"
- name: Change Active Server IP
lineinfile:
path: /etc/zabbix/zabbix_agent2.conf
regexp: 'ServerActive=127.0.0.1'
line: "ServerActive=127.0.0.1,__SERVER_IP__"
- 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
- 8. Запустите скрипт на узлах.
- 9. Добавьте узлы в Zabbix вручную (Configuration -> Hosts -> Create host) или автоматически. Для
этого:
- 9.1. Перейдите в Configuration -> Hosts
- 9.2. Найдите наш VMmanager 6
- 9.3. Зайдите в Discovery
-
- 9.4. Зайдите в Host prototypes и включите Create enabled и Discover
-
- 9.5. Затем перейдите в Monitoring -> Hosts, находим наш vm6, Нажмите на на названии, затем на Inventory. В строке Configuration выберите Discovery
- 9.6. Отметьте строку «VMmanager 6 Master: Host discovery» и нажмите «Execute now»
- 9.7. Готово — Zabbix создаст хосты, взяв ваши узлы кластера по API
- 10. Теперь Zabbix будет следить за узлами и задачами. Осталось настроить отправку уведомлений. Для этого:
- 10.1. В разделе Administration -> Media types включите и настройте способ отправки уведомлений, который вам больше нравится
- 10.2. В разделе Administration -> Users в настройках своего пользователя включите свой Media
- 10.3. В разделе Configuration -> Actions -> Trigger actions включите отправку уведомлений о событиях для всех Media
Готово — VMmanager добавлен к мониторингу в Zabbix.
Сейчас в нашем шаблоне предусмотрен мониторинг основных показателей работы виртуальной инфраструктуры. Поделитесь в комментариях, какие метрики хотели бы видеть вы.






