Ответ
Auto Discovery (автоматическое обнаружение) в Zabbix — это функциональность для автоматического поиска сетевых устройств, сервисов, файловых систем или других объектов и последующего их добавления в мониторинг с применением соответствующих шаблонов. Она состоит из двух основных компонентов: Network Discovery и Low-Level Discovery (LLD).
1. Network Discovery:
- Сканирует заданные IP-диапазоны на наличие активных устройств.
- Обнаруживает сервисы (SSH, HTTP, SNMP и т.д.) на этих устройствах.
- На основе правил (Discovery Rules) может автоматически создавать хосты, добавлять их в группы и применять шаблоны.
2. Low-Level Discovery (LLD):
- Динамически обнаруживает элементы на уже мониторируемом хосте. Например, сетевые интерфейсы, файловые системы, установленные приложения, процессы.
- Позволяет создавать элементы данных, триггеры и графики для каждого обнаруженного объекта без ручного конфигурирования.
- Работает через UserParameter или специализированные агенты, которые возвращают данные в формате JSON.
Пример правила LLD для обнаружения файловых систем через Zabbix Agent:
# UserParameter в конфигурации агента (zabbix_agentd.conf)
UserParameter=vfs.fs.discovery, sudo /usr/bin/python3 /etc/zabbix/scripts/discover_fs.py
# /etc/zabbix/scripts/discover_fs.py
import json
import subprocess
# Получаем список файловых систем, отфильтровываем спец.типы (tmpfs, devtmpfs)
result = subprocess.run(['df', '-PT'], stdout=subprocess.PIPE, text=True)
fs_list = []
for line in result.stdout.splitlines()[1:]:
parts = line.split()
if parts[1] not in ['tmpfs', 'devtmpfs']:
fs_list.append({"{#FSNAME}": parts[0], "{#FSTYPE}": parts[1]})
print(json.dumps({"data": fs_list}))
Преимущества: Резко снижает объем ручной работы по настройке мониторинга в больших и изменяющихся инфраструктурах.