문서
원본 보기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-like 시스템의 Agent 2
Unix-like 시스템의 Zabbix agent 2는 모니터링되는 호스트에서 실행됩니다.
설치
Zabbix agent 2는 다음 방법 중 하나를 사용하여 Linux 기반 시스템에 설치할 수 있습니다:
- Zabbix 패키지 - Agent 2 구성 요소를 선택하고(Zabbix 버전, OS 배포판, OS 버전을 선택한 후) 지침을 따르세요;
- Zabbix 소스 - 소스 파일을 다운로드하고
--enable-agent2옵션으로 구성하여 에이전트를 컴파일하세요.
Zabbix agent 2의 모니터링 기능은 별도로 제공되는 로드 가능한 플러그인으로 확장할 수 있습니다. 자세한 내용은 로드 가능한 플러그인을 참조하세요.
Zabbix 7.0.5부터 RHEL 6에 대한 Zabbix agent 2 패키지는 더 이상 제공되지 않습니다. 이는 Go 1.22(및 최신 버전)이 RHEL 6에서 제공하는 GCC 4.4.7과 호환되지 않아 컴파일 오류가 발생하기 때문입니다. 하지만 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 에이전트를 시작할 수 있습니다. 예를 들어:
zabbix_agent2
Windows 시스템의 Agent 2
Zabbix agent 2는 독립형 프로세스로 실행되지만, Windows 서비스로도 실행할 수 있습니다.
설치
Zabbix agent 2는 다음 방법 중 하나를 사용하여 Windows에 설치할 수 있습니다:
- 사전 컴파일된 Zabbix agent 바이너리 - agent MSI 설치 패키지를 다운로드하고 MSI를 통한 Windows agent 설치 페이지의 지침을 따르세요;
- Zabbix 소스 - 소스 파일을 다운로드하고 Windows에서 Zabbix agent 2 빌드하기 페이지의 지침을 따르세요.
Zabbix agent 2의 모니터링 기능은 별도로 제공되는 로드 가능한 플러그인으로 확장할 수 있습니다. 자세한 내용은 로드 가능한 플러그인을 참조하세요.
Zabbix agent 2를 (ZIP 아카이브에서) Windows 서비스로 설치하는 것에 대한 추가 세부 정보는 Microsoft Windows의 Zabbix agent 페이지를 참조하세요.
옵션
다음 명령줄 매개변수들을 Zabbix agent 2와 함께 사용할 수 있습니다:
| 매개변수 | 설명 |
|---|---|
| UNIX 및 Windows agent | |
-c --config <config-file> |
구성 파일 경로입니다. 기본값이 아닌 구성 파일을 지정하려면 이 옵션을 사용할 수 있습니다. |
-f --foreground |
Zabbix agent를 전경에서 실행합니다 (기본값: true). |
-p --print |
알려진 항목들을 출력하고 종료합니다. 사용자 매개변수 결과도 반환하려면 구성 파일을 지정해야 합니다 (기본 위치에 없는 경우). |
-t --test <item key> |
지정된 항목을 테스트하고 종료합니다. 사용자 매개변수 결과도 반환하려면 구성 파일을 지정해야 합니다 (기본 위치에 없는 경우). |
-T --test-config |
구성 파일을 검증하고 종료합니다. |
-h --help |
도움말 정보를 출력하고 종료합니다. |
-v --verbose |
디버깅 정보를 출력합니다. -p 및 -t 옵션과 함께 이 옵션을 사용하세요. |
-V --version |
agent 버전 및 라이선스 정보를 출력합니다. |
-R --runtime-control <option> |
관리 기능을 수행합니다. 런타임 제어를 참조하세요. |
| Windows agent 전용 | |
-m --multiple-agents |
여러 agent 인스턴스를 사용합니다 (-i, -d, -s, -x 옵션과 함께).인스턴스의 서비스 이름을 구별하기 위해 각 서비스 이름에는 지정된 구성 파일의 Hostname 값이 포함됩니다. |
-S --startup-type <value> |
Zabbix Windows agent 서비스의 시작 유형을 설정합니다. 허용되는 값:automatic - (기본값) Windows 시작 시 서비스를 자동으로 시작합니다;delayed - 자동으로 시작되는 서비스들이 시작을 완료한 후 서비스 시작을 지연합니다;manual - 서비스를 수동으로 시작합니다 (사용자나 애플리케이션에 의해);disabled - 서비스를 비활성화하여 사용자나 애플리케이션에 의해 시작될 수 없도록 합니다.이 옵션은 -i 옵션과 함께 사용하거나, 이미 설치된 서비스의 시작 유형을 수정하기 위해 별도로 사용할 수 있습니다. |
-i --install |
Zabbix Windows agent를 서비스로 설치합니다. |
-d --uninstall |
Zabbix Windows agent 서비스를 제거합니다. |
-s --start |
Zabbix Windows agent 서비스를 시작합니다. |
-x --stop |
Zabbix Windows agent 서비스를 중지합니다. |
명령줄 매개변수 사용의 구체적인 예시:
- 모든 내장 agent 항목을 값과 함께 출력합니다.
- 지정된 구성 파일에 정의된
mysql.ping키로 사용자 매개변수를 테스트합니다. - 기본 구성 파일 경로
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf를 사용하여 Windows용 Zabbix Agent 서비스를 설치합니다. - 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 (표준 출력)으로 출력을 작성합니다.
설정 파일
설정 파일의 기본 경로는 다음과 같습니다:
- UNIX에서는 기본값이
/usr/local/etc/zabbix_agent2.conf이거나 컴파일 시간 변수인--sysconfdir또는--prefix로 설정된 경로입니다. - Windows에서는 기본값이
C:\\Program Files\\Zabbix Agent 2\\zabbix_agent2.conf입니다.
호스트에서 에이전트의 단일 인스턴스가 실행되는 경우, 기본 설정 파일이나 명령줄에서 지정된 설정 파일을 사용할 수 있습니다. 여러 인스턴스의 경우, 각 에이전트 인스턴스는 자체 설정 파일을 가져야 합니다(인스턴스 중 하나는 기본 설정 파일을 사용할 수 있음).
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으로 종료됩니다.