Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

이 글에서는 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 핑 응답 시간(밀리초)

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

Key 열을 보면 icmpping, icmppingloss, icmppingsec이라는 내장 키를 확인할 수 있습니다. 이들은 Simple check 유형으로, 수행 시 Zabbix Agent가 필요하지 않습니다.

에이전트 설치 없이 사용할 수 있는 Simple check의 전체 목록은 Zabbix 공식 문서(https://www.zabbix.com/documentation/current/manual/config/items/itemtypes/simple_checks)에서 확인할 수 있습니다.

템플릿에는 위 키들의 값을 추적하는 세 개의 트리거가 포함되어 있습니다.

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

일부 트리거(예: High ICMP ping response time)는 템플릿 매크로를 사용하며, Macros 탭에서 매크로 값을 변경할 수 있습니다.

트리거가 발동되는 조건은 다음과 같습니다.

  • 최근 5분간 패킷 손실률($ICMP_LOSS_WARN)이 20%를 초과하는 경우
  • 응답 시간($ICMP_RESPONSE_TIME_WARN)이 최근 5분간 150ms를 초과하는 경우

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

Zabbix 호스트 생성 및 ICMP Ping 템플릿 연결

여기서는 Windows Server가 실행 중인 호스트를 모니터링 대상으로 설정해 보겠습니다. Configuration → Hosts → Create Host로 이동합니다.

호스트 이름을 입력하고 그룹을 선택한 뒤, Agent interfaces에 대상 호스트의 IP 주소를 입력합니다.

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

참고: Zabbix의 호스트 그룹은 호스트를 분류·정리하는 용도일 뿐, 모니터링 동작 자체에는 영향을 주지 않습니다.

Templates 탭을 열고 Select를 클릭한 후 Template Module ICMP Ping을 선택합니다.

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

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

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

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

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

이제 모니터링이 정상 동작하는지 확인합니다. Monitoring → Latest data로 이동한 뒤 Hosts 옆의 Select를 클릭하고 방금 생성한 호스트를 선택합니다.

호스트에서 수집된 최신 데이터는 Last Value 열에 표시됩니다.

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

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

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

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

Zabbix로 구성하는 간단한 ICMP 핑 모니터링

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