Плагины 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 потребуется выполнить следующее:
# apt-get install dh-make-perl libcurl4-openssl-dev # dh-make-perl --install --cpan Net::Curl::Easy
Некоторые плагины, например плагины мониторинга сетевых интерфейсов, создают для работы временные кеш файлы. По умолчанию для этого используется каталог /var/lib/centreon/centplugins/. Изначально этого каталога не существует, поэтому нужно будет его создать и выдать права на запись пользователю, от имени которого работает главная служба Icinga
# 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
Проверено на следующих конфигурациях:
| Версия ОС | Версия Centreon Plugins |
|---|---|
| Debian 9 | 20191016 |
| Debian 10 | 20201008 |
| Debian 12 | 20230118 |
Автор первичной редакции:
Алексей Максимов
Время публикации: 08.01.2020 14:59