Zabbix Agent는 모니터링 대상 시스템에서 데이터를 수집해 Zabbix 서버로 전송하는 역할을 합니다.
이때 Agent와 Zabbix 서버 간의 통신 방식에는 Active Mode와 Passive Mode가 있고, 상황에 따라 모드를 선택하시면 됩니다.
Zabbix Agent의 통신 방식: Active Mode와 Passive Mode
모드 | Passive (Default) | Active |
통신 흐름 | 서버 → 에이전트 → 서버 | 에이전트 → 서버 |
설명 | Zabbix 서버가 에이전트에 접속해 데이터를 요청 | 에이전트가 주기적으로 데이터를 서버로 전송 |
장점 | 서버에서 통신 제어 가능, 실시간 데이터 요청 가능 | 서버 부하 감소, NAT/방화벽 환경에서 설정 간편 |
단점 | 대규모 환경에서 서버 부하가 커질 수 있음 방화벽 설정 복잡함 |
실시간 데이터 요청 어려움 데이터 수집 주기가 에이전트 설정에 의해 결정됨 |
1. Passive Mode (수동 모드)
Passive Mode는 Zabbix 서버가 주도적으로 에이전트에 데이터를 요청하는 방식입니다. 기본적으로 Zabbix Agent를 설치하면 Passive Mode가 활성화됩니다. 서버가 주기적으로 에이전트에 접속해 데이터를 요청하고, 에이전트는 해당 요청에 응답하여 데이터를 반환합니다.
- 장점: 서버가 실시간으로 데이터를 요청하고, 수집 주기를 제어할 수 있습니다.
특히 이벤트 발생 시 즉각적인 데이터 요청이 가능합니다. - 단점: 대규모 환경에서는 서버 부하가 커질 수 있으며, 서버가 각 에이전트에 접속하므로 방화벽 설정이 복잡할 수 있습니다.
2. Active Mode (능동 모드)
Active Mode는 에이전트가 주도적으로 데이터를 Zabbix 서버에 전송하는 방식입니다. 이 방식은 Zabbix 서버가 에이전트에 직접 접속할 수 없는 네트워크 구성(NAT나 클라우드 환경 등)에서 특히 유용합니다.
- 장점: 서버 부하가 줄어들며, 방화벽이나 NAT 환경에서도 설정이 간단합니다.
에이전트가 데이터를 능동적으로 전송하므로 서버는 직접 에이전트에 접속할 필요가 없습니다. - 단점: 실시간 데이터 요청이 어렵고, 데이터 수집 주기는 에이전트의 설정에 따라 고정됩니다.
호스트 자동 등록과 NAT/클라우드 환경에서의 문제 해결
Active Mode는 클라우드 환경이나 NAT 뒤에 있는 호스트를 모니터링할 때 매우 유용합니다. 그러나 NAT 또는 클라우드 환경에서 호스트가 자동 등록될 때, 사설 IP가 Zabbix 서버에 등록되는 문제가 발생할 수 있습니다.
이 경우 Zabbix 서버는 호스트의 사설 IP로 접속을 시도하지만 접속에 실패합니다.
설정 방법
- 호스트 자동 등록 설정
Configuration > Actions에서 "Autoregistration"를 선택하고 자동 등록 규칙을 설정합니다.
* HostMetadata에 linux가 있으면 호스트를 추가하고 Template OS Linux by Zabbix agent / TCP Port를 링크함 - Active Mode 설정
Zabbix 에이전트의 설정 파일(zabbix_agentd.conf)에서 ServerActive 항목에 Zabbix 서버의 주소를 설정하고, Hostname과 HostMetadata 항목을 추가하여 에이전트가 서버로 데이터를 능동적으로 전송할 수 있도록 합니다.
ServerActive=<Zabbix Server IP or Hostname> Hostname=<Unique Hostname> HostMetadata=<Autoregistration Metadata> ServerActive=172.16.34.65 Hostname=samso_active_test_server HostMetadata=linux
- Zabbix 에이전트 재시작
설정을 완료한 후 Zabbix 에이전트를 재시작하여 변경된 설정이 적용되도록 합니다.
# sudo systemctl restart zabbix-agent
이렇게 설정하고 Zabbix Agent를 실행하면 사설 IP로 서버에 등록되는 경우가 있음
ServerActive : 항목에 Zabbix 서버의 IP주소 또는 호스트 이름을 설정합니다.
Hostname : 항목에 고유한 호스트 이름을 설정합니다.
HostMetadata : 항목에 자동 등록 규칙과 일치하는 메타데이터 값을 설정합니다.
문제 해결: 호스트 인터페이스를 0.0.0.0으로 설정
호스트 인터페이스를 0.0.0.0으로 설정하여 Zabbix 서버가 호스트에 직접 접속하려 시도하지 않도록 해야 합니다.
이렇게 하면 에이전트가 능동적으로 서버에 데이터를 전송하고, Zabbix 서버는 그 데이터를 수신하게 됩니다.
- 인터페이스 수정 (0.0.0.0 설정)
Zabbix 서버가 사설 IP로 등록된 호스트에 접속하려 시도하지 않도록 하기 위해, 자동 등록된 호스트의 인터페이스를 0.0.0.0으로 변경합니다. 이를 통해 Zabbix 서버는 호스트에 접속하지 않고, 에이전트가 능동적으로 서버에 데이터를 전송하게 됩니다.
- Zabbix 웹 인터페이스에서 Configuration > Hosts로 이동한 후, 해당 호스트의 인터페이스를 0.0.0.0으로 변경합니다.
이후에 에이전트가 서버로 데이터를 전송하게 됨
- Zabbix 웹 인터페이스에서 Configuration > Hosts로 이동한 후, 해당 호스트의 인터페이스를 0.0.0.0으로 변경합니다.
- Zabbix 에이전트 재시작
설정을 완료한 후 Zabbix 에이전트를 재시작하여 변경된 설정이 적용되도록 합니다.
# sudo systemctl restart zabbix-agent
'Monitoring Tools' 카테고리의 다른 글
Monitoring Tools - Zabbix 프록시 설치 및 설정 방법 (0) | 2024.10.22 |
---|---|
Monitoring Tools - Zabbix 로그 파일 모니터링 설정 시 "Accessible only as active check" 에러 해결 방법 (0) | 2024.10.15 |
Monitoring Tools - Zabbix UserParameter를 이용한 금액 모니터링 (0) | 2024.10.03 |
Monitoring Tools - Zabbix MariaDB 모니터링 및 UserParameter 설정 (0) | 2024.09.29 |
Monitoring Tools - Zabbix Server 설치 매뉴얼 (0) | 2024.07.04 |