у меня есть мой сервер Linux для мониторинга с
NRPE Plugin for Nagios
Version: 3.2.1
и я установил на машине Windows NSClient++
с этим скриптом .bat.
set setupfile="NSCP-0.5.2.35-x64.msi"
msiexec /l install.log /i %setupfile% CONF_CAN_CHANGE="TRUE" ALLOWED_HOSTS="1.2.3.4/32,127.0.0.1/32" CONF_NRPE="TRUE" CONF_CHECKS="TRUE" CONF_NSCLIENT="FALSE" CONF_WEB="FALSE" CONF_NSCA="FALSE" /quiet
copy "nrpe_dh_2048.pem" "C:\Program Files\NSClient++\security\nrpe_dh_2048.pem"
cd "C:\Program Files\NSClient++"
nscp.exe settings --activate-module "NRPEServer" --add-defaults
nscp.exe settings --path "/modules" --key "CheckDisk" --set "enabled"
nscp.exe settings --path "/modules" --key "CheckSystem" --set "enabled"
nscp.exe settings --path "/settings/default" --key "bind to" --set ""
nscp.exe settings --path "/settings/NRPE/server" --key "ssl options" --set "no-sslv2,no-sslv3,no-tlsv1"
nscp.exe settings --path "/settings/NRPE/server" --key "dh" --set "${certificate-path}/nrpe_dh_2048.pem"
nscp.exe settings --path "/settings/NRPE/server" --key "allow arguments" --set "true"
nscp.exe settings --path "/settings/log" --key "level" --set "warning"
net stop nscp
net start nscp
моя команда выглядит так:
./check_nrpe --v2-packets-only -H 172.16.0.1 -p 5666 --unknown-timeout --command="Check_drivesize"
Как я могу фильтровать по диску C:
только? или изменить порог предупреждения / критического значения?
Примеры не сработали https://docs.nsclient.org/reference/windows/CheckDisk/#check_drivesize_samples
например.
./check_nrpe --v2-packets-only -H 172.16.0.1 -p 5666 --unknown-timeout --command="Check_drivesize" "crit=free<10%" "drive=c:"
Вывод:
OK All 3 drive(s) are ok|'C:\ used'=12.46093GB;15.54609;17.48935;0;19.43261 'C:\ used %'=64%;80;90;0;100 'A:\ used'=0B;0;0;0;0 'D:\ used'=0B;0;0;0;0
Чтобы ответить на исходный вопрос и мой вопрос выше.
Это необходимо установить в nsclient.ini.
[/settings/NRPE/server]
allow arguments = true
allow nasty characters = true
Теперь это работает.
D:\Program Files\NSClient>check_nrpe host=127.0.0.1 port=15666 certificate=security/ca.pem verify=peer-cert allowed-ciph
ers=ALL command=check_drivesize argument="critical=free < 10%" argument="drive=c:"
OK All 1 drive(s) are ok|'c: free'=25.15175GB;0;4.99969;0;49.99706 'c: free %'=50%;0;10;0;100 'c: used'=24.84531GB;39.99
765;0;0;49.99706 'c: used %'=50%;80;0;0;100
Я думаю, что с помощью check_nrpe вам нужно передавать аргументы с параметрами -a:
-a, --args = LIST Необязательные аргументы, которые должны быть переданы команде, разделенные пробелом. Если предоставляется, это должен быть последний параметр в командной строке.
в вашем файле nrpe.cfg: command [xxx] = / usr / lib / nagios / plugins / xxx.sh "$ ARG1 $" "$ ARG2 $" "$ ARG3 $"