1. Для отслеживания кода завершения процесса в Zabbix можно использовать механизм пользовательских параметров (UserParameter). Для этого нужно выполнить следующие шаги:
- Создать пользовательский скрипт, который будет отслеживать код завершения процесса. Например, вы можете создать скрипт на языке bash, который будет запускать процесс и возвращать его код завершения. Пример:
```bash
#!/bin/bash
# script.sh
your_process
echo $?
```
- Передать код завершения процесса из скрипта в Zabbix с помощью пользовательского параметра. Для этого добавьте следующую строку в конфигурационный файл агента Zabbix (/etc/zabbix/zabbix_agentd.conf):
```text
UserParameter=process.exit.code,/path/to/script.sh
```
- Перезапустите агент Zabbix для применения изменений.
Теперь в Zabbix вы можете отслеживать код завершения процесса, используя ключ process.exit.code.
2. Значение переменной UserParameter в Zabbix может быть всегда равно 0, по нескольким причинам:
- Неправильное объявление пользовательского параметра. Убедитесь, что вы правильно указали команду или путь к скрипту, который возвращает результат.
- Неправильные права доступа к файлу скрипта. Убедитесь, что агент Zabbix имеет достаточные права для выполнения скрипта.
- Ошибки в самом скрипте. Проверьте, что скрипт работает корректно, а его результаты выводятся в стандартный вывод.
- Проблемы с SELinux или AppArmor. Если у вас используется SELinux или AppArmor, убедитесь, что агент Zabbix имеет доступ к файлу скрипта.
- Неправильные настройки параметров агента Zabbix. Проверьте файл конфигурации агента Zabbix, чтобы убедиться, что параметр EnableRemoteCommands установлен в 1 и параметр UnsafeUserParameters установлен в 1.
Проверьте эти возможные причины и, если необходимо, скорректируйте конфигурацию агента Zabbix, чтобы убедиться, что значение переменной UserParameter отображает результаты скрипта.