
명령에 대한 이중 정의가 없는지 확인하기 위해 nrpe 구성에 새 디버그 명령 이름을 만들었습니다.
/etc/nagios/nrpe.d # grep -R debug
debug.cfg:command[debug_check_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 5% -C -w 10000 -c 5000 -p /home -p /
nrpe 플러그인을 통해 실행하면 경고가 표시됩니다.
/usr/lib/nagios/plugins/check_nrpe -H 127.0.0.1 -c debug_check_disks
DISK WARNING - free space: / 3190413 MB (11% inode=99%); /dev 15889 MB (100% inode=99%); /dev/shm 15921 MB (100% inode=99%); /run 3183 MB (99% inode=99%); /run/lock 5 MB (100% inode=99%); /run/user/0 3184 MB (100% inode=99%); /sys/fs/cgroup 15921 MB (100% inode=99%); /boot 306 MB (66% inode=99%); /tmp 3190413 MB (11% inode=99%); /var/tmp 3190413 MB (11% inode=99%);| /=23828329MB;28436835;28441835;0;28446835 /dev=0MB;12711;15094;0;15889 /dev/shm=0MB;12736;15124;0;15921 /run=0MB;2547;3024;0;3184 /run/lock=0MB;4;4;0;5 /run/user/0=0MB;2547;3024;0;3184 /sys/fs/cgroup=0MB;12736;15124;0;15921 /boot=154MB;388;461;0;486 /tmp=23828329MB;22757468;27024493;0;28446835 /var/tmp=23828329MB;22757468;27024493;0;28446835
그러나 로컬에서 실행하면 OK라고 보고됩니다.
sudo -u nagios /usr/lib/nagios/plugins/check_disk -w 20% -c 5% -C -w 10000 -c 5000 -p /home -p /
DISK OK - free space: /dev 15889 MB (100% inode=99%); /run 3183 MB (99% inode=99%); / 3190413 MB (11% inode=99%); /dev/shm 15921 MB (100% inode=99%); /run/lock 5 MB (100% inode=99%); /sys/fs/cgroup 15921 MB (100% inode=99%); /boot 306 MB (66% inode=99%); /run/user/0 3184 MB (100% inode=99%);| /dev=0MB;12711;15094;0;15889 /run=0MB;2547;3024;0;3184 /=23828329MB;28436835;28441835;0;28446835 /dev/shm=0MB;12736;15124;0;15921 /run/lock=0MB;4;4;0;5 /sys/fs/cgroup=0MB;12736;15124;0;15921 /boot=154MB;388;461;0;486 /run/user/0=0MB;2547;3024;0;3184
nagios-nrpe-server는 사용자 nagios로 실행됩니다(기본값)
ps -ef | grep nagios
nagios 75200 1 0 16:39 ? 00:00:00 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f
root 75389 71365 0 16:45 pts/0 00:00:00 grep --color=auto nagios
왜 이런 불일치가 발생하는지 아시나요? 감사해요!
서버는 ubuntu 20.04.4를 실행 중이며 원래 ubuntu 16.06과 함께 설치되었으며 dist 업그레이드가 두 번 이루어졌습니다.
답변1
NRPE 서버는 tmp 디렉터리를 추가하는 PrivateTmp=true 옵션을 사용하여 systemd에서 실행되었습니다. -i 옵션을 사용하여 무시 목록에 /tmp 및 /var/tmp를 추가하여 문제를 해결했습니다. 또 다른 수정 방법은 systemd 서비스 파일에서 PrivateTmp를 비활성화하는 것입니다.