Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
Плагины Centreon Plugins не имеют собственной пакетной базы для Debian, поэтому получить содержимое интересующих нас скриптов мониторинга можно с помощью клонирования из репозитория github
Создадим на сервере мониторинга, например на сервере Icinga, отдельный каталог и с помощью утилиты git склонируем в этот каталог плагины centreon-plugins:
# apt-get install git -y # mkdir /usr/lib/nagios/plugins/centreon-plugins # cd /usr/lib/nagios/plugins/centreon-plugins/ # git clone --depth=1 https://github.com/centreon/centreon-plugins.git
Установим библиотеки Perl, необходимые для работы плагинов:
# apt-get install perl \ libsnmp-perl libxml-libxml-perl libxml-libxml-simple-perl libjson-perl libwww-perl \ libxml-xpath-perl libnet-telnet-perl libnet-ntp-perl libnet-dns-perl \ libdbi-perl libdbd-mysql-perl libdbd-pg-perl libdatetime-format-strptime-perl -y
В некоторых плагинах могут использоваться специфичные модули Perl, которых может не оказаться в виде готового deb пакета, который можно было бы установить из официальных репозиториев Debian. В таких случаях можно попробовать установить необходимый модуль через оболочку cpan. Например, для сборки и установки Perl-модуля Net::Curl::Easy потребуется выполнить следующее:
cpan
Net::Curl::Easy
# apt-get install dh-make-perl libcurl4-openssl-dev # dh-make-perl --install --cpan Net::Curl::Easy
Некоторые плагины, например плагины мониторинга сетевых интерфейсов, создают для работы временные кеш файлы. По умолчанию для этого используется каталог /var/lib/centreon/centplugins/. Изначально этого каталога не существует, поэтому нужно будет его создать и выдать права на запись пользователю, от имени которого работает главная служба Icinga
/var/lib/centreon/centplugins/
# mkdir -p /var/lib/centreon/centplugins/ # chown -R nagios:nagios /var/lib/centreon
Получим полный список плагинов, входящих в комплект Centreon Plugins:
# ./centreon_plugins.pl --list-plugin
Получим список плагинов, например, относящихся только к оборудованию APC:
# ./centreon_plugins.pl --list-plugin | grep -i apc | grep 'PLUGIN' PLUGIN: apps::apcupsd::local::plugin PLUGIN: apps::backup::netapp::snapcenter::restapi::plugin PLUGIN: apps::php::apc::web::plugin PLUGIN: hardware::ats::apc::snmp::plugin PLUGIN: hardware::pdu::apc::snmp::plugin PLUGIN: hardware::ups::apc::snmp::plugin
Получим справку по конкретному плагину, например hardware::ats::apc::snmp::plugin:
# ./centreon_plugins.pl --plugin=hardware::ats::apc::snmp::plugin --help Plugin Description: Check APC ATS in SNMP. Global Options: --mode Choose a mode. --dyn-mode Specify a mode with the path (separated by '::'). --list-mode List available modes. --mode-version Check minimal version of mode. If not, unknown error. --version Display plugin version. --pass-manager Use a password manager.
Получим перечень режимов работы конкретного плагина
# ./centreon_plugins.pl --plugin=hardware::ats::apc::snmp::plugin --list-mode ... Modes Meta: multi Modes Available: device-status input-lines output-lines
Получим справку по конкретному режиму плагина, например device-status:
# ./centreon_plugins.pl --plugin=hardware::ats::apc::snmp::plugin --mode=device-status --help Plugin Description: Check APC ATS in SNMP. Global Options: --mode Choose a mode. ... Output Options: --verbose Display long output. ... Snmp Options: --hostname Hostname to query (required). ... Mode: Check device status. --component Which component to check (Default: '.*'). Can be: 'entity'. --filter Exclude some parts (comma seperated list) (Example: --filter=entity) Can also exclude specific instance: --filter=entity,CommStatus --no-component Return an error if no compenents are checked. If total (with skipped) is 0. (Default: 'critical' returns). --threshold-overload Set to overload default threshold values (syntax: section,[instance,]status,regexp) It used before default thresholds (order stays). Example: --threshold-overload='entity,SourceBStatus,WARNING,fail'
Рассмотрим пример использования конкретного плагина hardware::ats::apc::snmp::plugin с режимом работы device-status.
# ./centreon_plugins.pl --plugin=hardware::ats::apc::snmp::plugin \ --mode=device-status --no-component \ --hostname='ATS01' --snmp-version='1' --snmp-community='public' --verbose CRITICAL: Entity 'PhaseSyncStatus' status is 'outOfSync' | 'count_entity'=14;;;; Checking entities entity '24VPowerSupply' status is 'atsPowerSupplyOK' [instance = 24VPowerSupply] entity '24VSourceBPowerSupply' status is 'atsPowerSupplyOK' [instance = 24VSourceB...] entity '5VPowerSupply' status is 'n/a' [instance = 5VPowerSupply] entity 'CommStatus' status is 'atsCommEstablished' [instance = CommStatus] entity 'HardwareStatus' status is 'ok' [instance = HardwareStatus] entity 'Minus12VPowerSupply' status is 'n/a' [instance = Minus12VPowerSupply] entity 'OverCurrentState' status is 'atsCurrentOK' [instance = OverCurrentState] entity 'PhaseSyncStatus' status is 'outOfSync' [instance = PhaseSyncStatus] entity 'Plus12VPowerSupply' status is 'n/a' [instance = Plus12VPowerSupply] entity 'RedundancyState' status is 'atsFullyRedundant' [instance = RedundancyState] entity 'SourceAStatus' status is 'ok' [instance = SourceAStatus] entity 'SourceBStatus' status is 'ok' [instance = SourceBStatus] entity 'SwitchStatus' status is 'ok' [instance = SwitchStatus] entity 'VoltageOutStatus' status is 'ok' [instance = VoltageOutStatus]
В выводе плагина можно отфильтровать (указать конкретные счётчики) или вовсе отключить (указать фейковый несуществующий счётчик) perfdata:
# ./centreon_plugins.pl --plugin=hardware::ats::apc::snmp::plugin --mode=device-status \ --hostname='ATS01' --snmp-version='1' --snmp-community='public' \ --no-component --filter-perfdata='dummy' CRITICAL: Entity 'PhaseSyncStatus' status is 'outOfSync' - Entity 'RedundancyState' status is 'atsRedundancyLost' - Entity 'SourceAStatus' status is 'fail' - Entity 'SwitchStatus' status is 'fail' |
Обновление плагина выполняем так же как и установку, с помощью git:
# cd /usr/lib/nagios/plugins/centreon-plugins/ # git fetch # git checkout origin/master
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 08.01.2020 14:59