문서
원본 보기1 서버
개요
Zabbix 서버는 Zabbix 소프트웨어의 중앙 프로세스입니다.
서버는 데이터의 폴링 및 트래핑을 수행하고, 트리거를 계산하며, 사용자에게 알림을 보냅니다. 이는 Zabbix 에이전트와 프록시가 시스템의 가용성과 무결성에 대한 데이터를 보고하는 중앙 구성 요소입니다. 서버는 간단한 서비스 검사를 사용하여 네트워크 서비스(웹 서버 및 메일 서버 등)를 스스로 원격으로 확인할 수 있습니다.
서버는 모든 구성, 통계 및 운영 데이터가 저장되는 중앙 저장소이며, 모니터링되는 시스템에서 문제가 발생했을 때 관리자에게 능동적으로 알림을 보내는 Zabbix의 개체입니다.
기본 Zabbix 서버의 기능은 3가지 구별되는 구성 요소로 나뉩니다. 이는 Zabbix 서버, 웹 프론트엔드, 그리고 데이터베이스 저장소입니다.
Zabbix의 모든 구성 정보는 데이터베이스에 저장되며, 서버와 웹 프론트엔드 모두 이 데이터베이스와 상호 작용합니다. 예를 들어, 웹 프론트엔드(또는 API)를 사용하여 새 아이템을 생성하면 데이터베이스의 items 테이블에 추가됩니다. 그런 다음 약 1분마다 Zabbix 서버가 items 테이블에서 활성 상태인 아이템 목록을 조회하여 Zabbix 서버 내의 캐시에 저장합니다. 이것이 Zabbix 프론트엔드에서 변경한 내용이 최신 데이터 섹션에 나타나는 데 최대 2분이 걸릴 수 있는 이유입니다.
서버 실행
패키지로 설치한 경우
Zabbix 서버는 데몬 프로세스로 실행됩니다. 서버는 다음 명령을 실행하여 시작할 수 있습니다:
systemctl start zabbix-server
이는 대부분의 GNU/Linux 시스템에서 작동합니다. 다른 시스템에서는 다음 명령을 실행해야 할 수도 있습니다:
/etc/init.d/zabbix-server start
마찬가지로, 중지/재시작/상태 확인을 위해서는 다음 명령을 사용하세요:
systemctl stop zabbix-server
systemctl restart zabbix-server
systemctl status zabbix-server
수동으로 시작하기
위의 방법이 작동하지 않으면 수동으로 시작해야 합니다.
zabbix_server 바이너리의 경로를 찾아서 다음을 실행하세요:
zabbix_server
Zabbix 서버에서 다음 명령줄 매개변수를 사용할 수 있습니다:
-c --config <file> 설정 파일 경로 (기본값은 /usr/local/etc/zabbix_server.conf)
-f --foreground Zabbix 서버를 포그라운드에서 실행 in foreground
-R --runtime-control <option> 관리 기능 수행 functions
-T --test-config 설정 파일 검증 후 종료 exit
-h --help 이 도움말 표시 help
-V --version 버전 번호 표시
명령줄 매개변수와 함께 Zabbix 서버를 실행하는 예제:
zabbix_server -c /usr/local/etc/zabbix_server.conf
zabbix_server --help
zabbix_server -V
런타임 제어
런타임 제어 옵션:
| 옵션 | 설명 | 대상 |
|---|---|---|
config_cache_reload |
설정 캐시를 다시 로드합니다. 캐시가 현재 로드 중인 경우 무시됩니다. | |
diaginfo[=<section>] |
서버 로그 파일에 진단 정보를 수집합니다. | historycache - 히스토리 캐시 통계;valuecache - 값 캐시 통계;preprocessing - 전처리 관리자 통계;alerting - 알림 관리자 통계;lld - LLD 관리자 통계;locks - 뮤텍스 목록 (BSD 시스템에서는 비어 있음);connector - 가장 큰 큐를 가진 커넥터의 통계. |
ha_status |
고가용성(HA) 클러스터 상태를 로깅합니다. | |
ha_remove_node=target |
이름 또는 ID로 지정된 고가용성(HA) 노드를 제거합니다. 활성/대기 노드는 제거할 수 없습니다. |
target - 노드의 이름 또는 ID (ha_status 실행으로 얻을 수 있음). |
ha_set_failover_delay=delay |
고가용성(HA) 장애 조치 지연을 설정합니다. 시간 접미사가 지원됩니다. 예: 10s, 1m. |
|
proxy_config_cache_reload[=<target>] |
프록시 설정 캐시를 다시 로드합니다. | target - 쉼표로 구분된 프록시 이름 목록. 대상이 지정되지 않으면 모든 프록시의 설정을 다시 로드합니다. |
secrets_reload |
Vault에서 시크릿을 다시 로드합니다. | |
service_cache_reload |
서비스 관리자 캐시를 다시 로드합니다. | |
snmp_cache_reload |
SNMP 캐시를 다시 로드합니다 — 모든 호스트의 SNMP 엔진 속성(엔진 시간, 엔진 부트, 엔진 ID, 자격 증명)을 지웁니다. SNMP 문제 해결 시 전역 캐시 지우기를 강제로 수행할 때 사용합니다. | |
housekeeper_execute |
하우스키핑 절차를 시작합니다. 하우스키핑 절차가 현재 진행 중인 경우 무시됩니다. |
|
trigger_housekeeper_execute |
트리거 하우스키핑 절차를 시작합니다. 트리거 하우스키핑 절차가 현재 진행 중인 경우 무시됩니다. 트리거 하우스키핑 절차가 시작되기 전까지는 이후 삭제된 트리거로 인한 문제가 여전히 서비스 문제를 생성하고 서비스에 할당할 수 있습니다. 자주 발견/발견 해제되는 트리거를 기반으로 한 많은 서비스 상태 계산 규칙이 포함된 설정에서는 ProblemHousekeepingFrequency 서버 설정 매개변수를 조정하여 하우스키핑 절차의 빈도를 높이는 것을 고려하십시오. |
|
log_level_increase[=<target>] |
로그 레벨을 증가시킵니다. 대상이 지정되지 않으면 모든 프로세스에 영향을 줍니다. BSD 시스템에서는 지원되지 않습니다. |
process type - 지정된 유형의 모든 프로세스 (예: poller).모든 서버 프로세스 유형을 참조하십시오. process type,N - 프로세스 유형 및 번호 (예: poller,3).pid - 프로세스 식별자 ( 1부터 65535까지). 더 큰 값의 경우 'process type,N'으로 대상을 지정하십시오. |
log_level_decrease[=<target>] |
로그 레벨을 감소시킵니다. 대상이 지정되지 않으면 모든 프로세스에 영향을 줍니다. BSD 시스템에서는 지원되지 않습니다. |
|
prof_enable[=<target>] |
프로파일링을 활성화합니다. 대상이 지정되지 않으면 모든 프로세스에 영향을 줍니다. 활성화된 프로파일링은 함수 이름별로 모든 rwlock/뮤텍스의 세부 정보를 제공합니다. |
process type - 지정된 유형의 모든 프로세스 (예: history syncer)프로파일링 대상으로 지원되는 프로세스 유형: alerter, alert manager, availability manager, configuration syncer, discovery manager, escalator, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, odbc poller, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, service manager, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector.process type,N - 프로세스 유형 및 번호 (예: history syncer,1).pid - 프로세스 식별자 ( 1부터 65535까지). 더 큰 값의 경우 'process type,N'으로 대상을 지정하십시오.scope - rwlock, mutex, processing은 프로세스 유형 및 번호 (예: history syncer,1,processing) 또는 해당 유형의 모든 프로세스 (예: history syncer,rwlock)와 함께 사용할 수 있습니다. |
prof_disable[=<target>] |
프로파일링을 비활성화합니다. 대상이 지정되지 않으면 모든 프로세스에 영향을 줍니다. |
process type - 지정된 유형의 모든 프로세스 (예: history syncer).프로파일링 대상으로 지원되는 프로세스 유형: prof_enable 참조.process type,N - 프로세스 유형 및 번호 (예: history syncer,1).pid - 프로세스 식별자 ( 1부터 65535까지). 더 큰 값의 경우 'process type,N'으로 대상을 지정하십시오. |
런타임 제어를 사용하여 서버 설정 캐시를 다시 로드하는 예시:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload
런타임 제어를 사용하여 프록시 설정을 다시 로드하는 예시:
# 모든 프록시의 설정 다시 로드:
zabbix_server -R proxy_config_cache_reload
# Proxy1과 Proxy2의 설정 다시 로드:
zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2
런타임 제어를 사용하여 진단 정보를 수집하는 예시:
# 서버 로그 파일에 사용 가능한 모든 진단 정보 수집:
zabbix_server -R diaginfo
# 서버 로그 파일에 히스토리 캐시 통계 수집:
zabbix_server -R diaginfo=historycache
런타임 제어를 사용하여 SNMP 캐시를 다시 로드하는 예시:
zabbix_server -R snmp_cache_reload
SNMPv3 인터페이스가 Zabbix UI를 통해 업데이트되면, Zabbix는 대부분의 경우 해당 인터페이스에 대한 새로운 SNMPv3 자격 증명을 자동으로 다시 로드합니다. 자격 증명 변경 후에도 폴링이 계속 실패하는 경우(예: engineBoots/engineID 불일치 또는 비RFC 장치로 인해) 또는 문제 해결을 위해 전역 SNMP 캐시 지우기를 강제로 수행해야 하는 경우에만 -R snmp_cache_reload를 사용하십시오.
런타임 제어를 사용하여 하우스키퍼 실행을 트리거하는 예시:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute
런타임 제어를 사용하여 로그 레벨을 변경하는 예시:
# 모든 프로세스의 로그 레벨 증가:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
# 두 번째 poller 프로세스의 로그 레벨 증가:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
# PID 1234 프로세스의 로그 레벨 증가:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
# 모든 http poller 프로세스의 로그 레벨 감소:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
HA 장애 조치 지연을 최소 10초로 설정하는 예시:
zabbix_server -R ha_set_failover_delay=10s
프로세스 사용자
Zabbix 서버는 non-root 사용자로 실행되도록 설계되었습니다. 시작된 non-root 사용자로 실행됩니다. 따라서 어떤 non-root 사용자로든 문제없이 서버를 실행할 수 있습니다.
'root'로 실행하려고 하면, 하드코딩된 'zabbix' 사용자로 전환되며, 이 사용자는 시스템에 존재해야 합니다. 서버 구성 파일의 'AllowRoot' 매개변수를 적절히 수정한 경우에만 'root'로 서버를 실행할 수 있습니다.
Zabbix 서버와 에이전트가 같은 머신에서 실행되는 경우, 서버 실행용과 에이전트 실행용으로 서로 다른 사용자를 사용하는 것이 권장됩니다. 그렇지 않으면, 둘 다 같은 사용자로 실행될 경우 에이전트가 서버 구성 파일에 접근할 수 있으며, Zabbix의 관리자 수준 사용자가 데이터베이스 비밀번호 등을 쉽게 검색할 수 있습니다.
설정 파일
zabbix_server 설정에 대한 자세한 내용은 설정 파일 옵션을 참조하세요.
시작 스크립트
이 스크립트들은 시스템의 시작/종료 시 Zabbix 프로세스를 자동으로 시작/정지하는 데 사용됩니다. 스크립트들은 misc/init.d 디렉터리 아래에 위치합니다.
서버 프로세스 유형 및 스레드
agent poller- 워커 스레드를 가진 패시브 체크용 비동기 폴러 프로세스;alert manager- 알림 큐 관리자;alert syncer- 알림 DB 라이터;alerter- 알림 발송 프로세스;availability manager- 호스트 가용성 업데이트 프로세스;browser poller- 브라우저 아이템 체크용 폴러;configuration syncer- 설정 데이터의 인메모리 캐시 관리 프로세스;configuration syncer worker- 아이템명의 사용자 매크로 값 해결 및 동기화 프로세스;connector manager- 커넥터 관리자 프로세스;connector worker- 커넥터 관리자의 요청 처리 프로세스;discovery manager- 장치 디스커버리 관리자 프로세스;discovery worker- 디스커버리 관리자의 디스커버리 작업 처리 프로세스;escalator- 액션 에스컬레이션 프로세스;ha manager- 고가용성 관리 프로세스;history poller- 데이터베이스 연결이 필요한 계산된 체크 처리 프로세스;history syncer- 히스토리 DB 라이터;housekeeper- 오래된 데이터(아이템 히스토리 및 트렌드, 사용자 세션, 이벤트 등) 및 삭제된 객체가 남긴 데이터 제거 프로세스;http agent poller- 워커 스레드를 가진 HTTP 체크용 비동기 폴러 프로세스;http poller- 웹 모니터링 폴러;icmp pinger- icmpping 체크용 폴러;internal poller- 내부 체크용 폴러;ipmi manager- IPMI 폴러 관리자;ipmi poller- IPMI 체크용 폴러;java poller- Java 체크용 폴러;lld manager- 로우레벨 디스커버리 작업 관리자 프로세스;lld worker- 로우레벨 디스커버리 작업 워커 프로세스;odbc poller- ODBC 체크용 폴러;poller- 패시브 체크용 일반 폴러;preprocessing manager- 전처리 워커 스레드를 가진 전처리 작업 관리자;preprocessing worker- 데이터 전처리용 스레드;proxy poller- 패시브 프록시용 폴러;proxy group manager- 프록시 로드 밸런싱 및 고가용성 관리자;report manager- 예약된 보고서 생성 작업 관리자;report writer- 예약된 보고서 생성 프로세스;self-monitoring- 내부 서버 통계 수집 프로세스;service manager- 히스토리 싱커, 작업 관리자, 알림 관리자로부터 문제, 문제 태그, 문제 복구 정보를 수신하여 서비스를 관리하는 프로세스;snmp poller- 워커 스레드를 가진 SNMP 체크용 비동기 폴러 프로세스 (walk[OID]및get[OID]아이템만);snmp trapper- SNMP 트랩용 트래퍼;task manager- 다른 구성요소가 요청한 작업의 원격 실행 프로세스 (예: 문제 닫기, 문제 승인, 지금 아이템 값 체크, 원격 명령 기능);timer- 유지보수 처리용 타이머;trapper- 액티브 체크, 트랩, 프록시 통신용 트래퍼;trigger housekeeper- 이후에 삭제된 트리거에 의해 생성된 문제 및 이벤트 제거 프로세스;unreachable poller- 접근 불가 장치용 폴러;vmware collector- VMware 서비스로부터 데이터 수집을 담당하는 VMware 데이터 수집기.
서버 로그 파일을 사용하여 이러한 프로세스 유형을 관찰할 수 있습니다.
Zabbix 7.0.22부터 서버 로그 파일은 파일 소유자만 읽기-쓰기 권한으로 생성됩니다. 또한 파일은 소유자 그룹이 읽을 수 있습니다. 다른 모든 권한은 거부됩니다.
다양한 유형의 Zabbix 서버 프로세스는 zabbix[process,<type>,<mode>,<state>] 내부 아이템을 사용하여 모니터링할 수 있습니다.
지원 플랫폼
보안 요구 사항과 서버 운영의 미션 크리티컬한 특성으로 인해, UNIX는 필요한 성능, 장애 허용성 및 복원력을 일관되게 제공할 수 있는 유일한 운영체제입니다. Zabbix는 시장을 선도하는 버전에서 작동합니다.
Zabbix 서버는 다음 플랫폼에서 테스트되었습니다:
- Linux
- Solaris
- AIX
- HP-UX
- Mac OS X
- FreeBSD
- OpenBSD
- NetBSD
- SCO Open Server
Zabbix는 다른 Unix 계열 운영체제에서도 작동할 수 있습니다.
로케일
일부 텍스트 항목이 올바르게 해석될 수 있도록 서버에는 UTF-8 로케일이 필요합니다. 대부분의 최신 Unix 계열 시스템은 UTF-8 로케일을 기본값으로 사용하지만, 특별히 설정해야 하는 시스템도 있습니다.