Nagios Alert возвращает «NRPE: невозможно прочитать вывод» Команда: check_service! Httpd - PullRequest
0 голосов
/ 18 июня 2019

Я установил Nagios на Redhat со следующими конфигурациями:

/usr/local/nagios/etc/static/commands.cfg
define command {
       command_name                     check_service
       command_line                     $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_service -a $ARG1$
}

Когда я пытаюсь запустить его вручную:

if i try to use the following syntax, I get error:

/usr/local/nagios/libexec/check_nrpe -H 10.111.55.92 -c check_service -a check_http
NRPE: Unable to read output

не использует nope:

/usr/local/nagios/libexec/check_http -H 10.111.55.92
HTTP OK: HTTP/1.1 200 OK - 4298 bytes in 0.024 second response time |time=0.024462s;;;0.000000 size=4298B;;;0

Я постоянно получаю уведомления по электронной почте от Nagios:

HOST: Proxy (Dev) i-01aa24242424d7
IP: 10.111.55.92
Service: Apache Running
Service State: UNKNOWN
Attempts: 3/3
Duration: 0d 9h 28m 49s
Command: check_service!httpd
\More Details:
NRPE: Unable to read output

Не уверен, как я могу использовать nrpe с check_service для проверки http

Just. при запуске check_nrpe с check_http отображается версия установленного nope

/usr/local/nagios/libexec/check_nrpe -H 10.111.55.92 -a check_http
NRPE v3.2.1

/ USR / местные / Nagios / и т.д. / nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 10 -c 15
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_root_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 10 -c 15 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 500 -c 750
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 500 -c 750
command[check_ping]=/usr/local/nagios/libexec/check_ping $ARG1$
command[check_http]=/usr/local/nagios/libexec/check_http

# LINUX DEFAULT
command[check_service]=/bin/sudo -n /bin/systemctl status -l $ARG1$

# GLUSTER CHECKS
command[check_glusterdata]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /gluster

# GITLAB CHECKS
command[gitlab_ctl]=/bin/sudo -n /bin/gitlab-ctl status $ARG1$
command[gitlab_rake]=/bin/sudo -n /bin/gitlab-rake gitlab:check
command[check_gitlabdata]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /var/opt/gitlab

# OPENSHIFT CHECKS
command[check_openshift_pods]=/usr/local/nagios/libexec/check_pods

Файл: /usr/local/nagios/etc/nagios.cfg

cfg_dir=/usr/local/nagios/etc/static

1 Ответ

1 голос
/ 18 июня 2019

Вы, кажется, путаете два плагина. check_service просто проверит, работает ли служба локально. Попробуйте назвать это так:

/ usr / local / nagios / libexec / check_nrpe -H 10.111.55.92 -c check_service -a httpd

Я бы не стал использовать команду check_service, которая у вас там есть. Предоставление nrpe доступа для запуска systemctl с помощью sudo кажется мне опасным.

check_http - это http-клиент. На самом деле он подключится к серверу http и проверит заданный URI. Он может проверять коды состояния и делать все что угодно.

Похоже, что в вашем nrpe.cfg вы не указали аргументов для check_http. Он просто напечатает сообщение справки, если вы так его называете, я не думаю, что он проверит локальный компьютер.

Обратите внимание, что когда вы вызываете check_http выше вручную, вы указываете -H. То, что -H не передается автоматически, вам нужно предоставить аргументы для вашей команды check_http в nrpe.cfg.

Изменить строку:

Команда [check_http] = / USR / местные / Nagios / libexec / check_http

К чему-то вроде:

command [check_http] = / usr / local / nagios / libexec / check_http -H 127.0.0.1

И это должно работать лучше, если ваш http прослушивает localhost.

Вы, вероятно, не хотите вызывать check_http через nrpe, как это. Пусть ваш сервер nagios вызывает check_http на удаленном компьютере.

...