서버 1개
원본 보기1 서버
개요
Zabbix 서버는 Zabbix 소프트웨어의 중앙 프로세스입니다.
서버는 데이터의 폴링과 트래핑을 수행하고, 트리거를 계산하며, 사용자에게 알림을 전송합니다. 이는 Zabbix 에이전트와 프록시가 시스템의 가용성과 무결성에 대한 데이터를 보고하는 중앙 구성요소입니다. 서버는 간단한 서비스 검사를 사용하여 네트워크 서비스(웹 서버 및 메일 서버 등)를 자체적으로 원격 확인할 수 있습니다.
서버는 모든 구성, 통계 및 운영 데이터가 저장되는 중앙 저장소이며, 모니터링되는 시스템에 문제가 발생했을 때 관리자에게 적극적으로 알림을 보내는 Zabbix의 핵심 요소입니다.
기본 Zabbix 서버의 기능은 세 가지 구별되는 구성요소로 나누어집니다: 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 서버를 포그라운드에서 실행
-R --runtime-control <option> 관리 기능 수행
-T --test-config 설정 파일 유효성 검사 후 종료
-h --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>] | 프로파일링을 활성화합니다. 대상이 지정되지 않으면 모든 프로세스에 적용됩니다. 활성화된 프로파일링은 함수명별로 모든 rwlocks/mutexes의 세부 정보를 제공합니다. |
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
Zabbix UI를 통해 SNMPv3 인터페이스가 업데이트되면, Zabbix는 대부분의 경우 해당 인터페이스의 새로운 SNMPv3 자격 증명을 자동으로 다시 로드합니다. -R snmp_cache_reload는 자격 증명 변경 후에도 폴링이 여전히 실패하는 경우(예: engineBoots/engineID 불일치 또는 비 RFC 장치로 인해)나 문제 해결을 위해 전역 SNMP 캐시 삭제를 강제해야 할 때만 사용하세요.
런타임 제어를 사용하여 정리 프로그램 실행을 트리거하는 예제:
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 서버는 root가 아닌 사용자로 실행되도록 설계되었습니다. 시작할 때의 root가 아닌 사용자로 실행됩니다. 따라서 어떤 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 로케일을 기본값으로 사용하지만, 일부 시스템에서는 이를 별도로 설정해야 할 수도 있습니다.