이 글에서는 Zabbix에서 ICMP 핑(ping)을 이용해 네트워크 장비의 가용성을 모니터링하는 방법을 소개합니다. 원격 서버, 웹사이트 또는 네트워크 장비가 정상적으로 응답하는지 모니터링 서버에서 확인하고 싶을 때 가장 손쉽게 활용할 수 있는 에이전트리스(agentless) 모니터링 방식입니다. Zabbix는 대상 호스트에 ICMP 요청을 전송하고, 응답이 없거나 응답 시간이 지나치게 길거나 패킷 손실률이 높으면 대시보드에 경고를 표시합니다. ICMP 프로토콜은 주로 네트워크 호스트의 가용성 확인에 사용되며, ping이나 traceroute/tracert 같은 도구 역시 ICMP 기반으로 동작합니다.
Windows Server와 Linux에서 ICMP 핑 허용하기
기본적으로 Windows Server에서는 ICMP 핑이 허용되어 있지만, 어떤 이유로 비활성화되어 있다면 netsh 또는 PowerShell로 다시 켤 수 있습니다. 관리자 권한으로 명령 프롬프트를 실행한 후 아래 명령을 입력합니다.
netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8,any dir=in action=allow
동일한 작업을 PowerShell(내장 NetSecurity 모듈 사용)로 수행하려면 다음 명령을 사용합니다.
Set-NetFirewallRule -Name FPS-ICMP-ERQ-In -Enabled True -Profile Any -Action Allow
두 명령 모두 인바운드 ICMP echo 요청을 허용하는 방화벽 규칙을 생성합니다.
최신 Linux 배포판 역시 기본적으로 인바운드 ICMP 트래픽이 허용되어 있습니다. 만약 비활성화되어 있다면 root/sudo 권한으로 다음 iptables 규칙을 추가합니다.
# iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
# iptables -I OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
이렇게 하면 ICMP 요청을 허용하는 규칙이 iptables 체인의 맨 앞에 추가됩니다.
firewalld로 방화벽을 관리하고 있다면 다음과 같이 ICMP 핑 응답을 허용할 수 있습니다.
# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
Fping 설치 및 Zabbix 경로 설정
Zabbix는 ICMP 검사를 위해 fping 유틸리티를 사용합니다. 대부분의 Linux 배포판에는 기본 설치되어 있으므로, 먼저 운영체제에 존재하는지 확인하세요. Zabbix 서버에서 다음 명령을 실행합니다.
fping -v
해당 도구가 없다면 패키지 관리자로 설치합니다.
- Ubuntu:
apt install fping - CentOS: EPEL 저장소를 먼저 연결한 후 설치 —
yum install fping
fping은 기본적으로 /usr/bin/fping에 설치됩니다. 문제가 발생하면 해당 경로에 실행 파일이 있는지 확인하고, 다른 디렉터리에 있다면 zabbix_server.conf에서 아래 항목의 경로를 올바르게 수정하세요.
FpingLocation=/usr/bin/fping Fping6Location=/usr/bin/fping6
Zabbix의 ICMP Ping 템플릿
Zabbix에는 기본적으로 Template Module ICMP Ping 템플릿이 포함되어 있습니다(Zabbix 버전에 따라 이름이 다를 수 있습니다). 이 템플릿을 사용하면 ICMP 핑으로 네트워크 호스트를 모니터링할 수 있으며, 다음 세 가지 검사 항목을 제공합니다.
- ICMP ping – ICMP 기반 노드 가용성
- ICMP loss – 패킷 손실률(%)
- ICMP response time – ICMP 핑 응답 시간(밀리초)

Key 열을 보면 icmpping, icmppingloss, icmppingsec이라는 내장 키를 확인할 수 있습니다. 이들은 Simple check 유형으로, 수행 시 Zabbix Agent가 필요하지 않습니다.
에이전트 설치 없이 사용할 수 있는 Simple check의 전체 목록은 Zabbix 공식 문서(https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/simple_checks)에서 확인할 수 있습니다.
템플릿에는 위 키들의 값을 추적하는 세 개의 트리거가 포함되어 있습니다.

일부 트리거(예: High ICMP ping response time)는 템플릿 매크로를 사용하며, Macros 탭에서 매크로 값을 변경할 수 있습니다.
트리거가 발동되는 조건은 다음과 같습니다.
- 최근 5분간 패킷 손실률($ICMP_LOSS_WARN)이 20%를 초과하는 경우
- 응답 시간($ICMP_RESPONSE_TIME_WARN)이 최근 5분간 150ms를 초과하는 경우

Zabbix 호스트 생성 및 ICMP Ping 템플릿 연결
여기서는 Windows Server가 실행 중인 호스트를 모니터링 대상으로 설정해 보겠습니다. Configuration → Hosts → Create Host로 이동합니다.
호스트 이름을 입력하고 그룹을 선택한 뒤, Agent interfaces에 대상 호스트의 IP 주소를 입력합니다.

참고: Zabbix의 호스트 그룹은 호스트를 분류·정리하는 용도일 뿐, 모니터링 동작 자체에는 영향을 주지 않습니다.
Templates 탭을 열고 Select를 클릭한 후 Template Module ICMP Ping을 선택합니다.

템플릿 선택 창에서 Add를 클릭하고, 다시 Add를 눌러 호스트 생성을 완료합니다.

호스트에 연결된 모든 템플릿은 Templates 열에서 확인할 수 있습니다.

이제 모니터링이 정상 동작하는지 확인합니다. Monitoring → Latest data로 이동한 뒤 Hosts 옆의 Select를 클릭하고 방금 생성한 호스트를 선택합니다.
호스트에서 수집된 최신 데이터는 Last Value 열에 표시됩니다.

특정 값(예: ICMP 응답 시간)의 그래프도 확인할 수 있습니다. Graph 버튼을 클릭하세요.

문제가 발생하면 Zabbix 대시보드에 알림이 표시됩니다.

ICMP 핑은 네트워크 장비의 가용성을 확인하는 가장 기본적인 검사입니다. 더 많은 정보를 수집하고 싶다면 Zabbix Agent, SNMP 등 다른 프로토콜을 활용한 모니터링을 추가로 구성하면 됩니다.