У меня возникла проблема с одним из моих зондов (плагинов) в 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.*)
Это не работает, потому что удаляет последнюю простую кавычку моего регулярного выражения. Я пытался найти, как это решить, но на самом деле ничего не нашел..
Кто-нибудь может мне помочь? :)
решение1
Я нашел ответ на официальном канале Centreon Slack :)
Centreon Engine интерпретирует $, поэтомуодно из решенийэто удвоить его вот так:
--name --regexp --storage='^(?!(/mnt.*)$$)'
Theправильное решениеиспользовать макросы. В шаблоне команд, который я использую, я добавляю что-то вроде этого: $_SERVICEEXCLUDEFS$
. Он появится, когда я создамтакой сервис. Тогда я могу использовать это для этого конкретного хоста (и без двойных $)