У меня проблема с одним из моих зондов (плагинов) в Centreon.
На моем сервере опроса я запускаю эту команду:
/usr/bin/perl /usr/lib/nagios/plugins/centreon-plugins-master/centreon_plugins.pl --plugin=os::linux::snmp::plugin --mode=storage --hostname=XXX.XXX.XXX.XXX --warning-usage=80 --critical-usage=90 --snmp-version=2c --snmp-community=supervision --space-reservation=5 --verbose --explode-perfdata-max --name --regexp --storage='^(?!(/mnt.*)$)'
Работает отлично.
Когда я настраиваю свой зонд в консоли администратора Centreon и запускаю его, у меня появляется ошибка: (Выполнить команду не удалось)
/usr/bin/perl /usr/lib/nagios/plugins/centreon-plugins-master/centreon_plugins.pl
--plugin=os::linux::snmp::plugin
--mode=storage
--hostname=XXX.XXX.XXX.XXX
--warning-usage=80
--critical-usage=90
--snmp-version=2c
--snmp-community=supervision
--space-reservation=5
--verbose
--explode-perfdata-max
--name
--regexp
--storage='^(?!(/mnt.*)
Это не работает, потому что он удаляет последнюю простую цитату моего регулярного выражения. Я пытался поискать, как это решить, но ничего не нашел ..
Кто-нибудь может мне помочь? :)
Я нашел ответ на официальном Centreon Slack :)
Centreon Engine интерпретирует $, поэтому одно из решений это удвоить это, как это:
--name --regexp --storage='^(?!(/mnt.*)$$)'
В правильное решение использовать макросы. В шаблоне команд, который я использую, я добавляю что-то вроде этого: $_SERVICEEXCLUDEFS$
. Он появится, когда я создам сервис как это. Затем я могу использовать это для этого конкретного хоста (и без двойных $)