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가 실행 중인 호스트를 모니터링 대상으로 설정해 보겠습니다. ConfigurationHostsCreate Host로 이동합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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