에이전트
개요
Zabbix 에이전트는 모니터링 대상에 배포되어 로컬 리소스와 애플리케이션(하드 드라이브, 메모리, 프로세서 통계 등)을 능동적으로 모니터링합니다.
에이전트는 로컬에서 운영 정보를 수집하고 추가 처리를 위해 Zabbix 서버에 데이터를 보고합니다. 장애(예: 하드 디스크 공간 부족이나 서비스 프로세스 중단)가 발생하면 Zabbix 서버는 장애를 보고한 시스템의 관리자에게 즉시 알림을 보낼 수 있습니다.
Zabbix 에이전트는 통계 정보를 수집할 때 네이티브 시스템 호출을 사용하므로 매우 효율적입니다.
하나의 호스트에서 에이전트 인스턴스를 여러 개 실행할 수 있습니다.
패시브 및 액티브 검사
Zabbix 에이전트는 패시브 검사와 액티브 검사를 수행할 수 있습니다.
- 패시브 검사 - Zabbix 에이전트가 Zabbix 서버(또는 프록시)의 요청에 응답합니다. 예를 들어 서버가 데이터(예: CPU 부하)를 요청하면 에이전트가 결과를 반환합니다.
- 액티브 검사 - Zabbix 에이전트가 Zabbix 서버(또는 프록시)의 요청을 기다리지 않고 데이터를 수집하여 전송합니다. 먼저 서버에서 모니터링 항목 목록(CPU 부하, 사용 가능한 메모리 등)을 가져온 다음 필요한 데이터를 수집하고 새 값을 주기적으로 서버에 전송합니다.
에이전트 검사 유형은 해당 모니터링 아이템 유형을 선택하여 설정합니다. Zabbix 에이전트가 처리하는 아이템 유형은 다음과 같습니다: Zabbix 에이전트 또는 Zabbix 에이전트(액티브).
지원 플랫폼
지원 플랫폼은 다음 페이지를 참조하세요: 요구 사항.
Unix 계열 시스템의 에이전트
Unix 계열 시스템의 Zabbix 에이전트는 모니터링 대상 호스트에서 실행됩니다.
설치
Linux 기반 시스템에서는 다음 방법 중 하나로 Zabbix 에이전트를 설치할 수 있습니다.
- Zabbix 패키지 - Zabbix 버전, OS 배포판 및 OS 버전을 선택한 후 에이전트 구성 요소를 선택하고 제공된 지침을 따릅니다.
- Zabbix 소스 - 소스 파일을 다운로드하고 Zabbix 에이전트를 컴파일합니다. 소스 구성 시 사용할 옵션:
--enable-agent.
일반적으로 32비트 Zabbix 에이전트는 64비트 시스템에서 작동하지만, 경우에 따라 실패할 수 있습니다.
미리 컴파일된 Zabbix 에이전트 바이너리를 다운로드할 수 있는 플랫폼은 macOS, IBM AIX, FreeBSD, OpenBSD 및 Solaris입니다. 현재 Zabbix 서버/프록시 버전과 호환되는 레거시 바이너리가 제공되는 플랫폼은 NetBSD 및 HP-UX입니다.
패키지로 설치한 경우
Zabbix 에이전트는 데몬 프로세스로 실행됩니다. 다음 명령을 실행하여 에이전트를 시작할 수 있습니다.
systemctl start zabbix-agent
이 명령은 대부분의 GNU/Linux 시스템에서 작동합니다. 다른 시스템에서는 다음 명령을 실행해야 할 수 있습니다.
/etc/init.d/zabbix-agent start
Zabbix 에이전트를 중지하거나 다시 시작하거나 상태를 확인하려면 다음 명령을 사용하세요.
systemctl stop zabbix-agent
systemctl restart zabbix-agent
systemctl status zabbix-agent
수동 시작
Zabbix 에이전트를 시작하려면 zabbix_agentd 바이너리를 찾아 직접 실행하면 됩니다. 예:
zabbix_agentd
Windows 시스템의 에이전트
Windows의 Zabbix 에이전트는 Windows 서비스로 실행됩니다.
설치
Windows에서는 다음 방법 중 하나로 Zabbix 에이전트를 설치할 수 있습니다.
- 미리 컴파일된 Zabbix 에이전트 바이너리 - Zabbix 에이전트 MSI 설치 패키지를 다운로드하고 MSI로 Windows 에이전트 설치 페이지의 지침을 따릅니다.
- Zabbix 소스 - 소스 파일을 다운로드하고 Windows에서 Zabbix 에이전트 빌드 페이지의 지침을 따릅니다.
다음 Microsoft Windows의 Zabbix 에이전트 페이지에서 ZIP 아카이브를 사용하여 Zabbix 에이전트를 Windows 서비스로 설치하는 방법을 자세히 확인할 수 있습니다.
옵션
Zabbix 에이전트에서 사용할 수 있는 명령줄 매개변수는 다음과 같습니다.
| 매개변수 | 설명 |
|---|---|
| UNIX 및 Windows 에이전트 | < |
-c --config <config-file> |
다음 파일의 경로: 설정 파일. 이 옵션을 사용하여 기본 설정 파일이 아닌 다른 설정 파일을 지정할 수 있습니다. |
-f --foreground |
Zabbix 에이전트를 포그라운드에서 실행합니다(기본값: true). |
-p --print |
알려진 아이템을 출력하고 종료합니다. 사용자 매개변수 결과도 반환하려면 설정 파일을 지정해야 합니다(기본 위치에 없는 경우). |
-t --test <item key> |
지정한 아이템을 테스트하고 종료합니다. 사용자 매개변수 결과도 반환하려면 설정 파일을 지정해야 합니다(기본 위치에 없는 경우). |
-T --test-config |
설정 파일의 유효성을 검사하고 종료합니다. |
-h --help |
도움말 정보를 표시합니다. |
-V --version |
버전 번호를 표시합니다. |
| UNIX 에이전트 전용 | < |
-R --runtime-control <option> |
관리 기능을 수행합니다. 참조: 런타임 제어. |
| Windows 에이전트 전용 | < |
-m --multiple-agents |
여러 에이전트 인스턴스를 사용합니다(함께 사용할 옵션: -i, -d, -s, -x).인스턴스의 서비스 이름을 구분하기 위해 각 서비스 이름에 지정된 설정 파일의 Hostname 값이 포함됩니다. |
-S --startup-type <value> |
Zabbix Windows 에이전트 서비스의 시작 유형을 설정합니다. 허용되는 값:automatic - (기본값) Windows 시작 시 서비스를 자동으로 시작합니다.delayed - 자동으로 시작되는 서비스가 모두 시작된 후 이 서비스를 지연 시작합니다(Windows Server 2008/Vista 이상에서 사용 가능).manual - 사용자 또는 애플리케이션이 서비스를 수동으로 시작합니다.disabled - 서비스를 비활성화하여 사용자나 애플리케이션이 시작할 수 없게 합니다.이 옵션은 -i 옵션과 함께 사용하거나, 별도로 사용하여 이미 설치된 서비스의 시작 유형을 변경할 수 있습니다. |
-i --install |
Zabbix Windows 에이전트를 서비스로 설치합니다. |
-d --uninstall |
Zabbix Windows 에이전트 서비스를 제거합니다. |
-s --start |
Zabbix Windows 에이전트 서비스를 시작합니다. |
-x --stop |
Zabbix Windows 에이전트 서비스를 중지합니다. |
명령줄 매개변수의 구체적인 사용 예:
- 모든 내장 에이전트 아이템과 해당 값을 출력합니다.
- 지정한 설정 파일에 정의된
mysql.ping키의 사용자 매개변수를 테스트합니다. - 기본 설정 파일 경로를 사용하여 Windows용 Zabbix Agent 서비스를 설치합니다:
C:\\Program Files\\Zabbix Agent\\zabbix_agentd.conf. - Windows용 Zabbix Agent [Hostname] 서비스를 설치할 때 사용하는 설정 파일은
zabbix_agentd.conf이며, 에이전트 실행 파일과 같은 폴더에 있습니다. 설정 파일의 Hostname 값을 서비스 이름에 추가하여 이름을 고유하게 만듭니다. - 설치된 Windows용 Zabbix Agent 서비스의 시작 유형을 변경할 때 사용하는 설정 파일은
zabbix_agentd.conf이며, 에이전트 실행 파일과 같은 폴더에 있습니다.
zabbix_agentd --print
zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agentd.exe -i
zabbix_agentd.exe -i -m -c zabbix_agentd.conf
zabbix_agentd.exe -c zabbix_agentd.conf -S delayed
런타임 제어
런타임 제어 옵션으로 에이전트 프로세스의 로그 수준을 변경할 수 있습니다.
| 옵션 | 설명 | 대상 |
|---|---|---|
log_level_increase[=<target>] |
로그 수준을 높입니다. 대상을 지정하지 않으면 모든 프로세스에 적용됩니다. |
대상은 다음과 같이 지정할 수 있습니다. process type - 지정한 유형의 모든 프로세스(예: listener)전체 목록 참조: 에이전트 프로세스 유형. process type,N - 프로세스 유형과 번호(예: listener,3)pid - 프로세스 식별자( 1 ~ 65535). 더 큰 값은 대상을 'process type,N' 형식으로 지정하세요. |
log_level_decrease[=<target>] |
로그 수준을 낮춥니다. 대상을 지정하지 않으면 모든 프로세스에 적용됩니다. |
^ |
userparameter_reload |
현재 설정 파일에서 UserParameter 및 Include 옵션의 값을 다시 불러옵니다. |
예:
- 모든 프로세스의 로그 수준 높이기
- 세 번째 listener 프로세스의 로그 수준 높이기
- PID가 1234인 프로세스의 로그 수준 높이기
- 모든 액티브 검사 프로세스의 로그 수준 낮추기
zabbix_agentd -R log_level_increase
zabbix_agentd -R log_level_increase=listener,3
zabbix_agentd -R log_level_increase=1234
zabbix_agentd -R log_level_decrease="active checks"
OpenBSD, NetBSD 및 Windows에서는 런타임 제어를 지원하지 않습니다.
에이전트 프로세스 유형
에이전트 프로세스 유형은 다음과 같습니다.
active checks- 액티브 검사를 수행하는 프로세스collector- 데이터를 수집하는 프로세스listener- 패시브 검사 요청을 수신하는 프로세스
에이전트 로그 파일에서 이러한 프로세스 유형을 확인할 수 있습니다.
Zabbix 7.4.6부터 에이전트 로그 파일은 파일 소유자에게만 읽기 및 쓰기 권한을 부여하여 생성됩니다. 또한 소유 그룹에는 파일 읽기 권한이 부여됩니다. 그 외의 모든 권한은 거부됩니다.
프로세스 사용자
UNIX의 Zabbix 에이전트는 root가 아닌 사용자로 실행되도록 설계되었습니다. root가 아닌 사용자가 시작하면 해당 사용자로 실행됩니다. 따라서 root가 아닌 어떤 사용자로든 문제없이 에이전트를 실행할 수 있습니다.
'root'로 실행하려고 하면 하드코딩된 'zabbix' 사용자로 전환되며, 이 사용자는 시스템에 존재해야 합니다.
에이전트를 'root'로 실행하려면 에이전트 설정 파일에서 AllowRoot 매개변수를 그에 맞게 수정해야 합니다.
설정 파일
설정 파일의 기본 경로는 운영 체제와 Zabbix 설치 방법에 따라 다릅니다.
- UNIX의 기본 경로:
- 소스로 설치한 경우:
/usr/local/etc/zabbix_agentd.conf또는 다음 시점에 설정한 경로: 컴파일 시 설정):--sysconfdir또는--prefix. - 패키지로 설치한 경우:
/etc/zabbix/zabbix_agentd.conf.
- 소스로 설치한 경우:
- Windows의 기본 경로:
C:\Program Files\Zabbix Agent\zabbix_agentd.conf.
호스트에서 에이전트 인스턴스를 하나만 실행하는 경우, 기본 설정 파일이나 다음 위치에서 지정한 설정 파일을 사용할 수 있습니다: 명령줄. 여러 인스턴스를 실행하는 경우 각 에이전트 인스턴스에 자체 설정 파일이 있어야 합니다(인스턴스 하나는 기본 설정 파일을 사용할 수 있습니다).
Zabbix 에이전트 설정에 대한 자세한 내용은 다음 에이전트의 설정 파일 옵션을 참조하세요: Unix Zabbix 에이전트 또는 Windows Zabbix 에이전트.
로캘
일부 텍스트 기반 에이전트 아이템이 예상한 내용을 반환하려면 에이전트에 UTF-8 로캘이 필요합니다. 대부분의 최신 Unix 계열 시스템은 UTF-8 로캘을 기본으로 사용하지만, 일부 시스템에서는 별도로 설정해야 할 수 있습니다.
종료 코드
Zabbix 에이전트가 정상적으로 종료되면 0을 반환하고, 실패하면 1을 반환합니다.