1 고가용성
원본 보기1 고가용성
개요
고가용성(HA)은 일반적으로 거의 다운타임을 감당할 수 없는 중요한 인프라에서 필요합니다. 따라서 실패할 수 있는 모든 서비스에 대해 현재 서비스가 실패할 경우 인계받을 수 있는 장애 조치 옵션이 준비되어 있어야 합니다.
Zabbix는 설정이 쉽고 사전 HA 전문 지식이 필요하지 않은 네이티브 고가용성 솔루션을 제공합니다. 네이티브 Zabbix HA는 Zabbix 서버의 소프트웨어/하드웨어 장애에 대한 추가 보호 계층이나 유지보수로 인한 다운타임을 줄이는 데 유용할 수 있습니다.
Zabbix 고가용성 모드에서는 여러 Zabbix 서버가 클러스터의 노드로 실행됩니다. 클러스터의 한 Zabbix 서버가 활성 상태인 동안, 다른 서버들은 대기 상태로 필요시 인계받을 준비가 되어 있습니다.

Zabbix HA로 전환하는 것은 구속적이지 않습니다. 언제든지 독립 실행 방식으로 되돌릴 수 있습니다.
참고: 구현 세부사항
고가용성 활성화
클러스터 노드로 Zabbix 서버 시작하기
Zabbix 서버를 클러스터 노드로 시작하려면 서버 구성에서 두 가지 매개변수가 필요합니다:
- HANodeName 매개변수는 HA 클러스터 노드가 될 각 Zabbix 서버에 지정되어야 합니다.
이것은 에이전트와 프록시 구성에서 서버가 참조될 고유한 노드 식별자(예: zabbix-node-01)입니다.
HANodeName을 지정하지 않으면 서버는 독립 실행형 모드로 시작됩니다.
- NodeAddress 매개변수는 각 노드에 지정되어야 합니다.
NodeAddress 매개변수(address:port)는 Zabbix 프론트엔드가 활성 서버 노드에 연결하는 데 사용됩니다. NodeAddress는 해당 Zabbix 서버의 IP 또는 FQDN 이름과 일치해야 합니다.
구성 파일을 변경한 후 모든 Zabbix 서버를 재시작하십시오. 이제 클러스터 노드로 시작됩니다. 서버의 새로운 상태는 Reports → System information에서 확인할 수 있고, 다음을 실행해서도 확인할 수 있습니다:
zabbix_server -R ha_status
이 런타임 명령은 현재 HA 클러스터 상태를 Zabbix 서버 로그(및 stdout)에 기록합니다:

프론트엔드 준비
Zabbix 서버 주소:포트가 프론트엔드 구성에서 정의되지 않도록 해야 합니다
(프론트엔드 파일 디렉터리의 conf/zabbix.conf.php에서 찾을 수 있음).

Zabbix 프론트엔드는 Zabbix 데이터베이스의 노드 테이블에서 설정을 읽어 활성 노드를 자동 감지합니다. 활성 노드의 노드 주소가 Zabbix 서버 주소로 사용됩니다.
프록시 구성
HA 클러스터 노드(서버)는 수동 또는 능동 Zabbix 프록시의 구성에 나열되어야 합니다.
수동 프록시의 경우, 노드 이름들은 프록시의 Server 매개변수에 쉼표로 구분하여 나열되어야 합니다.
Server=zabbix-node-01,zabbix-node-02
능동 프록시의 경우, 노드 이름들은 프록시의 Server 매개변수에 세미콜론으로 구분하여 나열되어야 합니다.
Server=zabbix-node-01;zabbix-node-02
에이전트 구성
HA 클러스터 노드(서버)는 Zabbix 에이전트 또는 Zabbix 에이전트 2의 구성에 나열되어야 합니다.

패시브 체크를 활성화하려면 Server 매개변수에 노드 이름을 쉼표로 구분하여 나열해야 합니다.
Server=zabbix-node-01,zabbix-node-02
액티브 체크를 활성화하려면 ServerActive 매개변수에 노드 이름을 나열해야 합니다. 액티브 체크의 경우 노드들은 다른 서버들과는 쉼표로 구분되어야 하며, 노드들 간에는 세미콜론으로 구분되어야 합니다. 예:
ServerActive=zabbix-node-01;zabbix-node-02
대기 노드로 장애 조치
활성 노드가 중지되면 Zabbix는 자동으로 다른 노드로 장애 조치됩니다. 장애 조치가 발생하려면 대기 상태의 노드가 최소 하나 이상 있어야 합니다.
장애 조치는 얼마나 빠를까요? 모든 노드는 5초마다 마지막 접근 시간(및 변경된 경우 상태)을 업데이트합니다. 따라서:
-
활성 노드가 종료되고 상태를 "중지됨"으로 보고할 수 있다면, 다른 노드가 5초 이내에 인수합니다.
-
활성 노드가 상태를 업데이트할 수 없이 종료되거나 사용할 수 없게 되면, 대기 노드들은 장애 조치 지연 + 5초를 기다린 후 인수합니다
장애 조치 지연은 구성 가능하며, 10초에서 15분(기본값 1분) 범위에서 지원됩니다. 장애 조치 지연을 변경하려면 다음을 실행할 수 있습니다:
zabbix_server -R ha_set_failover_delay=5m
HA 클러스터 관리
HA 클러스터의 현재 상태는 전용 런타임 제어 옵션을 사용하여 관리할 수 있습니다:
ha_status- Zabbix 서버 로그(및 stdout)에 HA 클러스터 상태를 기록합니다ha_remove_node=target- <target>으로 식별되는 HA 노드를 제거합니다 - 노드의 이름 또는 ID(이름/ID는 ha_status 실행 출력에서 얻을 수 있습니다), 예:
zabbix_server -R ha_remove_node=zabbix-node-02
활성/대기 노드는 제거할 수 없습니다.
ha_set_failover_delay=delay- HA 장애조치 지연 시간을 설정합니다(10초에서 15분 사이; 시간 접미사를 지원합니다, 예: 10s, 1m)
노드 상태를 모니터링할 수 있습니다:
- 보고서 → 시스템 정보에서
- 시스템 정보 대시보드 위젯에서
- 서버의
ha_status런타임 제어 옵션을 사용하여(위 참조)
zabbix[cluster,discovery,nodes] 내부 아이템은 고가용성 노드 정보가 포함된 JSON을 반환하므로 노드 검색에 사용할 수 있습니다.
HA 클러스터 비활성화
고가용성 클러스터를 비활성화하려면:
- 구성 파일의 백업 사본을 만드세요
- 대기 노드를 중지하세요
- 활성 주 서버에서 HANodeName 매개변수를 제거하세요
- 주 서버를 재시작하세요 (독립 실행 모드로 시작됩니다)
HA 클러스터 업그레이드
HA 노드의 주요 버전 업그레이드를 수행하려면:
- 모든 노드를 중지하세요;
- 전체 데이터베이스 백업을 생성하세요;
- 데이터베이스가 복제를 사용하는 경우 모든 노드가 동기화되어 있고 문제가 없는지 확인하세요. 복제가 손상된 경우 업그레이드를 진행하지 마세요.
- 데이터베이스 업그레이드를 수행할 단일 노드를 선택하고, HANodeName을 주석 처리하여 독립 실행 모드로 구성을 변경한 후 업그레이드하세요;
- 데이터베이스 업그레이드가 완전히 완료되었는지 확인하세요(시스템 정보에서 Zabbix 서버가 실행 중임을 표시해야 합니다);
- 노드를 HA 모드로 재시작하세요;
- 나머지 노드들을 업그레이드하고 시작하세요(이 시점에서 데이터베이스가 이미 업그레이드되었으므로 독립 실행 모드로 변경할 필요가 없습니다).
마이너 버전 업그레이드의 경우 첫 번째 노드를 업그레이드하고 업그레이드가 완료되고 실행 중인지 확인한 후 다음 노드에서 업그레이드를 시작하는 것으로 충분합니다.
구현 세부사항
고가용성(HA) 클러스터는 선택적 솔루션이며 Zabbix 서버에서 지원됩니다. 네이티브 HA 솔루션은 사용하기 쉽도록 설계되었으며, 사이트 간에 작동하고 Zabbix가 인식하는 데이터베이스에 대한 특별한 요구 사항이 없습니다. 사용자는 환경의 고가용성 요구 사항에 가장 적합한 것에 따라 네이티브 Zabbix HA 솔루션 또는 타사 HA 솔루션을 자유롭게 사용할 수 있습니다.
이 솔루션은 여러 zabbix_server 인스턴스 또는 노드로 구성됩니다. 각 노드는:
- 개별적으로 구성됩니다
- 동일한 데이터베이스를 사용합니다
- 여러 모드를 가질 수 있습니다: 활성, 대기, 사용 불가, 중지
한 번에 하나의 노드만 활성(작동) 상태가 될 수 있습니다. 대기 노드는 HA 매니저라는 하나의 프로세스만 실행합니다. 대기 노드는 데이터 수집, 처리 또는 기타 일반적인 서버 활동을 수행하지 않으며, 포트를 수신하지 않고, 최소한의 데이터베이스 연결을 가집니다.
활성 및 대기 노드 모두 5초마다 마지막 접근 시간을 업데이트합니다. 각 대기 노드는 활성 노드의 마지막 접근 시간을 모니터링합니다. 활성 노드의 마지막 접근 시간이 '장애 조치 지연' 시간을 초과하면, 대기 노드는 자신을 활성 노드로 전환하고 이전에 활성이었던 노드에 '사용 불가' 상태를 할당합니다.
활성 노드는 자체 데이터베이스 연결을 모니터링합니다. 연결이 failover delay-5초 이상 손실되면 모든 처리를 중단하고 대기 모드로 전환해야 합니다. 활성 노드는 또한 대기 노드의 상태를 모니터링합니다. 대기 노드의 마지막 접근 시간이 '장애 조치 지연' 시간을 초과하면 해당 대기 노드에 '사용 불가' 상태가 할당됩니다.
노드들은 Zabbix 마이너 버전 간에 호환되도록 설계되었습니다.