fping과 zabbix에 관한 몇 가지 주제가 있다는 것을 알고 있지만 모두 읽어 보았지만 여전히 매우 간단한 작업을 수행할 수 없습니다.
호스트(zabbix 에이전트 실행)에서 외부 호스트로 간단한 ping 테스트를 수행하려고 합니다.
내 zabbix_agentd.conf 파일에서 다음과 같이 UserParameter를 설정했습니다.
UserParameter=vpnPing[*],fping $1 |grep -c alive
내 fping 권한은 다음과 같습니다.
# ls -l /sbin/fping
-rwsr-sr-x. 1 root zabbix 52904 Aug 5 2019 /sbin/fping
zabbix_agentd 테스트를 실행하면 (예제 목적으로 나열된 가짜 IP)
# zabbix_agentd -t vpnPing[123.456.78.901]
vpnPing[123.456.78.901] [t|1]
그래서 이것이 효과가 있는 것 같습니다.
zabbix UI로 이동하여 최신 데이터를 보면 다음과 같습니다.
2020-06-04 17:55:30 sh: /usr/sbin/fping: Permission denied
0
흥미로운 점은 맨 아래에 있는 0입니다. 저도 가끔 1로 본 적 있어요. 뭔가 작동하는 것 같은데 왜 내 허가가 거부되는지 이해가 되지 않습니다.
또한 감사 로그를 보면 다음과 같은 내용이 표시됩니다.
type=AVC msg=audit(1591330891.927:15933): avc: denied { execute } for pid=52320 comm="sh" name="fping" dev="nvme0n1p2" ino=8410299 scontext=system_u:system_r:zabbix_agent_t:s0 tcontext=system_u:object_r:ping_exec_t:s0 tclass=file permissive=0
type=SYSCALL msg=audit(1591330891.927:15933): arch=c000003e syscall=21 success=no exit=-13 a0=5601874ee450 a1=1 a2=7ffe62a48db0 a3=0 items=0 ppid=52319 pid=52320 auid=4294967295 uid=990 gid=988 euid=990 suid=990 fsuid=990 egid=988 sgid=988 fsgid=988 tty=(none) ses=4294967295 comm="sh" exe="/usr/bin/bash" subj=system_u:system_r:zabbix_agent_t:s0 key=(null)ARCH=x86_64 SYSCALL=access AUID="unset" UID="zabbix" GID="zabbix" EUID="zabbix" SUID="zabbix" FSUID="zabbix" EGID="zabbix" SGID="zabbix" FSGID="zabbix"
type=PROCTITLE msg=audit(1591330891.927:15933): proctitle=7368002D63006670696E67203136372E3134342E38392E323238207C67726570202D6320616C697665
저는 RHEL 8.2를 실행하고 있습니다.
# zabbix_agentd -V
zabbix_agentd (daemon) (Zabbix) 4.4.9
$ zabbix_server -V
zabbix_server (Zabbix) 4.4.9
# fping -v
fping: Version 3.16
Zabbix에서 프로젝트를 구성하여 다음을 입력했습니다. Zabbix Agent
내가 시도하면 :
zabbix_get -s [my_zabbix_server_ip] -k vpnPing[123.456.78.901]
시간이 초과되었습니다(정상적으로 ping할 수 있으므로 이유를 모르겠습니다): zabbix_get[30549]: 작업을 수행하는 동안 시간이 초과되었습니다.
그러나 검사가 zabbix 서버로 반환되는 것처럼 보이지만 권한이 거부되었다고만 표시되므로 zabbix_get의 마지막 부분이 관련이 있는지 확실하지 않습니다.
나는 이 문제로 한동안 어려움을 겪고 있는데 누군가가 나를 도울 수 있기를 바랐습니다.
답변1
의견에서 언급했듯이 문제는 RHEL8의 SElinux와 관련이 있을 가능성이 높습니다.
내 해결책은 sudo를 사용하여 SElinux를 우회하는 것이었습니다.
$ grep ^zabbix /etc/sudoers
zabbix ALL=NOPASSWD:/usr/sbin/hddtemp, /usr/sbin/smartctl, /usr/bin/fping
fping을 호출하려면 앞에 sudo를 추가하세요. smartctl
AMD도 마찬가지hddtemp