Короткий ответ
LLD должен находить диски и NIC, которые вы чините в 3 ночи, а не veth, docker0, tmpfs и unmounted ISO. Ставьте фильтры на discovery rule (regexp по {#FSNAME}, {#IFNAME}), отсекайте типы FS, задайте lifetime потерянных ресурсов днями, не «хранить вечно». Ручное Delete 400 item раз в неделю — признак отсутствия фильтра. Мусор раздувает базу, очередь и шум. Серые прототипы: unsupported.
Хост WS-042, сервер 10.0.20.50, UI zabbix.example.
Симптомы и как отличить
Типичная картина:
- Configuration → Hosts → WS-042 → Items: сотни
vfs.fs.size[…]на/run,/var/lib/docker; - Problems:
Interface docker0 down; - NVPS скакнул после link template;
- discovery rule status unsupported (тогда наоборот — мусора нет и нужного тоже нет).
Отличия:
| Картина | Не «фильтр» |
|---|---|
| Один ключ серый | unsupported |
| Шум порогов на реальном eth0 | алерты |
| Нет нужного диска | фильтр слишком узкий / агент не видит FS |
Возможные причины
- Шаблон «Linux by Zabbix agent» без override фильтров на контейнерном хосте.
- Windows: LLD томов USB/CD, которые приезжают на backup-ночь.
- Lifetime lost resources = 30d при ежедневных временных интерфейсах — item копятся.
- Overrides прототипов не заданы, каждый discovered получает history 90d.
- Несколько LLD на одно и то же (два шаблона сетевых интерфейсов).
- Редко: кастомный LLD userparameter отдаёт всю
lsblkбез фильтра.
Диагностика
1. Сколько item на хосте
UI: Items count на WS-042. Сравните с эталоном «чистой» VM. >200 на файловом сервере без SAN — подозрительно, если нет сотен шаров.
2. Test discovery
Discovery rule → Test (агент должен быть доступен с poller/proxy):
zabbix_get -s 10.0.20.42 -p 10050 -k vfs.fs.discovery \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.pskКлюч discovery может быть vfs.fs.discovery / vfs.fs.get в зависимости от шаблона 6.0 vs 7.0 — берите ключ из rule, не из памяти. JSON покажет все FS, которые Zabbix увидит до фильтра UI.
Windows:
zabbix_get -s 10.0.20.42 -p 10050 -k vfs.fs.discovery \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.psk3. Lifetime в rule
Поля вроде «Keep lost resources period» / disable lost (название в UI 6.0 vs 7.0 чуть отличается — смотрите форму rule). Если 30d и docker плодит id каждый деплой — математика очевидна.
4. Дубли шаблонов
Templates на хосте: два network LLD. Вы увидите два item на один {#IFNAME}.
Решение
Сценарий A. Фильтры FS (Linux)
На discovery rule: Include {#FSTYPE} matches ext4|xfs|btrfs (под ваши данные). Exclude {#FSNAME} matches ^(/run|/sys|/dev|/proc|/var/lib/docker|/snap). Для контейнерных хостов — ещё жёстче. Эталон мониторинга Linux: как мониторить Linux.
Не копируйте regexp с Windows-хоста.
Сценарий B. Интерфейсы
Exclude {#IFNAME}: lo|docker|veth|br-|cni|cali|flannel. Для Windows: не алертить disconnected VPN NIC, если это норма.
Admin down ≠ Disaster. Триггер-прототип: статус oper vs admin.
Сценарий C. Lifetime
Для эфемерных объектов: 1h–1d, не 30d. Для дисков сервера: дни–неделя, чтобы не мигали item при кратком unmount. Выберите осознанно.
Сценарий D. History на прототипах
Прототип item: history 7d, не 90d. Иначе каждый docker mount убьёт диск БД.
Сценарий E. Уже напложенное
После фильтра новые не появятся. Старые lost доживают lifetime — не обязательно Delete all вручную, если lifetime короткий. Если уже десятки тысяч — сузьте lifetime, дождитесь housekeeper, не кликайте 5000 confirm в UI без нужды.
config_cache_reload после смены шаблона:
sudo zabbix_server -R config_cache_reloadКак проверить, что проблема устранена
Test discovery: в Preview после фильтров только нужные FS/NIC. Items count на WS-042 стабилен неделю. NVPS не скачет после деплоя контейнеров. Problems без veth. Новые реальные диски всё ещё появляются (проверьте добавлением тестового mount на стенде, не на проде).
Если не помогло
- Фильтр на
{#FSNAME}не работает: макрос в JSON другой ({#FSNAME}vs{#DIR}). Смотрите raw. - Agent 2
vfs.fs.getvs старый discovery — разные макросы, не смешивайте overrides. - Прототипы из вложенного template не те, что вы правите (overrides на уровне шаблона-родителя).
Профилактика
- Чеклист приёмки шаблона: Test LLD на Linux, Windows, docker-host отдельно.
- Алерт «items per host > N».
- Не линковать «максимальный» шаблон на Kubernetes worker без override.
- Документировать regexp в описании template.
Docker и Kubernetes worker без override фильтров — главный взрыв NVPS. Каждый pause-контейнер и overlay FS порождает vfs.fs и net.if. Через сутки кажется, что «Zabbix не тянет», хотя тянуть нечего. Стенд: одна нода с docker, Test discovery, regexp, только потом production.
Windows WS-042 с часто монтируемым USB и ISO даёт тома на весь lifetime. Исключите iso9660, udf и съёмные. Иначе ночной диск бэкапа станет дневным Warning «мало места на F:».
Два шаблона сети — официальный и старый кастом — удваивают item. Перед link смотрите имена уже существующих discovery rule. Unlink с опцией оставить элементы плодит сирот: lifetime их не уберёт, нужен осознанный cleanup.
После фильтра подождите один discovery interval и посмотрите Items count на WS-042, не сразу. Старые lost ещё живут lifetime. Сократите lifetime, если счётчик не падает неделю. Не Delete host.
FAQ
Можно ли LLD отключить и завести item вручную?
Для 3 дисков — да. Для фермы — нет. Фильтр масштабируется, ручной item нет.
Почему фильтр «не тот язык» regexp?
В LLD Zabbix — POSIX/PCRE в зависимости от настройки regexp (глобальные регулярки). Тестируйте в UI Test, не только в grep.
Discovery unsupported
Сначала почините ключ агента, потом фильтры. Unsupported rule не создаёт мусор и не создаёт нужное.
7.0 vfs.fs.get ломает старые фильтры?
Макросы могли измениться с шаблоном. После апгрейда шаблонов — Test. Не апгрейдьте template в бою без стенда.
Нужно ли фильтровать SMART-диски?
Если LLD видит USB-флешку админа — да, exclude. Иначе шум температуры флешки. См. SMART-статью раздела.
Удалить хост и создать снова?
Нет. Потеряете историю нужных ключей. Чините rule.