getenforce

getenforce

방금 Chef를 통해 CentOS 7에 NRPE를 설치했습니다. 이것은 모든 CentOS 6 서버에 사용하는 것과 동일한 방법이며 거기에서도 작동합니다. NRPE가 시작되지만 여기에 오류가 있습니다.

Jun 13 15:12:21 myserver nrpe[3667]: Could not open config directory '/etc/nagios/nrpe.d' for reading.
Jun 13 15:12:21 myserver nrpe[3667]: Continuing with errors...

모든 서버 구성은 /etc/nagios/nrpe.d 아래에 있습니다. 내 CFG는 다음과 같습니다.

pid_file=/var/run/nrpe.pid
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
dont_blame_nrpe=0
debug=0
command_timeout=60
allowed_hosts=127.0.0.1,192.168.1.14
include_dir=/etc/nagios/nrpe.d

/etc/nagios/nrpe.d에 대한 권한은 다음과 같습니다.

# ls -atlr /etc/nagios/
-rwxrwxrwx.  1 nagios nagios  248 Jun 13 14:45 nrpe.cfg
drwxrwxrwx.  2 nagios nagios   89 Jun 13 14:51 nrpe.d

NRPE가 구성 디렉터리의 구성을 읽도록 하려면 어떻게 해야 합니까?

답변1

나는 같은 문제를 겪었습니다. 해결 방법은 아래 단계를 따르세요.

  1. 명령이나 명령을 사용하여 파일 의 권한을 확인한 /etc/nagios/nrpe.cfg다음 SELinux 상태를 확인하십시오 . "사용 안 함"으로 표시되면 문제가 없습니다. "허용"이 표시되면 문제가 없지만 "적용"이 표시되면 다음 단계를 수행하세요.sestatusgetenforce
  2. SELinux를 시행 모드로 설정해야 하는 경우 다음 명령을 사용하여 SELinux 정책 파일 컨텍스트를 확인하세요.

    # pwd
    /etc/nagios
    # ls -Z
    -rw-r--r--. root root system_u:object_r:nrpe_etc_t:s0  nrpe.cfg
    
  3. 파일 컨텍스트가 다른 경우 다음으로 변경하십시오.nrpe_etc_t다음 명령을 사용합니다.

    # semanage fcontext -a -t nrpe_etc_t "/etc/nagios/nrpe.cfg"
    # restorecon -R -v /etc/nagios/nrpe.cfg
    

CentOS 7에서도 동일하게 테스트했습니다.

답변2

nrpe.cfg에서 디버그를 켜고 서비스를 다시 시작하세요. "nrpe는 /etc/nagios/nrpe.d 구성 디렉터리를 읽을 수 없습니다."와 같은 오류 메시지가 표시됩니다. 이는 selinux가 문제를 일으켰음을 의미합니다.

selinux를 확인하고 끌 수 있습니다(보안 대화가 없는 경우).

getenforce

시행

강제 실행 0

getenforce

허용적

그런 다음 "service nrpe restart"를 사용하여 nrpe를 다시 시작하십시오. 이제 작동할 것입니다.

답변3

/etc/nagios 디렉토리의 권한과 소유권도 살펴보는 것이 좋습니다.

또한 nagios 사용자에게 su를 요청하고 디렉토리 트리 위로 이동(cd)을 시작하여 권한이 구분되는 위치를 식별할 수도 있습니다.

관련 정보