Короткий ответ
Linux-сервер в Zabbix — агент 2, не «как Windows service.info». Пакет: systemd.unit.info на ролевые unit (nginx.service, postgresql.service, sshd.service, zabbix-agent2.service), диск байты + inode, RAM available, CPU по базе, точечный journal/лог, SMART/RAID на физике. Ping ≠ nginx. Windows — отдельная статья. Агент: порт 10050, PSK psk-ws042, Hostname. Диск заранее: timeleft.
Хост может называться не WS-042; если это Windows-имя в парке — не вешайте Linux-шаблон. Пример Linux: тот же poller 10.0.20.50.
Симптомы и как отличить
Типичная картина:
systemctl --failedнепустой, Problems нет;- почта не принимается,
df -hсвободный,df -i100%; - ночной backup CPU, RAM «забита» кэшем файлов;
- journalctl полнится I/O error, Zabbix не читает.
Возможные причины
- Шаблон Windows.
- LLD всех docker FS — мусор LLD.
- Нет inode item.
- journal целиком в log[] .
- Проверки только localhost, снаружи nft режет.
- Нет SMART на железе, только в VM-госте пустышка.
- SELinux denials, агент не читает unit.
Диагностика
На хосте:
systemctl status zabbix-agent2 --no-pager
systemctl --failed --no-pager
df -hT
df -i
free -h
journalctl -p err -n 20 --no-pagerС 10.0.20.50 (подставьте IP Linux-хоста):
zabbix_get -s 10.0.20.42 -p 10050 -k agent.ping \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.psk
zabbix_get -s 10.0.20.42 -p 10050 -k 'vfs.fs.size[/,pfree]' \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.psk
zabbix_get -s 10.0.20.42 -p 10050 -k 'vfs.fs.inode[/,pfree]' \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.psk
zabbix_get -s 10.0.20.42 -p 10050 -k 'vm.memory.size[available]' \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.psk
zabbix_get -s 10.0.20.42 -p 10050 -k 'systemd.unit.info[nginx.service,ActiveState]' \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.pskКлюч systemd уточните по шаблону 6.0/7.0 (systemd.unit.info параметры). Unsupported — plugin/agent version.
Снаружи сервис:
nc -vz 10.0.20.42 22
nc -vz 10.0.20.42 443Решение
1. Агент 2
Пакет дистрибутива/официальный repo линии 6.0 или 7.0. Server/ServerActive, Hostname, PSK, nft allow 10.0.20.50 → 10050. Не ufw disable. SELinux enforcing, не permissive навсегда.
2. systemd
Шаблон systemd LLD с фильтром unit, которые enabled и ролевые. Триггер ActiveState ≠ active для nginx/postgres/sshd. Не алертить apt-daily.timer как Disaster.
Зависимость: unit nginx down важнее CPU Warning.
3. Диск и inode
LLD FS с фильтром fstype ext4/xfs, exclude /run docker. Два прототипа: pfree байт (макросы/timeleft) и vfs.fs.inode[pfree]<10.
4. RAM и CPU
Available + swap in rate. CPU min 10–15m, макросы роли. iowait отдельно.
5. journal / лог
journalctl через log[] или systemd.journal если есть в вашей линии шаблонов — фильтр PRIORITY=3 и конкретный UNIT. History короткий. Не весь /var/log/syslog.
Альтернатива: item vfs.file.regexp на /var/log/nginx/error.log с редким интервалом.
6. Железо
Физика: SMART, mdadm RAID. Гость: не врём себе SMART на virtio.
7. Доступность снаружи
sshd/nginx simple check с 10.0.20.50. Сервис, не только ICMP.
config_cache_reload после link:
sudo zabbix_server -R config_cache_reloadКак проверить, что проблема устранена
Стенд: systemctl stop nginx → PROBLEM unit + HTTP. df -i (мелкие файлы) → inode Warning до падения сервиса. stress RAM cache (find /usr | cat >/dev/null) не должен дать RAM Disaster. zabbix_get inode/available живые. Рестарт агента:
sudo systemctl restart zabbix-agent2
systemctl is-active zabbix-agent2Если не помогло
- systemd ключ unsupported на старом agent 1 — ставьте agent 2.
- Контейнер без systemd — другой шаблон (Docker LLD с фильтрами), не unit.info PID 1 fake.
- Immutable OS — пути логов другие.
Профилактика
- Kickstart/cloud-init: агент + PSK + Hostname.
- Роль (db/web) → template link в Ansible, не руками спустя год.
- Алерт
zabbix-agent2unit failed. - Регулярный тест LLD на docker-хосте.
- Identity PSK
psk-ws042на Linux-хосте не копируйте с Windows-клонаWS-042.
Типичные симптомы дырявого Linux-шаблона: в systemctl --failed есть unit, в Problems пусто; inode 100% при свободных гигабайтах; Disaster по RAM из-за page cache; в journal I/O error, SMART нет, потому что это гость. Закройте слои отдельно: systemd ролевых unit, байты и inode, available, TCP сервиса с 10.0.20.50, железо на гипервизоре.
Не открывайте LLD на все unit. Таймеры apt-daily и session-*.scope дают шум. Include список ролей плюс zabbix-agent2.service. Journal — ошибки конкретного UNIT, history дни, не весь syslog. Docker-хост требует жёсткий фильтр FS и IF, иначе discovery раздует базу.
Приёмка: zabbix_get для ping, pfree, inode, available и systemd.unit.info на sshd или nginx; nc на 22 и 443 с poller; PSK; nft не world; SELinux enforcing. «Пакет агента установлен» не равно «сервер мониторят». Добавьте ещё load и iowait на машины с дисковыми жалобами: высокий util при низком iowait и высокий iowait при скромном util лечатся по-разному, и пороги CPU без iowait снова превратятся в ложные ночные алерты на backup.
Практический каркас Linux на линии 6.0/7.0: агент 2, PSK, nft allow только poller или proxy на 10050, Hostname из inventory. Item systemd.unit.info на sshd, nginx или postgresql — что реально роли, плюс сам zabbix-agent2. Диск: pfree, inode, timeleft на / и данные. RAM available. Снаружи nc 22/443 с 10.0.20.50. Journal узкий. Физика — SMART и mdadm на хосте, не в virtio-госте. Так вы закрываете типичный пробел «ping жив, unit dead, inode 0». Не используйте SNMP как замену агента на Linux, если цель — systemd и журнал. После reboot проверьте, что unit enabled, а не только started вручную вчера.
FAQ
Cron vs systemd timer failed
Ловите systemd.unit.info на timer/service, не только crontab файл.
Нужен ли net.if на все veth?
Нет. Фильтр LLD. Хост veth шум.
Zabbix proxy на Linux
Этот же пакет ОС плюс канал proxy. Сам proxy — отдельный хост в UI.
journal через rsyslog на SIEM
Zabbix не замена SIEM. Только сигналы Error ролевого unit.
Ubuntu vs RHEL
Ключи агента те же. Unit имена (httpd vs nginx) — макрос/линк шаблона роли.
Можно ли SNMP вместо агента на Linux?
Потеряете systemd/journal удобно. SNMP — дополнение для железа, не замена агента 2.