К сожалению, я не думаю, что есть элегантный способ сделать это так, как вы хотели бы.Я всегда работал с Nagios, используя сервис-ориентированный подход, то есть я определяю мониторинг для одной службы или процесса, а затем связываю все хосты или группы хостов, которые используют этот процесс и нуждаются в мониторинге, даже если это один сервер.Для меня я нашел это как самый надежный, аккуратный и устойчивый способ.
Если вы можете позволить себе общее оповещение в случае сбоя какой-либо службы, вы можете подготовить собственную команду для проверки всех из них в одном отдельномСценарий, я не хотел бы видеть это в моей информационной панели.
Я знаю, что это то, чего вы хотите избежать, но, если бы я был вами, и учитывая, что у вас есть один сервер для мониторинга этих процессов,Я подготовил бы отдельный файл службы, что-то вроде:
#!/bin/bash
srvCfg = "/etc/nagios3/conf.d/host1procs.cfg" # I am using Nagios over Debian
server="host1"
processes=("process1.exe" "process2.exe")
srvGroup="customservicegroup"
for proc in "${processes[@]}"; do
echo "define service{" >> $srvCfg
echo " use generic-service" >> $srvCfg
echo " host_name $server" >> $srvCfg
echo " servicegroups $srvGroup" >> $srvCfg
echo " service_description Process monitoring for $proc" >> $srvCfg
echo " check_command check_nt!PROCSTATE!-d SHOWALL -l $proc" >> $srvCfg
echo "}" >> $srvCfg
done
Я предположил, что ваш пример - это просто пример, а имена процессов на самом деле не повторяются для создания списка.Этот сценарий приведет к созданию файла, подобного следующему:
define service{
use generic-service
host_name host1
servicegroups customservicegroup
service_description Process monitoring for process1.exe
check_command check_nt!PROCSTATE!-d SHOWALL -l process1.exe
}
define service{
use generic-service
host_name host1
servicegroups customservicegroup
service_description Process monitoring for process2.exe
check_command check_nt!PROCSTATE!-d SHOWALL -l process2.exe
}
Вам нужно будет определить группу сервисов, если вы хотите, чтобы все сервисы были в ней автоматически, если не убрать строку сервисных групп.
Я знаю, что это не тот ответ, который вы ищете, но надеюсь, что он поможет