no need for discovery nor prototypes
enable local scripts on the agent
cd /etc/zabbix/ vi zabbix_agent2.conf AllowKey=system.run[/etc/zabbix/*]
write you custom check script
cd /etc/zabbix/ vi check_processes.bash
#!/bin/bash [[ ! -r /etc/zabbix/processes.list ]] && echo error: cannot read /etc/zabbix/processes.list && exit 1 for process in `grep --no-filename -vE '^#|^$' /etc/zabbix/processes.list /etc/zabbix/processes.local.list 2>/dev/null`; do echo -ne " process $process\t" pgrep $process >/dev/null && echo OK || echo NOK done; unset process
chmod +x check_processes.bash
data collection > templates template name check process groups templates/applications item name check process item type zabbix agent key system.run[/etc/zabbix/check_processes.bash] type text interval 1m trigger name check process trigger severity warning expression find(/check_processes/system.run[/etc/zabbix/check_processes.bash],,"regexp","NOK")<>0 find(/check public brute forces/system.run[check_attackers_public.bash],,"regexp","NOK")<>0
you are now good to apply the check_processes
templates to hosts
and add processes you want to monitor on every server
vi /etc/zabbix/processes.list sshd sshguard vmtoolsd vi /etc/zabbix/processes.local.list some-specific-daemon-name