나는 클라이언트에 설치했고 Nagios® Core™ 3.5.1
실행 중입니다.NRPE v2.14
RHEL 6.3
내 Nagios에 이 오류 메시지가 표시됩니다.
NRPE: Command 'check_mysql_connections' not defined
내에서는 nrpe.cfg
이미 다음을 설정했습니다 allowed_host, include_dir
.
allowed_hosts=xx.xx.xx.xx
dont_blame_nrpe=1
include_dir=/etc/nagios/services
내 명령은 켜져 있어/etc/nagios/services/check_mysql_connections.cfg
command[check_mysql_connections]=/usr/lib64/nagios/plugins/check_mysql_all -K connections -H myHOST -u myUSERNAME -p myPASSWORD
Nagios 서버에서 이미 파일을 설정 하고 다음과 같은 내용 을 nagios.cfg
추가합니다 .commands-custom.cfg
/etc/nagios/objects
define command {
command_name check_mysql_connections
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_mysql_connections
}
그리고 /etc/nagios/servers
나는mysql.cfg
## Define Host Group ##
define hostgroup {
hostgroup_name mysql-databases
alias MySQL Databases
}
#######################
## Define Hosts ##
define host {
use linux-server
host_name bdgbnbpmydb02
alias MySQL Database
address xx.xx.xx.xx
hostgroups mysql-databases
contact_groups admins
check_command check-host-alive
}
#######################
## Define Service ##
define service {
use generic-service
hostgroup_name mysql-databases
service_description MySQL Connections
check_command check_mysql_connections
}
이미 NRPE
프로세스를 종료하고 를 제거한 /var/run/nrpe.pid
후 NRPE 프로세스를 다시 시작합니다. 또한 내 NRPE는 xinet.d에서 실행되지 않습니다.
원격 호스트에서 로컬로 명령을 실행하려고 하면 결과가 나타납니다. 그리고 다음 명령을 사용하여 nagios 서버에서 실행하려고 하면:
/usr/lib64/nagios/plugins/check_nrpe -H xx.xx.xx.xx -c check_mysql_connections
그것은 또한 결과를 제공합니다. 다른 모든 명령이 정상적으로 실행되기 때문에 무엇이 잘못되었는지 모르겠습니다.
업데이트 및 해결
오랜 세월이 흐른 뒤에야 나는 이 문제를 해결하는 방법을 떠올렸습니다.
commands-custom.cfg
Nagios 서버 에서 사용자 정의 명령을 편집해야 하므로 /etc/nagios/objects
다음과 같습니다.
define command {
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
"서비스 정의" 아래에는 다음과 같습니다.
## Define Service ##
define service {
use generic-service
hostgroup_name mysql-databases
service_description MySQL Connections
check_command check_nrpe!check_mysql_connections
}
정리하자면, 서비스가 될 것인지 확인하는 명령어를 분리 check_nrpe
하고, 다음을 사용하여 커스텀 명령어를 호출해야 합니다.check_nrpe!check_mysql_connections
참조: https://support.nagios.com/forum/viewtopic.php?f=7&t=33448
답변1
한쪽 끝에서 시작하여 뒤로 돌아가십시오.
- "/usr/lib64/nagios/plugins/check_mysql_all -K Connections -H myHOST -u myUSERNAME -p myPASSWORD"가 명령줄에서 작동한다고 말씀하셨습니다.
- NRPE가 다른 명령을 사용하여 해당 서버에서 작동한다고 말씀하셨습니다.
- nagios 서버의 명령줄에서 명령이 실패했다고 말씀하셨습니다.
이는 문제가 NRPE 서버의 정의에 있음을 시사합니다. myHOST, myUSERNAME 또는 myPASSWORD에 대한 난독화된 변수에 NRPE에서 문자 그대로 해석되지 않는 문자가 포함될 수 있습니까? (이미 오타와 중복된 정의를 확인했다고 가정합니다!)
답변2
원격 클라이언트 디스크 검사를 추가하려면 다음 단계를 따르세요. mysql을 설정할 때도 이 단계를 따를 수 있습니다.
고객
vi /etc/nagios/nrpe.cfg
allowed_hosts=127.0.0.1,nagios_server_ip_here
dont_blame_nrpe=1
#checking root partion
command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 25% -c 20% -p /
섬기는 사람
파일에서 다음 /usr/local/nagios/etc/resource.cfg
과 같이 제공됩니다 $USER1$=/usr/local/nagios/libexec
.
따라서 터미널에서 다음 명령을 실행하십시오.
locate check_nrpe //find the location of check_nrpe
cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/
cd /usr/local/nagios/libexec/
chown nagios:nagios check_nrpe
파일을 편집합니다 /usr/local/nagios/etc/objects/commands.cfg
:
define command{
command_name check_disk
command_line $USER1$/check_nrpe -H '$HOSTADDRESS$' -t 30 -c check_disk
}
편집하다 /usr/local/nagios/etc/servers/clients.cfg
:
define service {
use generic-service
host_name BI Server
service_description Disk
check_command check_disk
notifications_enabled 1
}
서비스 다시 시작
/etc/init.d/nagios restart //server side
/etc/init.d/nagios-nrpe-server restart //client side
nagios 사용자로 터미널에서 명령을 확인할 수도 있습니다.
su - nagios
cd /usr/local/nagios/libexec/
./check_nrpe -H nagios_client_ip_here -t 30 -c check_mysql
./check_nrpe -H nagios_client_ip_here -t 30 -c check_disk
답변3
일반적으로 해당 플러그인에 권한 문제가 있는 것으로 의심됩니다. nagios(또는 nrpe) 사용자로 수동 테스트를 실행해야 합니다.
하지만 이 경우에는 NRPE 명령이 정의되지도 않았기 때문에 실행까지 도달하지도 못했다고 주장하고 있습니다.
NRPE 명령 def를 포함된 파일이 아닌 nrpe.cfg에 직접 넣으십시오. (그런 다음 NRPE를 다시 시작합니다.)
몇 년 전 비슷한 문제(그러나 EPEL의 NRPE 관련)가 있었던 것을 기억합니다. 어떤 이유로 nrpe.cfg에 다른 파일이 포함되지 않습니다. 하지만 포함 파일이 작동하지 않는 이유를 결코 파악하지 못했습니다.
답변4
저도 같은 증상이 있었어요. 그래서 아마도 이것은 다른 사람의 시간을 절약해 줄 것입니다. 내 문제는 포함 디렉터리의 파일에 .cfg 확장자가 없다는 것입니다.
내 포함 디렉토리는 다음과 같습니다.include_dir=/etc/nagios/nrpe.d
머신은 NRPE v2.15를 사용하여 참조용으로 Ubuntu 14.04를 실행하고 있습니다.