SystemdDoctor
служба не работает наблюдение права изоляция

Агент наблюдения не может прочитать нужные данные

Агенты наблюдения работают от непривилегированного пользователя и потому не видят части системных данных: чужих журналов, содержимого некоторых каталогов, сведений о других процессах. Выдавать агенту права root — плохое решение: он выполняет проверки, приходящие извне.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Проверка обращается к файлу, недоступному агенту

    Наблюдение за чужим журналом или файлом с закрытыми правами отказывает. Значение показателя становится отказом доступа.

  2. Изоляция unit-файла скрывает часть системы

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

  3. Проверка требует повышения прав

    Часть проверок без прав root не работает вовсе. Обычный путь — отдельные разрешения для конкретных команд.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Может ли пользователь агента прочитать нужный файл.

sudo -u zabbix test -r /путь/к/файлу && echo чтение есть || echo чтения нет

Пользователь и параметры изоляции агента.

systemctl show zabbix-agent2 -p User -p ProtectProc -p ProtectSystem 2>/dev/null

Отказы в журнале агента.

journalctl -u zabbix-agent2 -n 30 --no-pager | grep -iE "denied|failed"

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Проверка обращается к файлу, недоступному агенту
Почему происходит
Наблюдение за чужим журналом или файлом с закрытыми правами отказывает. Значение показателя становится отказом доступа.
Как проверить
Посмотрите проверку и права на файл.
sudo -u zabbix test -r /var/log/myapp/app.log && echo чтение есть || echo чтения нет
systemctl show zabbix-agent2 -p User 2>/dev/null
Как исправить
Дайте агенту право чтения через группу конкретного файла, а не права на весь каталог. Полные права root агенту не нужны.
2. Изоляция unit-файла скрывает часть системы
Почему происходит
Параметры защиты процессов и каталогов прячут от агента то, что он должен видеть: процессы других служб, системные каталоги.
Как проверить
Посмотрите параметры изоляции.
systemctl show zabbix-agent2 -p ProtectProc -p ProtectSystem -p PrivateTmp -p ProcSubset 2>/dev/null
Как исправить
Ослабьте конкретный параметр, мешающий проверке, а не всю изоляцию. Чаще всего это видимость чужих процессов.
3. Проверка требует повышения прав
Почему происходит
Часть проверок без прав root не работает вовсе. Обычный путь — отдельные разрешения для конкретных команд.
Как проверить
Посмотрите, какие проверки отказывают.
sudo grep -rhE "^UserParameter" /etc/zabbix/ 2>/dev/null | head
journalctl -u zabbix-agent2 -n 20 --no-pager | grep -i denied
Как исправить
Разрешите агенту ровно одну нужную команду точным правилом без пароля. Общее разрешение на всё превращает агент в способ получить права root извне.

Пример вывода

Агент не может прочитать журнал чужой службы. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

zabbix_agent2[6900]: [log] cannot open file "/var/log/myapp/app.log": Permission denied
zabbix_agent2[6900]: item "log[/var/log/myapp/app.log]" became not supported: Permission denied

Связанные ошибки

  • Permission denied в журнале службы Отказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.
  • sudo: user is not in the sudoers file Скрипт службы не может выполнить команду через sudo: нет правила, требуется терминал или пароль.
  • Обычный пользователь не видит журнал службы journalctl показывает только свои записи: доступ к системному журналу даёт членство в группе.
  • Operation not permitted в журнале службы Операция запрещена: не хватает возможностей процесса, мешает seccomp или модуль безопасности. Отличие от Permission denied.
  • Read-only file system в журнале службы Служба не может писать: файловая система только для чтения. Разбор: параметры изоляции unit, монтирование ro, ошибки файловой системы.
  • status=209/STDOUT в systemd Код 209/STDOUT: systemd не смог настроить стандартный вывод службы. Чаще всего виноват путь в StandardOutput=append: или file:.
  • status=210/CHROOT в systemd Код 210/CHROOT: не удалось сменить корневой каталог из RootDirectory= или подключить образ RootImage=.
  • status=218/CAPABILITIES в systemd Код 218/CAPABILITIES: не удалось применить набор возможностей процесса из CapabilityBoundingSet= или AmbientCapabilities=.

Источники

  • systemd.exec(5)
    ProtectProc=, ProcSubset= и видимость системы для процессов службы.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено проверкой файла, недоступного пользователю агента.
    собственная проверка, systemd 255
    сверено 15 сентября 2026