3 Agent 2
원본 보기3 Agent 2
개요
Zabbix agent 2는 Go로 작성된 차세대 Zabbix agent입니다(일부 C 코드는 Zabbix agent에서 재사용됨). 다음과 같이 설계되었습니다:
- TCP 연결 수를 줄입니다.
- 향상된 검사 동시성을 제공합니다.
- 플러그인으로 쉽게 확장 가능하며, 최소한의 코드로 간단한 검사를 제공하고 장기 실행 스크립트와 주기적 보고를 통한 독립적인 데이터 수집으로 구성된 복잡한 검사를 지원합니다.
- 모든 기존 기능을 지원하여 Zabbix agent의 대체재로 기능합니다.
Zabbix agent 2에서 지원하는 모든 메트릭은 플러그인에 의해 수집됩니다.
수동 및 능동 점검
Zabbix agent 2는 Zabbix agent와 유사하게 수동 및 능동 점검을 지원합니다. 추가적으로, Zabbix agent 2 능동 점검은 하나의 능동 서버 내에서 유연한/스케줄링 간격과 점검 동시성을 지원합니다.
기본적으로, 재시작 후 Zabbix agent 2는 리소스 사용량의 급증을 방지하기 위해 아이템의 업데이트 간격 내에서 조건부 무작위 시간에 능동 점검의 첫 번째 데이터 수집을 스케줄링합니다. 에이전트 재시작 직후
스케줄링 업데이트 간격이 없는 능동 점검을 수행하려면,
구성 파일에서 ForceActiveChecksOnStart 매개변수(전역 수준) 또는 Plugins.<Plugin name>.System.ForceActiveChecksOnStart(특정 플러그인 점검에만 영향)를
설정하세요. 플러그인 수준 매개변수가 설정된 경우 전역 매개변수를 재정의합니다.
검사 동시성
서로 다른 플러그인의 검사는 동시에 실행될 수 있습니다. 하나의 플러그인 내에서 동시 검사 수는 플러그인 용량 설정에 의해 제한됩니다. 각 플러그인은 하드코딩된 용량 설정(기본값 1000)을 가질 수 있으며, Plugins 구성 매개변수에서 Plugins.<PluginName>.System.Capacity=N 설정을 사용하여 이 값을 낮출 수 있습니다.
지원되는 플랫폼
지원되는 플랫폼에 대해서는 요구사항 페이지를 참조하세요.
UNIX 계열 시스템의 Agent 2
UNIX 계열 시스템의 Zabbix agent 2는 모니터링되는 호스트에서 실행됩니다.
설치
Zabbix agent 2는 다음 방법 중 하나를 사용하여 Linux 기반 시스템에 설치할 수 있습니다:
- Zabbix 패키지 - Agent 2 컴포넌트를 선택하고(Zabbix 버전, OS 배포판, OS 버전 선택 후) 지침을 따르세요.
- Zabbix 소스 - 소스 파일을 다운로드하고
--enable-agent2옵션으로 구성하여 에이전트를 컴파일하세요.
Zabbix agent 2의 모니터링 기능은 별도로 제공되는 로드 가능한 플러그인으로 확장할 수 있습니다. 자세한 내용은 로드 가능한 플러그인을 참조하세요.
Zabbix 7.0.5부터 Go 1.22(및 최신 버전)이 RHEL 6에서 제공하는 GCC 4.4.7과 호환되지 않아 컴파일 오류가 발생하므로, RHEL 6용 Zabbix agent 2 패키지는 더 이상 제공되지 않습니다. 그러나 Zabbix agent 패키지는 여전히 지원됩니다.
패키지로 설치한 경우
Zabbix agent 2는 포그라운드 프로세스로 실행되며 백그라운드 실행을 위해 외부 서비스 매니저(예: systemd)에 의존합니다; Zabbix agent 2는 Linux에서 내장된 데몬화 지원이 없습니다.
에이전트는 다음을 실행하여 시작할 수 있습니다:
systemctl start zabbix-agent2
Zabbix agent 2를 중지, 재시작 또는 상태를 확인하려면 다음 명령어를 사용하세요:
systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
수동으로 시작하기
zabbix_agent2 바이너리를 찾아서 직접 실행하여 Zabbix agent를 시작할 수 있습니다. 예를 들어:
zabbix_agent2
Windows 시스템의 Agent 2
Zabbix agent 2는 독립적인 프로세스로 실행됩니다. 하지만 Windows 서비스로도 실행할 수 있습니다.
설치
Zabbix agent 2는 다음 방법 중 하나를 사용하여 Windows에 설치할 수 있습니다:
- 사전 컴파일된 Zabbix agent 바이너리 - agent MSI 설치 패키지를 다운로드하고 Windows agent MSI 설치 페이지의 안내를 따르세요.
- Zabbix 소스 - 소스 파일을 다운로드하고 Windows에서 Zabbix agent 2 빌드하기 페이지의 안내를 따르세요.
Zabbix agent 2의 모니터링 기능은 별도로 제공되는 로드 가능한 플러그인으로 확장할 수 있습니다. 자세한 내용은 로드 가능한 플러그인을 참조하세요.
Zabbix agent 2를 (ZIP 아카이브에서) Windows 서비스로 설치하는 방법에 대한 추가 세부 정보는 Microsoft Windows의 Zabbix agent 페이지를 참조하세요.
옵션
Zabbix agent 2에서 다음 명령줄 매개변수를 사용할 수 있습니다:
| 매개변수 | 설명 |
|---|---|
| UNIX 및 Windows 에이전트 | |
| -c --config <config-file> | 구성 파일 경로. 이 옵션을 사용하여 기본값이 아닌 구성 파일을 지정할 수 있습니다. UNIX에서 기본값은 /usr/local/etc/zabbix_agent2.conf이거나 컴파일 시 변수 --sysconfdir 또는 --prefix로 설정된 경로입니다 Windows에서 기본값은 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf입니다 |
| -f --foreground | Zabbix 에이전트를 포그라운드에서 실행합니다 (기본값: true). |
| -p --print | 알려진 항목들을 출력하고 종료합니다. 참고: 사용자 매개변수 결과도 반환하려면 구성 파일을 지정해야 합니다 (기본 위치에 없는 경우). |
| -t --test <item key> | 지정된 항목을 테스트하고 종료합니다. 참고: 사용자 매개변수 결과도 반환하려면 구성 파일을 지정해야 합니다 (기본 위치에 없는 경우). |
| -T --test-config | 구성 파일을 검증하고 종료합니다. |
| -h --help | 도움말 정보를 출력하고 종료합니다. |
| -v --verbose | 디버깅 정보를 출력합니다. -p 및 -t 옵션과 함께 사용하세요. |
| -V --version | 에이전트 버전 및 라이선스 정보를 출력합니다. |
| -R --runtime-control <option> | 관리 기능을 수행합니다. 런타임 제어를 참조하세요. |
| Windows 에이전트 전용 | |
| -m --multiple-agents | 여러 에이전트 인스턴스를 사용합니다 (-i, -d, -s, -x 옵션과 함께). 인스턴스의 서비스 이름을 구별하기 위해 각 서비스 이름에는 지정된 구성 파일의 Hostname 값이 포함됩니다. |
| -S --startup-type <value> | Zabbix Windows 에이전트 서비스의 시작 유형을 설정합니다. 허용되는 값:automatic - (기본값) Windows 시작 시 서비스를 자동으로 시작delayed - 자동 시작 서비스들의 시작이 완료된 후 서비스 시작을 지연manual - 서비스를 수동으로 시작 (사용자 또는 애플리케이션에 의해)disabled - 서비스를 비활성화하여 사용자나 애플리케이션이 시작할 수 없도록 함이 옵션은 -i 옵션과 함께 사용하거나, 이미 설치된 서비스의 시작 유형을 수정하기 위해 별도로 사용할 수 있습니다. |
| -i --install | Zabbix Windows 에이전트를 서비스로 설치합니다. |
| -d --uninstall | Zabbix Windows 에이전트 서비스를 제거합니다. |
| -s --start | Zabbix Windows 에이전트 서비스를 시작합니다. |
| -x --stop | Zabbix Windows 에이전트 서비스를 중지합니다. |
명령줄 매개변수 사용의 구체적인 예시:
- 모든 내장 에이전트 항목과 값을 출력
- 지정된 구성 파일에 정의된 "mysql.ping" 키로 사용자 매개변수를 테스트
- 기본 구성 파일 경로 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf를 사용하여 Windows용 "Zabbix Agent" 서비스 설치
- 에이전트 실행 파일과 같은 폴더에 있는 구성 파일 zabbix_agent2.conf를 사용하여 설치된 Windows용 "Zabbix Agent" 서비스의 시작 유형 수정
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
런타임 제어
런타임 제어는 원격 제어를 위한 몇 가지 옵션을 제공합니다.
| 옵션 | 설명 |
|---|---|
| log_level_increase | 로그 레벨을 증가시킵니다. |
| log_level_decrease | 로그 레벨을 감소시킵니다. |
| metrics | 사용 가능한 메트릭을 나열합니다. |
| version | 에이전트 버전을 표시합니다. |
| userparameter_reload | 현재 설정 파일에서 UserParameter와 Include 옵션의 값을 다시 로드합니다. |
| help | 런타임 제어에 대한 도움말 정보를 표시합니다. |
예시:
- agent 2의 로그 레벨 증가
- 런타임 제어 옵션 출력
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
Zabbix 7.0.17부터 agent 2 런타임 제어 명령은 stderr (표준 오류) 대신 stdout (표준 출력)으로 출력을 기록합니다.
설정 파일
Zabbix agent 2의 설정 매개변수는 몇 가지 예외를 제외하고는 Zabbix agent의 매개변수와 대부분 일치합니다:
| 매개변수 | 설명 | |
|---|---|---|
| Zabbix agent 2 전용 설정 매개변수 | ||
| ControlSocket | 런타임 제어 소켓 경로입니다. Zabbix agent 2는 런타임 명령을 위해 제어 소켓을 사용합니다. | |
| EnablePersistentBuffer, PersistentBufferFile, PersistentBufferPeriod |
이 매개변수들은 Zabbix agent 2에서 액티브 아이템을 위한 영구 저장소를 설정하는 데 사용됩니다. | |
| ForceActiveChecksOnStart | 에이전트가 재시작 후 즉시 액티브 검사를 수행할지, 아니면 시간에 걸쳐 고르게 분산시킬지를 결정합니다. | |
| Plugins | 플러그인은 Plugins.<Plugin name>.<Parameter>=<value> 형식으로 고유한 매개변수를 가질 수 있습니다. 일반적인 플러그인 매개변수는 System.Capacity로, 동시에 실행할 수 있는 검사의 제한을 설정합니다. |
|
| StatusPort | Zabbix agent 2가 HTTP 상태 요청을 수신하고 설정된 플러그인 목록 및 일부 내부 매개변수를 표시하기 위해 수신 대기할 포트입니다. | |
| Zabbix agent 2에서 지원되지 않는 Zabbix agent 전용 설정 매개변수 | ||
| AllowRoot, User |
Zabbix agent 2는 데몬화를 지원하지 않기 때문에 지원되지 않습니다. | |
| EnableRemoteCommands | 더 이상 사용되지 않습니다. 대신 두 에이전트 모두에서 AllowKey와 DenyKey 매개변수가 사용됩니다. |
|
| ListenBacklog | Zabbix agent에서 TCP 큐의 최대 대기 연결 수를 정의하는 데 사용됩니다. Zabbix agent 2에서는 지원되지 않습니다. | |
| LoadModule, LoadModulePath |
로드 가능한 모듈은 Zabbix agent 2에서 지원되지 않습니다. | |
| MaxLinesPerSecond, LogRemoteCommands |
Zabbix agent 2에서는 대신 Plugins.Log.MaxLinesPerSecond와 Plugins.SystemRun.LogRemoteCommands가 사용됩니다. |
|
| StartAgents | 이 매개변수는 Zabbix agent에서 패시브 검사 동시성을 증가시키거나 비활성화하는 데 사용됩니다. Zabbix agent 2에서는 동시성이 플러그인 수준에서 설정되며 용량 설정으로 제한될 수 있습니다. Server 매개변수가 지정되지 않으면 Zabbix Agent 2에서 패시브 검사가 비활성화됩니다. |
|
자세한 내용은 Zabbix agent2의 설정 파일 옵션을 참조하세요.
종료 코드
Zabbix agent 2는 구 버전의 OpenSSL(1.0.1, 1.0.2)과도 컴파일할 수 있습니다.
이 경우 Zabbix는 OpenSSL에서 잠금을 위해 뮤텍스를 제공합니다. 뮤텍스 잠금 또는 잠금 해제가 실패하면 오류 메시지가 표준 오류 스트림(STDERR)에 출력되고 Agent 2는 각각 반환 코드 2 또는 3으로 종료됩니다.