Zabbix 에이전트
원본 보기1 Zabbix 에이전트
개요
이 섹션에서는 데이터 수집을 위해 Zabbix 에이전트와 통신하는 아이템 키를 자세히 설명합니다.
에이전트 검사는 수동 및 활성 방식이 있습니다. 아이템을 구성할 때 필요한 유형을 선택할 수 있습니다.
- Zabbix agent - 수동 검사
- Zabbix agent (active) - 활성 검사
Zabbix 에이전트가 지원하는 모든 아이템 키는 차세대 Zabbix agent 2에서도 지원됩니다. agent 2에서만 사용할 수 있는 추가 아이템 키를 참조하세요.
지원되는 아이템 키
Zabbix 에이전트에서 사용할 수 있는 아이템 키는 아래와 같습니다.
아이템 키는 매개변수와 추가 정보 없이 나열되어 있습니다. 전체 세부 정보를 보려면 아이템 키를 클릭하세요.
| 아이템 키 | 설명 | 아이템 그룹 |
|---|---|---|
| kernel.maxfiles | OS에서 지원하는 열린 파일의 최대 개수입니다. | 커널 |
| kernel.maxproc | OS에서 지원하는 프로세스의 최대 개수입니다. | |
| kernel.openfiles | 현재 열려 있는 파일 디스크립터의 개수입니다. | |
| log | 로그 파일을 모니터링합니다. | 로그 모니터링 |
| log.count | 모니터링 중인 로그 파일에서 일치하는 줄의 개수입니다. | |
| logrt | 로테이션되는 로그 파일을 모니터링합니다. | |
| logrt.count | 로테이션되는 모니터링 대상 로그 파일에서 일치하는 줄의 개수입니다. | |
| modbus.get | Modbus 데이터를 읽습니다. | Modbus |
| net.dns | DNS 서비스의 상태를 확인합니다. | 네트워크 |
| net.dns.perf | DNS 서비스의 성능을 확인합니다. | |
| net.dns.record | DNS 쿼리를 수행합니다. | |
| net.if.collisions | 윈도우 범위를 벗어난 충돌의 개수입니다. | |
| net.if.discovery | 네트워크 인터페이스 목록입니다. | |
| net.if.in | 네트워크 인터페이스의 수신 트래픽 통계입니다. | |
| net.if.out | 네트워크 인터페이스의 송신 트래픽 통계입니다. | |
| net.if.total | 네트워크 인터페이스의 수신 및 송신 트래픽 통계 합계입니다. | |
| net.tcp.listen | 이 TCP 포트가 LISTEN 상태인지 확인합니다. | |
| net.tcp.port | 지정된 포트에 TCP 연결을 설정할 수 있는지 확인합니다. | |
| net.tcp.service | 서비스가 실행 중이며 TCP 연결을 수락하는지 확인합니다. | |
| net.tcp.service.perf | TCP 서비스의 성능을 확인합니다. | |
| net.tcp.socket.count | 매개변수와 일치하는 TCP 소켓의 개수를 반환합니다. | |
| net.udp.listen | 이 UDP 포트가 LISTEN 상태인지 확인합니다. | |
| net.udp.service | 서비스가 실행 중이며 UDP 요청에 응답하는지 확인합니다. | |
| net.udp.service.perf | UDP 서비스의 성능을 확인합니다. | |
| net.udp.socket.count | 매개변수와 일치하는 UDP 소켓의 개수를 반환합니다. | |
| proc.cpu.util | 프로세스 CPU 사용률입니다. | 프로세스 |
| proc.get | OS 프로세스와 해당 매개변수 목록입니다. | |
| proc.mem | 프로세스가 사용하는 메모리(바이트)입니다. | |
| proc.num | 프로세스의 개수입니다. | |
| sensor | 하드웨어 센서 판독값입니다. | 센서 |
| system.boottime | 시스템 부팅 시간입니다. | 시스템 |
| system.cpu.discovery | 감지된 CPU/CPU 코어 목록입니다. | |
| system.cpu.intr | 장치 인터럽트입니다. | |
| system.cpu.load | CPU 부하입니다. | |
| system.cpu.num | CPU 개수입니다. | |
| system.cpu.switches | 컨텍스트 전환 횟수입니다. | |
| system.cpu.util | CPU 사용률입니다. | |
| system.hostname | 시스템 호스트 이름입니다. | |
| system.hw.chassis | 섀시 정보입니다. | |
| system.hw.cpu | CPU 정보입니다. | |
| system.hw.devices | PCI 또는 USB 장치 목록입니다. | |
| system.hw.macaddr | MAC 주소 목록입니다. | |
| system.localtime | 시스템 시간입니다. | |
| system.run | 호스트에서 지정된 명령을 실행합니다. | |
| system.stat | 시스템 통계입니다. | |
| system.sw.arch | 소프트웨어 아키텍처 정보입니다. | |
| system.sw.os | 운영 체제 정보입니다. | |
| system.sw.os.get | 운영 체제에 대한 상세 정보(버전, 유형, 배포판 이름, 마이너 및 메이저 버전 등)입니다. | |
| system.sw.packages | 설치된 패키지 목록입니다. | |
| system.sw.packages.get | 설치된 패키지의 상세 목록입니다. | |
| system.swap.in | 스왑인(장치에서 메모리로) 통계입니다. | |
| system.swap.out | 스왑아웃(메모리에서 장치로) 통계입니다. | |
| system.swap.size | 전체 대비 바이트 또는 백분율로 표시한 스왑 공간 크기입니다. | |
| system.uname | 시스템 식별 정보입니다. | |
| system.uptime | 시스템 가동 시간(초)입니다. | |
| system.users.num | 로그인한 사용자 수입니다. | |
| vfs.dev.discovery | 블록 장치와 해당 유형의 목록입니다. | 가상 파일 시스템 |
| vfs.dev.read | 디스크 읽기 통계입니다. | |
| vfs.dev.write | 디스크 쓰기 통계입니다. | |
| vfs.dir.count | 디렉터리 항목의 개수입니다. | |
| vfs.dir.get | 디렉터리 항목 목록입니다. | |
| vfs.dir.size | 디렉터리 크기입니다. | |
| vfs.file.cksum | UNIX cksum 알고리즘으로 계산한 파일 체크섬입니다. | |
| vfs.file.contents | 파일 내용을 가져옵니다. | |
| vfs.file.exists | 파일이 존재하는지 확인합니다. | |
| vfs.file.get | 파일 정보를 반환합니다. | |
| vfs.file.md5sum | 파일의 MD5 체크섬입니다. | |
| vfs.file.owner | 파일 소유자를 가져옵니다. | |
| vfs.file.permissions | UNIX 권한을 나타내는 8진수 네 자리 문자열을 반환합니다. | |
| vfs.file.regexp | 파일에서 문자열을 가져옵니다. | |
| vfs.file.regmatch | 파일에서 문자열을 찾습니다. | |
| vfs.file.size | 파일 크기입니다. | |
| vfs.file.time | 파일 시간 정보입니다. | |
| vfs.fs.discovery | 마운트된 파일 시스템과 해당 유형 및 마운트 옵션의 목록입니다. | |
| vfs.fs.get | 마운트된 파일 시스템과 해당 유형, 사용 가능한 디스크 공간, inode 통계 및 마운트 옵션의 목록입니다. | |
| vfs.fs.inode | inode의 개수 또는 백분율입니다. | |
| vfs.fs.size | 전체 대비 바이트 또는 백분율로 표시한 디스크 공간입니다. | |
| vm.memory.size | 전체 대비 바이트 또는 백분율로 표시한 메모리 크기입니다. | 가상 메모리 |
| web.page.get | 웹 페이지의 내용을 가져옵니다. | 웹 모니터링 |
| web.page.perf | 전체 웹 페이지의 로딩 시간입니다. | |
| web.page.regexp | 웹 페이지에서 문자열을 찾습니다. | |
| agent.hostmetadata | 에이전트 호스트 메타데이터입니다. | Zabbix |
| agent.hostname | 에이전트 호스트 이름입니다. | |
| agent.ping | 에이전트 가용성 검사입니다. | |
| agent.variant | Zabbix 에이전트 유형(Zabbix agent 또는 Zabbix agent 2)입니다. | |
| agent.version | Zabbix 에이전트 버전입니다. | |
| zabbix.stats | Zabbix 서버 또는 프록시 내부 메트릭 집합을 반환합니다. ip와 port가 지정된 경우 원격 인스턴스에서 메트릭을 가져오며, 그렇지 않으면 로컬 인스턴스에서 가져옵니다. |
|
| zabbix.stats (queue) | Zabbix 서버 또는 프록시에서 지연 중인 큐 내 모니터링 아이템 수를 반환합니다. ip와 port가 지정된 경우 원격 인스턴스에서 메트릭을 가져오며, 그렇지 않으면 로컬 인스턴스에서 가져옵니다. |
지원되는 플랫폼
아이템 세부 정보에 달리 명시된 경우를 제외하고 에이전트 아이템(및 모든 매개변수)은 다음 플랫폼에서 지원됩니다.
- Linux
- FreeBSD
- Solaris
- HP-UX
- AIX
- MacOS X
- OpenBSD
- NetBSD
많은 에이전트 아이템은 Windows에서도 지원됩니다. 자세한 내용은 Windows 에이전트 아이템 페이지를 참조하세요.
아이템 키 세부 정보
꺾쇠괄호가 없는 매개변수는 필수입니다. 꺾쇠괄호 < >로 표시된 매개변수는 선택 사항입니다.
kernel.maxfiles
OS에서 지원하는 열린 파일의 최대 개수입니다.
반환 값: 정수.
지원되는 플랫폼: Linux, FreeBSD, MacOS X, OpenBSD, NetBSD.
kernel.maxproc
OS에서 지원하는 프로세스의 최대 개수입니다.
반환 값: 정수.
지원되는 플랫폼: Linux 2.6 이상, FreeBSD, Solaris, MacOS X, OpenBSD, NetBSD.
kernel.openfiles
현재 열려 있는 파일 디스크립터의 개수입니다.
반환 값: 정수.
지원되는 플랫폼: Linux(다른 UNIX 계열 플랫폼에서도 작동할 수 있음).
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
로그 파일을 모니터링합니다.
반환 값: 로그.
지원되는 플랫폼을 참조하세요.
매개변수:
- file - 로그 파일의 전체 경로와 이름;
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- encoding - 코드 페이지 식별자;
- maxlines - 에이전트가 Zabbix 서버 또는 프록시에 초당 전송할 새 줄의 최대 개수.
이 매개변수는 zabbix_agentd.conf의 'MaxLinesPerSecond' 값을 재정의합니다;
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜁니다(새로 생성된 아이템에만 영향);
- output - 선택적 출력 형식 템플릿.
\0 이스케이프 시퀀스는 일치한 텍스트 부분(일치가 시작되는 첫 문자부터 끝나는 문자까지)으로 대체되고, \N(N=1...9) 이스케이프 시퀀스는 N번째 일치 그룹(또는 N이 캡처 그룹 수를 초과하면 빈 문자열)으로 대체됩니다;
- maxdelay - 최대 지연 시간(초).
유형: 부동 소수점.
값: 0 - (기본값) 로그 파일 줄을 무시하지 않음; > 0.0 - "maxdelay"초 이내에 최신 줄을 분석할 수 있도록 이전 줄을 무시함.
사용하기 전에 maxdelay 참고 사항을 읽으세요!
- options - 추가 옵션:
mtime-noreread - 고유하지 않은 레코드는 파일 크기가 변경된 경우에만 다시 읽음(수정 시간 변경은 무시). (이제 mtime이 무시되므로 이 매개변수는 5.0.2부터 더 이상 사용되지 않습니다.) - persistent dir (Unix 시스템의 zabbix_agentd에서만 사용 가능하며 Zabbix agent 2에서는 지원되지 않음) - 영구 파일을 저장할 디렉터리의 절대 경로명. 영구 파일에 대한 추가 참고 사항도 참조하세요.
설명:
- 아이템은 활성 검사로 구성해야 합니다;
- 파일이 없거나 권한 때문에 접근할 수 없으면 아이템이 지원되지 않는 상태가 됩니다;
output을 비워 두면 일치한 텍스트가 포함된 전체 줄이 반환됩니다. 'Result is TRUE'를 제외한 모든 전역 정규 표현식 유형은 항상 일치한 전체 줄을 반환하며output매개변수는 무시됩니다.output매개변수를 사용한 콘텐츠 추출은 에이전트에서 수행됩니다.
예:
log[/var/log/syslog]
log[/var/log/syslog,error]
log[/home/zabbix/logs/logfile,,,100]
output 매개변수를 사용하여 로그 레코드에서 숫자를 추출하는 예:
log[/app1/app.log,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send only '6080' to server. Because a numeric value is being sent, the "Type of information" for this item can be set to "Numeric (unsigned)" and the value can be used in graphs, triggers etc.
output 매개변수를 사용하여 서버로 보내기 전에 로그 레코드를 다시 작성하는 예:
log[/app1/app.log,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send a modified record "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" to the server.
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
모니터링 중인 로그 파일에서 일치하는 줄의 수입니다.
반환값: 정수.
지원 플랫폼을 참조하세요.
매개변수:
- file - 로그 파일의 전체 경로와 이름;
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- encoding - 코드 페이지 식별자;
- maxproclines - 에이전트가 초당 분석할 새 줄의 최대 개수(10000을 초과할 수 없음).
기본값은 zabbix_agentd.conf의 10*'MaxLinesPerSecond'입니다.
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜁니다(새로 생성된 아이템에만 적용).
- maxdelay - 최대 지연 시간(초).
유형: 실수.
값: 0 - (기본값) 로그 파일의 줄을 무시하지 않음; > 0.0 - "maxdelay"초 이내에 최신 줄을 분석할 수 있도록 이전 줄을 무시함.
사용하기 전에 maxdelay 참고 사항을 읽으세요!
- options - 추가 옵션:
mtime-noreread - 고유하지 않은 레코드는 파일 크기가 변경된 경우에만 다시 읽음(수정 시간 변경은 무시). (현재는 mtime이 무시되므로 이 매개변수는 5.0.2부터 더 이상 사용되지 않습니다.) - persistent dir (Unix 시스템의 zabbix_agentd에서만 사용 가능하며 Zabbix agent 2에서는 지원되지 않음) - 영구 파일을 저장할 디렉터리의 절대 경로명. 영구 파일에 대한 추가 참고 사항도 참조하세요.
설명:
- 아이템은 활성 검사로 구성해야 합니다;
- 일치하는 줄은 에이전트가 마지막으로 로그를 검사한 이후의 새 줄에서 집계되므로 아이템 업데이트 간격에 따라 달라집니다;
- 파일이 없거나 권한 때문에 접근할 수 없으면 아이템이 지원되지 않는 상태가 됩니다.
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
순환되는 로그 파일을 모니터링합니다.
반환값: 로그.
지원 플랫폼을 참조하세요.
매개변수:
- file regexp - 정규 표현식으로 파일 이름을 지정한 파일의 절대 경로.
정규 표현식은 파일 이름에만 적용되며 전체 이름과 일치할 필요가 없습니다(예: /path/to/agent는 zabbix_agentd.log와 일치함).
- regexp - 필요한 콘텐츠 패턴을 설명하는 정규 표현식.
- encoding - 코드 페이지 식별자.
- maxlines - 에이전트가 Zabbix 서버 또는 프록시로 초당 전송할 새 줄의 최대 개수.
이 매개변수는 zabbix_agentd.conf의 'MaxLinesPerSecond' 값을 재정의합니다.
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜁니다(새로 생성된 아이템에만 적용).
- output - 선택적 출력 형식 템플릿.
\0 이스케이프 시퀀스는 일치하는 텍스트 부분(일치가 시작되는 첫 문자부터 끝나는 문자까지)으로 대체되며, \N(N=1...9) 이스케이프 시퀀스는 N번째 일치 그룹으로 대체됩니다(N이 캡처된 그룹 수를 초과하면 빈 문자열).
- maxdelay - 최대 지연 시간(초).
유형: 실수.
값: 0 - (기본값) 로그 파일의 줄을 무시하지 않음; > 0.0 - "maxdelay"초 이내에 최신 줄을 분석할 수 있도록 이전 줄을 무시함.
사용하기 전에 maxdelay 참고 사항을 읽으세요!
- options - 로그 파일 순환 유형 및 기타 옵션.
가능한 값:
rotate(기본값),
copytruncate - copytruncate는 maxdelay와 함께 사용할 수 없습니다. 이 경우 maxdelay는 0이거나 지정하지 않아야 합니다. copytruncate 참고 사항을 참조하세요,
mtime-reread - 고유하지 않은 레코드는 수정 시간 또는 크기가 변경되면 다시 읽음(mtime-*옵션을 명시적으로 설정하지 않은 경우 기본적으로 사용),
mtime-noreread - 고유하지 않은 레코드는 크기가 변경된 경우에만 다시 읽음(수정 시간 변경은 무시). - persistent dir (Unix 시스템의 zabbix_agentd에서만 사용 가능하며 Zabbix agent 2에서는 지원되지 않음) - 영구 파일을 저장할 디렉터리의 절대 경로명. 영구 파일에 대한 추가 참고 사항도 참조하세요.
설명:
- 아이템은 활성 검사로 구성해야 합니다;
- 로그 순환은 파일의 마지막 수정 시간을 기준으로 합니다;
- logrt는 현재 활성 상태인 로그 파일 하나와 순환된 여러 개의 일치하는 비활성 파일을 처리하도록 설계되었습니다. 예를 들어 디렉터리에 활성 로그 파일이 여러 개 있으면 각각에 대해 별도의 logrt 아이템을 생성해야 합니다. 그렇지 않으면 하나의 logrt 아이템이 너무 많은 파일을 가져와 메모리가 고갈되고 모니터링이 중단될 수 있습니다.
output을 비워 두면 일치하는 텍스트가 포함된 전체 줄이 반환됩니다. 'Result is TRUE'를 제외한 모든 전역 정규 표현식 유형은 항상 일치하는 전체 줄을 반환하며output매개변수는 무시됩니다.output매개변수를 사용한 콘텐츠 추출은 에이전트에서 수행됩니다.file regexp매개변수에서 로그 디렉터리 경로와 로그 파일 정규 표현식은 올바른 디렉터리 구분자로 구분해야 합니다:- Windows에서는 구분자로 백슬래시(\)를 사용해야 합니다. 다른 위치에서는 슬래시를 허용할 수 있지만 로그 디렉터리 경로와 로그 파일 정규 표현식을 구분하는 위치에서는 허용되지 않습니다(아래 예 참조).
- 다른 시스템에서는 슬래시(/)를 사용해야 합니다.
Windows 예:
logrt["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will collect data from log files in "c:/dir1/dir2/dir3" where the file name starts with "filename" and ends with any extension matching ".log".
logrt["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will collect data from log files in the network share "//example.com/share/dir1/dir2/dir3" where the file name starts with "filename" and ends with any extension matching ".log".
기타 시스템 예:
logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #this item will match a file like "logfile1" (will not match ".logfile1").
logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #this item will collect data from files such as "logfile_abc_1" or "logfile__001".
로그 레코드에서 숫자를 추출하기 위해 output 매개변수를 사용하는 예:
logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send only '6080' to server. Because a numeric value is being sent, the "Type of information" for this item can be set to "Numeric (unsigned)" and the value can be used in graphs, triggers etc.
서버로 전송하기 전에 로그 레코드를 다시 작성하기 위해 output 매개변수를 사용하는 예:
logrt[/app1/^test.*log$,"([0-9 :-]+) task run ([0-9.]+) sec, processed ([0-9]+) records, ([0-9]+) errors",,,,,"\1 RECORDS: \3, ERRORS: \4, DURATION: \2"] #this item will match a log record "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" and send a modified record "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08" to server.
logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
모니터링 중인 순환 로그 파일에서 일치하는 줄의 수입니다.
반환값: 정수.
지원 플랫폼을 참조하세요.
매개변수:
- file regexp - 정규 표현식으로 파일 이름을 지정한 파일의 절대 경로.
정규 표현식은 파일 이름에만 적용되며 전체 이름과 일치할 필요가 없습니다(예: /path/to/agent는 zabbix_agentd.log와 일치함).
- regexp - 필요한 패턴을 설명하는 정규 표현식.
- encoding - 코드 페이지 식별자.
- maxproclines - 에이전트가 초당 분석할 새 줄의 최대 개수(10000을 초과할 수 없음).
기본값은 zabbix_agentd.conf의 10*'MaxLinesPerSecond'입니다.
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜁니다(새로 생성된 아이템에만 적용).
- maxdelay - 최대 지연 시간(초).
유형: 실수.
값: 0 - (기본값) 로그 파일의 줄을 무시하지 않음; > 0.0 - "maxdelay"초 이내에 최신 줄을 분석할 수 있도록 이전 줄을 무시함.
사용하기 전에 maxdelay 참고 사항을 읽으세요!
- options - 로그 파일 순환 유형 및 기타 옵션.
가능한 값:
rotate(기본값),
copytruncate - copytruncate는 maxdelay와 함께 사용할 수 없습니다. 이 경우 maxdelay는 0이거나 지정하지 않아야 합니다. copytruncate 참고 사항을 참조하세요,
mtime-reread - 고유하지 않은 레코드는 수정 시간 또는 크기가 변경되면 다시 읽음(기본값),
mtime-noreread - 고유하지 않은 레코드는 크기가 변경된 경우에만 다시 읽음(수정 시간 변경은 무시). - persistent dir (Unix 시스템의 zabbix_agentd에서만 사용 가능하며 Zabbix agent 2에서는 지원되지 않음) - 영구 파일을 저장할 디렉터리의 절대 경로명. 영구 파일에 대한 추가 참고 사항도 참조하세요.
설명:
- 아이템은 활성 검사로 구성해야 합니다;
- 일치하는 줄은 에이전트가 마지막으로 로그를 검사한 이후의 새 줄에서 집계되므로 아이템 업데이트 간격에 따라 달라집니다;
- 로그 순환은 파일의 마지막 수정 시간을 기준으로 합니다;
file regexp매개변수에서 로그 디렉터리 경로와 로그 파일 정규 표현식은 올바른 디렉터리 구분자로 구분해야 합니다:- Windows에서는 구분자로 백슬래시(\)를 사용해야 합니다. 다른 위치에서는 슬래시를 허용할 수 있지만 로그 디렉터리 경로와 로그 파일 정규 표현식을 구분하는 위치에서는 허용되지 않습니다(아래 예 참조).
- 다른 시스템에서는 슬래시(/)를 사용해야 합니다.
Windows 예:
logrt.count["c:/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will count the number of matches for the pattern "pattern_to_match" in log files located in "c:/dir1/dir2/dir3".
logrt.count["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #this item will count the number of matches for the pattern "pattern_to_match" in log files on the network share "//example.com/share/dir1/dir2/dir3".
기타 시스템 예:
logrt.count["/home/zabbix/logs/.*","^logfile[0-9]{1,3}$",,100] #this item will count the number of matches for the pattern "^logfile[0-9]{1,3}$" in log files in the "/home/zabbix/logs" directory.
logrt.count["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #this item will count the number of occurrences of the pattern "pattern_to_match" in log files located in "/home/user".
modbus.get[endpoint,<slave id>,<function>,<address>,<count>,<type>,<endianness>,<offset>]
Modbus 데이터를 읽습니다.
반환값: JSON 객체.
지원 플랫폼: Linux, Windows.
매개변수:
- endpoint -
protocol://connection_string으로 정의된 엔드포인트; - slave id - 슬레이브 ID;
- function - Modbus 함수;
- address - 첫 번째 레지스터, 코일 또는 입력의 주소;
- count - 읽을 레코드 수;
- type - 데이터 유형;
- endianness - 엔디언 구성;
- offset - 'address'부터 시작하여 결과에서 제외할 레지스터 수.
Windows에서 이 아이템은 endpoint 매개변수의 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다.
매개변수에 대한 자세한 설명을 참조하세요.
net.dns[<ip>,name,<type>,<timeout>,<count>,<protocol>]
DNS 서비스의 상태를 확인합니다.
반환값: 0 - DNS 확인 실패(DNS 서버가 응답하지 않았거나 오류를 반환함); 1 - DNS 확인 성공.
지원 플랫폼을 참조하세요.
매개변수:
- ip (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - DNS 서버의 IP 주소(기본 DNS 서버를 사용하려면 비워 둠);
- name - 조회할 DNS 이름;
- type - 조회할 레코드 유형(기본값은 SOA);
- timeout (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - 요청 제한 시간(초, 기본값 1초);
- count (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - 요청 시도 횟수(기본값 2);
- protocol - DNS 조회에 사용되는 프로토콜: udp(기본값) 또는 tcp.
설명:
type에 사용할 수 있는 값: ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (Windows의 Zabbix agent 및 모든 OS의 Zabbix agent 2에서 지원되지 않음), HINFO, MINFO, TXT, SRV- 역방향 DNS 조회(
type을 PTR로 설정한 경우)에서는 DNS 이름을 역순 형식과 일반 형식 모두로 제공할 수 있습니다(아래 예 참조). PTR 레코드를 요청할 때 DNS 이름은 실제로 IP 주소입니다. - 국제화 도메인 이름은 지원되지 않으므로 대신 IDNA로 인코딩된 이름을 사용하세요.
예:
net.dns[198.51.100.1,example.com,MX,2,1]
net.dns[,198.51.100.1,PTR]
net.dns[,1.100.51.198.in-addr.arpa,PTR]
net.dns[,2a00:1450:400f:800::200e,PTR]
net.dns[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.perf[<ip>,name,<type>,<timeout>,<count>,<protocol>]
DNS 서비스의 성능을 확인합니다.
반환값: 실수 (0 - 서비스가 중단됨; 초 - 서비스의 응답을 기다리는 데 소요된 시간(초)).
지원 플랫폼을 참조하십시오.
매개변수:
- ip (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - DNS 서버의 IP 주소(기본 DNS 서버를 사용하려면 비워 둠);
- name - 조회할 DNS 이름;
- type - 조회할 레코드 유형(기본값은 SOA);
- timeout (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - 요청 제한 시간(초)(기본값은 1초);
- count (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - 요청 시도 횟수(기본값은 2);
- protocol - DNS 조회에 사용되는 프로토콜: udp(기본값) 또는 tcp.
설명:
type에 사용할 수 있는 값:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (Windows의 Zabbix agent 및 모든 OS의 Zabbix agent 2에서는 지원되지 않음), HINFO, MINFO, TXT, SRV- 역방향 DNS 조회 시(
type을 PTR로 설정한 경우) DNS 이름을 역순 또는 비역순 형식으로 제공할 수 있습니다(아래 예제 참조). PTR 레코드를 요청할 때 DNS 이름은 실제로 IP 주소라는 점에 유의하십시오. - 국제화 도메인 이름은 지원되지 않으므로 대신 IDNA로 인코딩된 이름을 사용하십시오.
- Zabbix 7.0.1부터 DNS 서버가 오류 코드(예:
NXDOMAIN또는SERVFAIL)로 응답하면 이 아이템은0대신 응답 시간을 반환합니다.
예제:
net.dns.perf[198.51.100.1,example.com,MX,2,1]
net.dns.perf[,198.51.100.1,PTR]
net.dns.perf[,1.100.51.198.in-addr.arpa,PTR]
net.dns.perf[,2a00:1450:400f:800::200e,PTR]
net.dns.perf[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.dns.record[<ip>,name,<type>,<timeout>,<count>,<protocol>]
DNS 조회를 수행합니다.
Zabbix agent 2는 더 다양한 레코드 유형과 향상된 DNS 모니터링 제어 같은 추가 기능을 제공하는 net.dns.get도 제공합니다.
반환값: 필요한 유형의 정보가 담긴 문자열.
지원 플랫폼을 참조하십시오.
매개변수:
- ip (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - DNS 서버의 IP 주소(기본 DNS 서버를 사용하려면 비워 둠);
- name - 조회할 DNS 이름;
- type - 조회할 레코드 유형(기본값은 SOA);
- timeout (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - 요청 제한 시간(초)(기본값은 1초);
- count (Zabbix agent 2를 사용하지 않는 한 Windows에서는 무시됨) - 요청 시도 횟수(기본값은 2);
- protocol - DNS 조회에 사용되는 프로토콜: udp(기본값) 또는 tcp.
설명:
type에 사용할 수 있는 값:
ANY, A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS (Windows의 Zabbix agent 및 모든 OS의 Zabbix agent 2에서는 지원되지 않음), HINFO, MINFO, TXT, SRV- 역방향 DNS 조회 시(
type을 PTR로 설정한 경우) DNS 이름을 역순 또는 비역순 형식으로 제공할 수 있습니다(아래 예제 참조). PTR 레코드를 요청할 때 DNS 이름은 실제로 IP 주소라는 점에 유의하십시오. - 국제화 도메인 이름은 지원되지 않으므로 대신 IDNA로 인코딩된 이름을 사용하십시오.
예제:
net.dns.record[198.51.100.1,example.com,MX,2,1]
net.dns.record[,198.51.100.1,PTR]
net.dns.record[,1.100.51.198.in-addr.arpa,PTR]
net.dns.record[,2a00:1450:400f:800::200e,PTR]
net.dns.record[,e.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.0.f.0.0.4.0.5.4.1.0.0.a.2.ip6.arpa,PTR]
net.if.collisions[if]
윈도우 범위를 벗어난 충돌 수입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD.
NetBSD에서는 루트 권한이 필요합니다.
매개변수:
- if - 네트워크 인터페이스 이름
net.if.discovery
네트워크 인터페이스 목록입니다.
로우레벨 디스커버리에 사용됩니다.
반환값: JSON 객체.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD, Windows.
net.if.in[if,<mode>]
네트워크 인터페이스의 수신 트래픽 통계입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
NetBSD에서는 루트 권한이 필요합니다.
매개변수:
- if - 네트워크 인터페이스 이름(Unix), 네트워크 인터페이스의 전체 설명 또는 IPv4 주소, 중괄호로 묶은 경우 네트워크 인터페이스 GUID(Windows);
- mode - 사용 가능한 값:
bytes - 바이트 수(기본값)
packets - 패킷 수
errors - 오류 수
dropped - 폐기된 패킷 수
overruns (fifo) - FIFO 버퍼 오류 수
frame - 패킷 프레이밍 오류 수
compressed - 장치 드라이버가 수신한 압축 패킷 수
multicast - 장치 드라이버가 수신한 멀티캐스트 프레임 수
설명:
- 초당 바이트 통계를 얻으려면 이 키를 초당 변화량 전처리 단계와 함께 사용할 수 있습니다;
- dropped 모드는 Linux, FreeBSD, HP-UX, MacOS X, OpenBSD, NetBSD에서만 지원됩니다;
- overruns, frame, compressed, multicast 모드는 Linux에서만 지원됩니다;
- HP-UX에서 이 아이템은 루프백 인터페이스(예: lo0)에 대한 세부 정보를 제공하지 않습니다.
예제:
net.if.in[eth0]
net.if.in[eth0,errors]
net.if.out[if,<mode>]
네트워크 인터페이스의 송신 트래픽 통계입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
NetBSD에서는 루트 권한이 필요합니다.
매개변수:
- if - 네트워크 인터페이스 이름(Unix), 네트워크 인터페이스의 전체 설명 또는 IPv4 주소, 중괄호로 묶은 경우 네트워크 인터페이스 GUID(Windows);
- mode - 사용 가능한 값:
bytes - 바이트 수(기본값)
packets - 패킷 수
errors - 오류 수
dropped - 폐기된 패킷 수
overruns (fifo) - FIFO 버퍼 오류 수
collisions (colls) - 인터페이스에서 감지된 충돌 수
carrier - 장치 드라이버에서 감지된 반송파 손실 수
compressed - 장치 드라이버가 전송한 압축 패킷 수
설명:
- 초당 바이트 통계를 얻으려면 이 키를 초당 변화량 전처리 단계와 함께 사용할 수 있습니다;
- dropped 모드는 Linux, HP-UX에서만 지원됩니다;
- overruns, collision, carrier, compressed 모드는 Linux에서만 지원됩니다;
- HP-UX에서 이 아이템은 루프백 인터페이스(예: lo0)에 대한 세부 정보를 제공하지 않습니다.
예제:
net.if.out[eth0]
net.if.out[eth0,errors]
net.if.total[if,<mode>]
네트워크 인터페이스의 수신 및 송신 트래픽 통계 합계입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, Solaris5, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
NetBSD에서는 루트 권한이 필요합니다.
매개변수:
- if - 네트워크 인터페이스 이름(Unix), 네트워크 인터페이스의 전체 설명 또는 IPv4 주소, 중괄호로 묶은 경우 네트워크 인터페이스 GUID(Windows);
- mode - 사용 가능한 값:
bytes - 바이트 수(기본값)
packets - 패킷 수
errors - 오류 수
dropped - 폐기된 패킷 수
overruns (fifo) - FIFO 버퍼 오류 수
collisions (colls) - 인터페이스에서 감지된 충돌 수
compressed - 장치 드라이버가 전송하거나 수신한 압축 패킷 수
설명:
- 초당 바이트 통계를 얻으려면 이 키를 초당 변화량 전처리 단계와 함께 사용할 수 있습니다;
- dropped 모드는 Linux, HP-UX에서만 지원됩니다.
폐기된 패킷은 해당 플랫폼에서
net.if.in과net.if.out이 모두 폐기된 패킷에 대해 작동하는 경우에만 지원됩니다. - overruns, collision, compressed 모드는 Linux에서만 지원됩니다;
- HP-UX에서 이 아이템은 루프백 인터페이스(예: lo0)에 대한 세부 정보를 제공하지 않습니다.
예제:
net.if.total[eth0]
net.if.total[eth0,errors]
net.tcp.listen[port]
이 TCP 포트가 LISTEN 상태인지 확인합니다.
반환값: 0 - LISTEN 상태가 아님; 1 - LISTEN 상태임.
지원 플랫폼: Linux, FreeBSD, Solaris, MacOS X, Windows.
매개변수:
- port - TCP 포트 번호
Linux 커널 2.6.14 이상에서는 가능한 경우 커널의 NETLINK 인터페이스에서 수신 대기 중인 TCP 소켓 정보를 가져옵니다. 그렇지 않으면 /proc/net/tcp 및 /roc/net/tcp6 파일에서 정보를 가져옵니다.
예제:
net.tcp.listen[80]
net.tcp.port[<ip>,port]
지정한 포트에 TCP 연결을 설정할 수 있는지 확인합니다.
반환값: 0 - 연결할 수 없음; 1 - 연결할 수 있음.
지원 플랫폼을 참조하십시오.
매개변수:
- ip - IP 주소 또는 DNS 이름(기본값은 127.0.0.1);
- port - 포트 번호.
설명:
- 간단한 TCP 성능 테스트에는
net.tcp.service.perf[tcp,<ip>,<port>]를 사용하십시오; - 이러한 검사는 시스템 데몬 로그 파일에 추가 메시지를 남길 수 있습니다(일반적으로 SMTP 및 SSH 세션이 기록됨).
예제:
net.tcp.port[,80] #this item can be used to test the web server availability running on port 80
net.tcp.service[service,<ip>,<port>]
서비스가 실행 중이며 TCP 연결을 수락하는지 확인합니다.
반환값: 0 - 서비스가 중단됨; 1 - 서비스가 실행 중임.
지원 플랫폼을 참조하십시오.
매개변수:
- service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https 또는 telnet(세부 정보 참조);
- ip - IP 주소 또는 DNS 이름(기본값은 127.0.0.1);
- port - 포트 번호(기본적으로 표준 서비스 포트 번호가 사용됨).
설명:
- 이러한 검사는 시스템 데몬 로그 파일에 추가 메시지를 남길 수 있습니다(일반적으로 SMTP 및 SSH 세션이 기록됨);
- 암호화 프로토콜(예: 포트 993의 IMAP 또는 포트 995의 POP) 검사는 현재 지원되지 않습니다.
해결 방법으로 이러한 검사에는
net.tcp.port[]를 사용하십시오. - Windows에서 LDAP 및 HTTPS 검사는 Zabbix agent 2에서만 지원됩니다;
- telnet 검사는 로그인 프롬프트(끝의 ':')를 찾습니다.
예제:
net.tcp.service[ftp,,45] #this item can be used to test the availability of FTP server on TCP port 45
net.tcp.service.perf[service,<ip>,<port>]
TCP 서비스의 성능을 확인합니다.
반환값: 실수 (0 - 서비스가 중단됨; 초 - 서비스의 응답을 기다리는 데 소요된 시간(초)).
지원 플랫폼을 참조하십시오.
매개변수:
- service - ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https 또는 telnet(세부 정보 참조);
- ip - IP 주소 또는 DNS 이름(기본값은 127.0.0.1);
- port - 포트 번호(기본적으로 표준 서비스 포트 번호가 사용됨).
설명:
- 암호화 프로토콜(예: 포트 993의 IMAP 또는 포트 995의 POP) 검사는 현재 지원되지 않습니다.
해결 방법으로 이러한 검사에는
net.tcp.service.perf[tcp,<ip>,<port>]를 사용하십시오. - telnet 검사는 로그인 프롬프트(끝의 ':')를 찾습니다.
예제:
net.tcp.service.perf[ssh] #this item can be used to test the speed of initial response from the SSH server
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
매개변수와 일치하는 TCP 소켓 수를 반환합니다.
반환값: 정수.
지원 플랫폼: Linux, Windows.
매개변수:
- laddr - 로컬 IPv4/6 주소 또는 CIDR 서브넷;
- lport - 로컬 포트 번호 또는 서비스 이름;
- raddr - 원격 IPv4/6 주소 또는 CIDR 서브넷;
- rport - 원격 포트 번호 또는 서비스 이름;
- state - 연결 상태(established, syn_sent, syn_recv, fin_wait1, fin_wait2, time_wait, close, close_wait, last_ack, listen, closing).
예제:
net.tcp.socket.count[,80,,,established] #the number of connections to local TCP port 80 in the established state
net.udp.listen[port]
이 UDP 포트가 LISTEN 상태인지 확인합니다.
반환값: 0 - LISTEN 상태가 아님; 1 - LISTEN 상태임.
지원 플랫폼: Linux, FreeBSD, Solaris, MacOS X.
매개변수:
- port - UDP 포트 번호
예제:
net.udp.listen[68]
net.udp.service[service,<ip>,<port>]
서비스가 실행 중이며 UDP 요청에 응답하는지 확인합니다.
반환값: 0 - 서비스가 중단됨; 1 - 서비스가 실행 중임.
지원 플랫폼을 참조하십시오.
매개변수:
- service - ntp(세부 정보 참조);
- ip - IP 주소 또는 DNS 이름(기본값은 127.0.0.1);
- port - 포트 번호(기본적으로 표준 서비스 포트 번호가 사용됨).
예제:
net.udp.service[ntp,,45] #this item can be used to test the availability of NTP service on UDP port 45
net.udp.service.perf[service,<ip>,<port>]
UDP 서비스의 성능을 확인합니다.
반환값: 실수 (0 - 서비스가 중단됨; 초 - 서비스의 응답을 기다리는 데 소요된 시간(초)).
지원 플랫폼을 참조하십시오.
매개변수:
- service - ntp(세부 정보 참조);
- ip - IP 주소 또는 DNS 이름(기본값은 127.0.0.1);
- port - 포트 번호(기본적으로 표준 서비스 포트 번호가 사용됨).
예제:
net.udp.service.perf[ntp] #this item can be used to test response time from NTP service
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
매개변수와 일치하는 UDP 소켓 수를 반환합니다.
반환값: 정수.
지원 플랫폼: Linux, Windows.
매개변수:
- laddr - 로컬 IPv4/6 주소 또는 CIDR 서브넷;
- lport - 로컬 포트 번호 또는 서비스 이름;
- raddr - 원격 IPv4/6 주소 또는 CIDR 서브넷;
- rport - 원격 포트 번호 또는 서비스 이름;
- state - 연결 상태(established, unconn).
예제:
net.udp.socket.count[,,,,established] #returns the number of UDP sockets in the connected state
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
프로세스의 CPU 사용률입니다.
반환값: Float.
지원 플랫폼: Linux, Solaris6.
매개변수:
- name - 프로세스 이름(기본값은 all processes);
- user - 사용자 이름(기본값은 all users);
- type - CPU 사용률 유형: total(기본값), user 또는 system;
- cmdline - 명령줄로 필터링(정규 표현식);
- mode - 데이터 수집 모드: avg1(기본값), avg5 또는 avg15;
- zone - 대상 영역: current(기본값) 또는 all. 이 매개변수는 Solaris에서만 지원됩니다.
설명:
- 반환값은 단일 CPU 코어의 사용률을 기준으로 합니다. 예를 들어 코어 두 개를 모두 사용하는 프로세스의 CPU 사용률은 200%입니다.
- 프로세스 CPU 사용률 데이터는 이름, 사용자 및 명령줄을 기준으로 최대 1024개의 고유 쿼리를 지원하는 수집기가 수집합니다. 최근 24시간 동안 접근하지 않은 쿼리는 수집기에서 제거됩니다.
- 영역을 지원하지 않는 Solaris에서 에이전트를 컴파일했지만 영역을 지원하는 최신 Solaris에서 실행하는 경우,
zone매개변수를 current(또는 기본값)로 설정하면 에이전트가 NOTSUPPORTED를 반환합니다(에이전트가 결과를 현재 영역으로만 제한할 수 없음). 단, 이 경우에도 all은 지원됩니다.
예제:
proc.cpu.util[,root] #CPU utilization of all processes running under the "root" user
proc.cpu.util[zabbix_server,zabbix] #CPU utilization of all zabbix_server processes running under the zabbix user
proc.get[<name>,<user>,<cmdline>,<mode>]
OS 프로세스와 해당 매개변수의 목록입니다.
로우 레벨 디스커버리에 사용할 수 있습니다.
반환값: JSON object.
지원 플랫폼: Linux, FreeBSD, Windows, OpenBSD, NetBSD.
매개변수:
- name - 프로세스 이름(기본값 all processes);
- user - 사용자 이름(기본값 all users);
- cmdline - 명령줄로 필터링(정규 표현식). 이 매개변수는 Windows에서 지원되지 않으며, 다른 플랫폼에서도 mode를 'summary'로 설정하면 지원되지 않습니다.
- mode - 사용 가능한 값:
process(기본값), thread(NetBSD에서는 지원되지 않음), summary. 각 mode 및 OS에서 반환되는 프로세스 매개변수 목록을 참조하세요.
설명:
- 오류(프로세스가 이미 종료됨, 권한 부족, 시스템 호출 실패 등)로 인해 값을 가져올 수 없으면
-1이 반환됩니다; name및cmdline매개변수로 프로세스를 선택하는 방법에 관한 참고 사항을 확인하세요(Linux 한정).
예제:
proc.get[zabbix_server,zabbix,,process] #list of all zabbix_server processes running under the zabbix user, returns one entry per PID
proc.get[java,,,thread] #list of all Java processes, returns one entry per thread
proc.get[,zabbix,,summary] #combined data for processes of each type running under the zabbix user, returns one entry per process name
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
프로세스가 사용하는 메모리(바이트)입니다.
반환값: mode가 max, min, sum이면 Integer; mode가 avg이면 Float
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
매개변수:
- name - 프로세스 이름(기본값은 all processes);
- user - 사용자 이름(기본값은 all users);
- mode - 사용 가능한 값: avg, max, min 또는 sum(기본값);
- cmdline - 명령줄로 필터링(정규 표현식);
- memtype - 프로세스가 사용하는 메모리 유형
설명:
memtype매개변수는 Linux, FreeBSD, Solaris6, AIX에서만 지원됩니다;- 여러 프로세스가 공유 메모리를 사용하면 프로세스가 사용하는 메모리의 합계가 비현실적으로 큰 값이 될 수 있습니다.
name및cmdline매개변수로 프로세스를 선택하는 방법에 관한 참고 사항을 확인하세요(Linux 한정).
명령줄에서 이 item을 호출하면서 명령줄 매개변수를 포함하면(예: 에이전트 테스트 모드 사용:zabbix_agentd -t proc.mem[,,,apache2]), 에이전트가 자기 자신도 계산하므로 프로세스 하나가 추가로 집계됩니다.
예제:
proc.mem[,root] #the memory used by all processes running under the "root" user
proc.mem[zabbix_server,zabbix] #the memory used by all zabbix_server processes running under the zabbix user
proc.mem[,oracle,max,oracleZABBIX] #the memory used by the most memory-hungry process running under Oracle having oracleZABBIX in its command line
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
프로세스 수입니다.
반환값: Integer.
지원 플랫폼: Linux, FreeBSD, Solaris6, HP-UX, AIX, OpenBSD, NetBSD, Windows.
매개변수:
- name - 프로세스 이름(기본값은 all processes);
- user - 사용자 이름(기본값은 all users);
- state - 사용 가능한 값:
all(기본값),
disk - 중단할 수 없는 대기 상태,
run - 실행 중,
sleep - 중단할 수 있는 대기 상태,
trace - 중지됨,
zomb - 좀비; - cmdline - 명령줄로 필터링(정규 표현식);
- zone - 대상 영역: current(기본값) 또는 all. 이 매개변수는 Solaris에서만 지원됩니다.
설명:
- disk 및 trace state 매개변수는 Linux, FreeBSD, OpenBSD, NetBSD에서만 지원됩니다;
- Windows에서는
name및user매개변수만 지원됩니다; - 명령줄에서 이 item을 호출하면서 명령줄 매개변수를 포함하면(예: 에이전트 테스트 모드 사용:
zabbix_agentd -t proc.num[,,,apache2]), 에이전트가 자기 자신도 계산하므로 프로세스 하나가 추가로 집계됩니다; - 영역을 지원하지 않는 Solaris에서 에이전트를 컴파일했지만 영역을 지원하는 최신 Solaris에서 실행하는 경우,
zone매개변수를 current(또는 기본값)로 설정하면 에이전트가 NOTSUPPORTED를 반환합니다(에이전트가 결과를 현재 영역으로만 제한할 수 없음). 단, 이 경우에도 all은 지원됩니다. name및cmdline매개변수로 프로세스를 선택하는 방법에 관한 참고 사항을 확인하세요(Linux 한정).
예제:
proc.num[,mysql] #the number of processes running under the mysql user
proc.num[apache2,www-data] #the number of apache2 processes running under the www-data user
proc.num[,oracle,sleep,oracleZABBIX] #the number of processes in sleep state running under Oracle having oracleZABBIX in its command line
sensor[device,sensor,<mode>]
하드웨어 센서 측정값입니다.
반환값: Float.
지원 플랫폼: Linux, OpenBSD.
매개변수:
- device - 장치 이름;
- sensor - 센서 이름;
- mode - 사용 가능한 값: avg, max 또는 min.
설명:
- Linux 2.4에서는 /proc/sys/dev/sensors를 읽습니다;
- Linux 2.6 이상에서는 /sys/class/hwmon을 읽습니다. Linux의 sensor item에 관한 자세한 설명을 참조하세요;
- OpenBSD에서는 hw.sensors MIB를 읽습니다;
- Linux 2.4에서 mode를 지정하면 device와 sensor를 정규 표현식으로 처리합니다;
- Linux 2.6 이상 및 OpenBSD에서는, 또는 mode를 생략하면 device와 sensor를 입력한 그대로 처리합니다.
예제:
sensor[w83781d-i2c-0-2d,temp1]
sensor[cpu0,temp0] #the temperature of one CPU
sensor["cpu[0-2]$",temp,avg] #the average temperature of the first three CPUs
system.boottime
시스템 부팅 시간입니다.
반환값: Integer (Unix timestamp).
지원 플랫폼: Linux, FreeBSD, Solaris, MacOS X, OpenBSD, NetBSD.
system.cpu.discovery
감지된 CPU/CPU 코어 목록입니다.
로우 레벨 디스커버리에 사용됩니다.
반환값: JSON object.
지원 플랫폼을 참조하세요.
system.cpu.intr
장치 인터럽트 수입니다.
반환값: Integer.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
system.cpu.load[<cpu>,<mode>]
CPU 부하입니다.
반환값: Float.
지원 플랫폼을 참조하세요.
매개변수:
- cpu - 사용 가능한 값: all(기본값) 또는 percpu(총 부하를 온라인 CPU 수로 나눈 값);
- mode - 사용 가능한 값: avg1(1분 평균, 기본값), avg5 또는 avg15.
예제:
system.cpu.load[,avg5]
system.cpu.num[<type>]
CPU 수입니다.
반환값: Integer.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
매개변수:
- type - 사용 가능한 값: online(기본값) 또는 max
max type 매개변수는 Linux, FreeBSD, Solaris, MacOS X에서만 지원됩니다.
예제:
system.cpu.num
system.cpu.switches
컨텍스트 전환 횟수입니다.
반환값: Integer.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
system.cpu.util[<cpu>,<type>,<mode>,<logical or physical>]
CPU 사용률입니다.
반환값: Float.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD, Windows.
매개변수:
- cpu - <CPU number> 또는 all(기본값);
- type - 사용 가능한 값: user(기본값), idle, nice, system, iowait, interrupt, softirq, steal, guest(Linux 커널 2.6.24 이상) 또는 guest_nice(Linux 커널 2.6.33 이상);
- mode - 사용 가능한 값: avg1(1분 평균, 기본값), avg5 또는 avg15;
- logical or physical - 사용 가능한 값: logical(기본값) 또는 physical. 이 매개변수는 AIX에서만 지원됩니다.
설명:
- nice type 매개변수는 Linux, FreeBSD, HP-UX, OpenBSD, NetBSD에서만 지원됩니다.
- iowait type 매개변수는 Linux 2.6 이상, Solaris, AIX에서만 지원됩니다.
- interrupt type 매개변수는 Linux 2.6 이상, FreeBSD, OpenBSD에서만 지원됩니다.
- softirq, steal, guest, guest_nice type 매개변수는 Linux 2.6 이상에서만 지원됩니다.
- avg5 및 avg15 mode 매개변수는 Linux, FreeBSD, Solaris, HP-UX, AIX, OpenBSD, NetBSD에서 지원됩니다.
예제:
system.cpu.util[0,user,avg5]
system.hostname[<type>,<transform>]
시스템 호스트 이름입니다.
반환값: String.
지원 플랫폼을 참조하세요.
매개변수:
- type - 사용 가능한 값: netbios(Windows의 기본값), host(Linux의 기본값), shorthost(첫 번째 점 앞의 호스트 이름 부분을 반환하며, 점이 없는 이름은 전체 문자열을 반환), fqdn(정규화된 도메인 이름을 반환);
- transform - 사용 가능한 값: none(기본값) 또는 lower(소문자로 변환).
uname() 시스템 API 출력에서 nodename을 가져와 값을 획득합니다.
반환값 예제:
system.hostname → linux-w7x1
system.hostname → example.com
system.hostname[shorthost] → example
system.hostname → WIN-SERV2008-I6
system.hostname[host] → Win-Serv2008-I6LonG
system.hostname[host,lower] → win-serv2008-i6long
system.hostname[fqdn,lower] → blog.zabbix.com
system.hw.chassis[<info>]
섀시 정보입니다.
반환값: String.
지원 플랫폼: Linux.
매개변수:
- info - 사용 가능한 값: full(기본값), model, serial, type 또는 vendor
설명:
- 이 item key는 SMBIOS 테이블의 사용 가능 여부에 따라 달라집니다;
- sysfs에서 DMI 테이블 읽기를 시도하며, sysfs 접근에 실패하면 메모리에서 직접 읽기를 시도합니다;
- sysfs 또는 메모리에서 값을 읽으므로 Root 권한이 필요합니다.
예제:
system.hw.chassis[full] → Hewlett-Packard HP Pro 3010 Small Form Factor PC CZXXXXXXXX Desktop
system.hw.cpu[<cpu>,<info>]
CPU 정보입니다.
반환값: String 또는 Integer.
지원 플랫폼: Linux.
매개변수:
- cpu - <CPU number> 또는 all(기본값);
- info - 사용 가능한 값: full(기본값), curfreq, maxfreq, model 또는 vendor.
설명:
/proc/cpuinfo및/sys/devices/system/cpu/[cpunum]/cpufreq/cpuinfo_max_freq에서 정보를 수집합니다;- CPU 번호와 curfreq 또는 maxfreq를 지정하면 숫자 값(Hz)이 반환됩니다.
예제:
system.hw.cpu[0,vendor] → AuthenticAMD
system.hw.devices[<type>]
PCI 또는 USB 장치 목록입니다.
반환값: Text.
지원 플랫폼: Linux.
매개변수:
- type - pci(기본값) 또는 usb
lspci 또는 lsusb 유틸리티 중 하나를 매개변수 없이 실행한 출력을 반환합니다.
예제:
system.hw.devices → 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
system.hw.macaddr[<interface>,<format>]
MAC 주소 목록입니다.
반환값: String.
지원 플랫폼: Linux.
매개변수:
- interface - all(기본값) 또는 정규 표현식;
- format - full(기본값) 또는 short
설명:
- 이름이 주어진
interface정규 표현식과 일치하는 인터페이스의 MAC 주소를 나열합니다(all은 모든 인터페이스를 나열); format을 short로 지정하면 인터페이스 이름과 중복된 MAC 주소는 나열하지 않습니다.
예제:
system.hw.macaddr["eth0$",full] → [eth0] 00:11:22:33:44:55
system.localtime[<type>]
시스템 시간입니다.
반환값: type이 utc이면 Integer; type이 local이면 String.
지원 플랫폼을 참조하세요.
매개변수:
- type - 사용 가능한 값: utc - Epoch(1970년 1월 1일 00:00:00 UTC) 이후 경과 시간을 초 단위로 나타냄(기본값) 또는 local - 'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm' 형식의 시간
Zabbix agent에서는 수동 검사로 사용해야 하며, Zabbix agent 2에서는 능동 검사로 구성할 수 있습니다.
예제:
system.localtime[local] #create an item using this key and then use it to display the host time in the *Clock* dashboard widget.
system.run[command,<mode>]
호스트에서 지정한 명령을 실행합니다.
반환값: 명령의 텍스트 결과. 단, mode가 nowait이면 명령 결과와 관계없이 1을 반환합니다.
지원 플랫폼을 참조하세요.
매개변수:
- command - 실행할 명령;
- mode - 가능한 값: wait - 실행이 끝날 때까지 대기(기본값) 또는 nowait - 대기하지 않음.
설명:
- 이 아이템은 기본적으로 비활성화되어 있습니다. 활성화하는 방법을 알아보세요;
- 아이템의 반환값은 명령에서 생성된 표준 출력과 표준 오류를 합친 값입니다. 종료 코드 확인은 수행되지 않습니다;
- 올바르게 처리하려면 명령의 반환값이
text데이터 유형이어야 합니다. 빈 결과도 허용됩니다; - 반환값은 16MB로 제한됩니다(잘리는 후행 공백 포함). 데이터베이스 제한도 적용됩니다;
- 함께 보기: 명령 실행.
예:
system.run[ls -l /] #return a detailed file list of the root directory
system.stat[resource,<type>]
시스템 통계입니다.
반환값: 정수 또는 실수.
지원 플랫폼: AIX.
매개변수:
- ent - 이 파티션에 할당된 프로세서 유닛 수(실수);
- kthr,<type> - 커널 스레드 상태 정보:
r - 실행 가능한 커널 스레드의 평균 개수(실수)
b - Virtual Memory Manager 대기열에 배치된 커널 스레드의 평균 개수(실수) - memory,<type> - 가상 메모리 및 실제 메모리 사용량 정보:
avm - 활성 가상 페이지(정수)
fre - 여유 목록의 크기(정수) - page,<type> - 페이지 폴트 및 페이징 활동 정보:
fi - 초당 파일 페이지인 횟수(실수)
fo - 초당 파일 페이지아웃 횟수(실수)
pi - 페이징 공간에서 페이지인된 페이지 수(실수)
po - 페이징 공간으로 페이지아웃된 페이지 수(실수)
fr - 해제된 페이지 수(페이지 교체)(실수)
sr - 페이지 교체 알고리즘이 스캔한 페이지 수(실수) - faults,<type> - 트랩 및 인터럽트 발생률:
in - 장치 인터럽트(실수)
sy - 시스템 호출(실수)
cs - 커널 스레드 컨텍스트 전환(실수) - cpu,<type> - 프로세서 시간의 백분율 사용량 내역:
us - 사용자 시간(실수)
sy - 시스템 시간(실수)
id - 유휴 시간(실수)
wa - 처리되지 않은 디스크/NFS I/O 요청이 있는 동안의 유휴 시간(실수)
pc - 사용된 물리 프로세서 수(실수)
ec - 사용된 할당 용량의 백분율(실수)
lbusy - 사용자 및 시스템 수준에서 실행되는 동안 발생한 논리 프로세서 사용률의 백분율(실수)
app - 공유 풀에서 사용 가능한 물리 프로세서 수(실수) - disk,<type> - 디스크 통계:
bps - 드라이브에 초당 전송된(읽기 또는 쓰기) 데이터 양을 바이트 단위로 나타냄(정수)
tps - 물리 디스크/테이프에 요청된 초당 전송 횟수를 나타냄(실수)
설명:
- 이 아이템에는 다음과 같은 제한 사항이 있습니다:
system.stat[cpu,app]- "Shared" 유형의 AIX LPAR에서만 지원됨
system.stat[cpu,ec]- "Shared" 및 "Dedicated" 유형의 AIX LPAR에서 지원됨("Dedicated"는 항상 100(퍼센트)을 반환함)
system.stat[cpu,lbusy]- "Shared" 유형의 AIX LPAR에서만 지원됨
system.stat[cpu,pc]- "Shared" 및 "Dedicated" 유형의 AIX LPAR에서 지원됨
system.stat[ent]- "Shared" 및 "Dedicated" 유형의 AIX LPAR에서 지원됨
system.sw.arch
소프트웨어 아키텍처 정보입니다.
반환값: 문자열.
지원 플랫폼을 참조하세요.
정보는 uname() 함수에서 가져옵니다.
예:
system.sw.arch → i686
system.sw.os[<info>]
운영 체제 정보입니다.
반환값: 문자열.
지원 플랫폼: Linux, Windows.
매개변수:
- info - 가능한 값: full(기본값), short 또는 name
정보는 다음에서 가져옵니다(일부 배포판에는 모든 파일과 옵션이 존재하지 않을 수 있음):
- Linux의
/proc/version(full); - Linux의
/proc/version_signature(short); - 이를 지원하는 Linux 시스템에서는
/etc/os-release의 PRETTY_NAME 매개변수, 그 외에는/etc/issue.net(name); - Windows의
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion레지스트리 키.
예:
system.sw.os[short] → Ubuntu 2.6.35-28.50-generic 2.6.35.11
system.sw.os[full] → [s|Windows 10 Enterprise 22621.1.asd64fre.ni_release.220506-1250 Build 22621.963]
system.sw.os.get
운영 체제에 대한 상세 정보(버전, 유형, 배포판 이름, 마이너 및 메이저 버전 등)입니다.
반환값: JSON 객체.
지원 플랫폼: Linux, Windows.
system.sw.packages[<regexp>,<manager>,<format>]
설치된 패키지 목록입니다.
반환값: 텍스트.
지원 플랫폼: Linux.
매개변수:
- regexp - all(기본값) 또는 정규 표현식;
- manager - all(기본값) 또는 패키지 관리자;
- format - full(기본값) 또는 short.
설명:
- 이름이 지정된 정규 표현식과 일치하는 설치된 패키지를 알파벳순으로 나열합니다(all은 모두 나열);
- 지원되는 패키지 관리자(실행 명령):
dpkg (dpkg --get-selections)
pkgtool (ls /var/log/packages)
rpm (rpm -qa)
pacman (pacman -Q)
portage format이 full로 지정되면 패키지가 패키지 관리자별로 그룹화됩니다(각 관리자는 별도의 줄에 대괄호로 묶인 이름으로 시작);format이 short로 지정되면 패키지가 그룹화되지 않고 한 줄에 나열됩니다.
예:
system.sw.packages[mini,dpkg,short] → python-minimal, python2.6-minimal, ubuntu-minimal
system.sw.packages.get[<regexp>,<manager>]
설치된 패키지의 상세 목록입니다.
반환값: JSON 객체.
지원 플랫폼: Linux.
매개변수:
- regexp - all(기본값) 또는 정규 표현식;
- manager - all(기본값) 또는 패키지 관리자(가능한 값: rpm, dpkg, pkgtool, pacman 또는 portage).
설명:
- 이름이 지정된 정규 표현식과 일치하는 설치된 패키지를 형식화되지 않은 JSON으로 반환합니다;
- 출력은 각각 name, manager, version, size, architecture, buildtime 및 installtime 키를 포함하는 객체의 배열입니다(자세한 내용 참조).
system.swap.in[<device>,<type>]
스왑인(장치에서 메모리로) 통계입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, OpenBSD.
매개변수:
- device - 스왑에 사용되는 장치(Linux만 해당) 또는 all(기본값)을 지정;
- type - 가능한 값: count(스왑인 횟수, Linux 이외 플랫폼의 기본값), sectors(스왑인된 섹터 수) 또는 pages(스왑인된 페이지 수, Linux의 기본값).
설명:
- 이 정보의 출처는 다음과 같습니다:
/proc/swaps, /proc/partitions, /proc/stat (Linux 2.4)
/proc/swaps, /proc/diskstats, /proc/vmstat (Linux 2.6) - pages는 device를 지정하지 않은 경우에만 작동합니다;
- sectors type 매개변수는 Linux에서만 지원됩니다.
예:
system.swap.in[,pages]
system.swap.out[<device>,<type>]
스왑아웃(메모리에서 장치로) 통계입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, OpenBSD.
매개변수:
- device - 스왑에 사용되는 장치(Linux만 해당) 또는 all(기본값)을 지정;
- type - 가능한 값: count(스왑아웃 횟수, Linux 이외 플랫폼의 기본값), sectors(스왑아웃된 섹터 수) 또는 pages(스왑아웃된 페이지 수, Linux의 기본값).
설명:
- 이 정보의 출처는 다음과 같습니다:
/proc/swaps,/proc/partitions,/proc/stat(Linux 2.4)/proc/swaps,/proc/diskstats,/proc/vmstat(Linux 2.6) - pages는 device를 지정하지 않은 경우에만 작동합니다;
- sectors type 매개변수는 Linux에서만 지원됩니다.
예:
system.swap.out[,pages]
system.swap.size[<device>,<type>]
바이트 단위 또는 전체 대비 백분율로 나타낸 스왑 공간 크기입니다.
반환값: 바이트는 정수, 백분율은 실수.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD, Windows.
매개변수:
- device - 스왑에 사용되는 장치(FreeBSD만 해당) 또는 all(기본값)을 지정;
- type - 가능한 값: free(여유 스왑 공간, 기본값), pfree(여유 스왑 공간, 백분율), pused(사용된 스왑 공간, 백분율), total(전체 스왑 공간) 또는 used(사용된 스왑 공간).
설명:
- 스왑 크기가 0이면 Windows에서 pfree, pused가 지원되지 않습니다;
- device를 지정하지 않으면 Zabbix 에이전트는 스왑 장치(파일)만 고려하고 물리 메모리는 무시합니다.
예를 들어 Solaris 시스템에서
swap -s명령은swap -l과 달리 물리 메모리 일부와 스왑 장치를 포함합니다.
예:
system.swap.size[,pfree] → free swap space percentage
system.uname
시스템 식별 정보입니다.
반환값: 문자열.
지원 플랫폼을 참조하세요.
설명:
- UNIX에서는 uname() 시스템 호출로 이 아이템의 값을 가져옵니다;
- Windows에서는 이 아이템이 OS 아키텍처를 반환하고, UNIX에서는 CPU 아키텍처를 반환합니다.
예:
system.uname → FreeBSD localhost 4.2-RELEASE FreeBSD 4.2-RELEASE #0: Mon Nov i386
system.uname → Windows ZABBIX-WIN 6.0.6001 Microsoft® Windows Server® 2008 Standard Service Pack 1 x86
system.uptime
초 단위의 시스템 가동 시간입니다.
반환값: 정수.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD, Windows.
아이템 구성에서 읽기 쉬운 값을 얻으려면 s 또는 uptime 단위를 사용하세요.
system.users.num
로그인한 사용자 수입니다.
반환값: 정수.
지원 플랫폼을 참조하세요.
값을 가져오기 위해 에이전트 측에서 who 명령을 사용합니다.
vfs.dev.discovery
블록 장치 및 해당 유형의 목록입니다.
로우레벨 디스커버리에 사용됩니다.
반환값: JSON 객체.
지원 플랫폼: Linux.
vfs.dev.read[<device>,<type>,<mode>]
디스크 읽기 통계입니다.
반환값: type이 sectors, operations, bytes이면 정수, type이 sps, ops, bps이면 실수.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD.
매개변수:
- device - 디스크 장치(기본값은 all 3);
- type - 가능한 값: sectors, operations, bytes, sps, ops 또는 bps(sps, ops, bps는 각각 초당 섹터 수, 작업 수, 바이트 수를 의미);
- mode - 가능한 값: avg1(1분 평균, 기본값), avg5 또는 avg15.
이 매개변수는
type이 sps, ops, bps인 경우에만 지원됩니다.
설명:
- 업데이트 간격이 3시간 이상이면2 이 아이템은 항상 '0'을 반환합니다;
- sectors 및 sps type 매개변수는 Linux에서만 지원됩니다;
- ops type 매개변수는 Linux 및 FreeBSD에서만 지원됩니다;
- bps type 매개변수는 FreeBSD에서만 지원됩니다;
- bytes type 매개변수는 FreeBSD, Solaris, AIX, OpenBSD에서만 지원됩니다;
mode매개변수는 Linux, FreeBSD에서만 지원됩니다;- 상대 장치 이름(예:
sda)과 선택적인 /dev/ 접두사(예:/dev/sda)를 모두 사용할 수 있습니다; - LVM 논리 볼륨이 지원됩니다;
- OS별 'type' 매개변수의 기본값:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 지원 플랫폼의 sps, ops 및 bps는 1024개 장치로 제한됩니다(개별 장치 1023개와 all 1개).
예:
vfs.dev.read[,operations]
vfs.dev.write[<device>,<type>,<mode>]
디스크 쓰기 통계입니다.
반환값: type이 sectors, operations, bytes이면 정수, type이 sps, ops, bps이면 실수.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD.
매개변수:
- device - 디스크 장치(기본값은 all 3);
- type - 가능한 값: sectors, operations, bytes, sps, ops 또는 bps(sps, ops, bps는 각각 초당 섹터 수, 작업 수, 바이트 수를 의미);
- mode - 가능한 값: avg1(1분 평균, 기본값), avg5 또는 avg15.
이 매개변수는
type이 sps, ops, bps인 경우에만 지원됩니다.
설명:
- 업데이트 간격이 3시간 이상이면2 이 아이템은 항상 '0'을 반환합니다;
- sectors 및 sps type 매개변수는 Linux에서만 지원됩니다;
- ops type 매개변수는 Linux 및 FreeBSD에서만 지원됩니다;
- bps type 매개변수는 FreeBSD에서만 지원됩니다;
- bytes type 매개변수는 FreeBSD, Solaris, AIX, OpenBSD에서만 지원됩니다;
mode매개변수는 Linux, FreeBSD에서만 지원됩니다;- 상대 장치 이름(예:
sda)과 선택적인 /dev/ 접두사(예:/dev/sda)를 모두 사용할 수 있습니다; - LVM 논리 볼륨이 지원됩니다;
- OS별 'type' 매개변수의 기본값:
AIX - operations
FreeBSD - bps
Linux - sps
OpenBSD - operations
Solaris - bytes - 지원 플랫폼의 sps, ops 및 bps는 1024개 장치로 제한됩니다(개별 장치 1023개와 all 1개).
예:
vfs.dev.write[,operations]
vfs.dir.count[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
디렉터리 항목 수입니다.
반환값: 정수.
지원 플랫폼을 참조하세요.
매개변수:
- dir - 디렉터리의 절대 경로;
- regex incl - 포함할 엔터티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 설명하는 정규 표현식; 비어 있으면 모두 포함(기본값);
- regex excl - 제외할 엔터티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 설명하는 정규 표현식; 비어 있으면 아무것도 제외하지 않음(기본값);
- types incl - 계산할 디렉터리 항목 유형, 가능한 값: file - 일반 파일, dir - 하위 디렉터리, sym - 심볼릭 링크, sock - 소켓, bdev - 블록 장치, cdev - 문자 장치, fifo - FIFO, dev - "bdev,cdev"와 동의어, all - 모든 유형(기본값), 즉 "file,dir,sym,sock,bdev,cdev,fifo". 여러 유형은 쉼표로 구분하고 따옴표로 묶어야 합니다.
- types excl - 계산하지 않을 디렉터리 항목 유형(
types incl참조). 일부 항목 유형이types incl과types excl에 모두 있으면 해당 유형의 디렉터리 항목은 계산되지 않습니다. - max depth - 탐색할 하위 디렉터리의 최대 깊이:
-1 (기본값) - 제한 없음,
0 - 하위 디렉터리로 내려가지 않음. - min size - 계산할 파일의 최소 크기(바이트 단위). 이보다 작은 파일은 계산되지 않습니다. 메모리 접미사를 사용할 수 있습니다.
- max size - 계산할 파일의 최대 크기(바이트 단위). 이보다 큰 파일은 계산되지 않습니다. 메모리 접미사를 사용할 수 있습니다.
- min age - 계산할 디렉터리 항목의 최소 경과 시간(초 단위). 이보다 최근 항목은 계산되지 않습니다. 시간 접미사를 사용할 수 있습니다.
- max age - 계산할 디렉터리 항목의 최대 경과 시간(초 단위). 이 시간 이상 오래된 항목은 계산되지 않습니다(수정 시간 기준). 시간 접미사를 사용할 수 있습니다.
- regex excl dir - 제외할 디렉터리의 이름 패턴을 설명하는 정규 표현식. 해당 디렉터리의 모든 내용이 제외됩니다(regex_excl과 대조적임)
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 환경 변수(예: %APP_HOME%, $HOME, %TEMP%)는 지원되지 않습니다;
- 의사 디렉터리 "." 및 ".."은 계산되지 않습니다;
- 디렉터리를 탐색할 때 심볼릭 링크는 따라가지 않습니다;
- 항목 수를 계산할 때
regex incl과regex excl은 파일과 디렉터리에 모두 적용되지만, 탐색할 하위 디렉터리를 선택할 때는 무시됩니다(regex incl이 "(?i)^.+\.zip$"이고max depth가 설정되지 않은 경우 모든 하위 디렉터리를 탐색하지만 zip 유형의 파일만 계산됨). - 실행 시간은 에이전트 구성의 timeout 값(3초)으로 제한됩니다. 큰 디렉터리를 탐색하는 데 이보다 오래 걸릴 수 있으므로 데이터가 반환되지 않고 아이템이 지원되지 않는 상태가 됩니다. 부분 집계는 반환되지 않습니다.
- 크기로 필터링할 때는 일반 파일만 의미 있는 크기를 갖습니다.
Linux와 BSD에서는 디렉터리도 0이 아닌 크기(일반적으로 수 Kb)를 갖습니다.
장치 크기는 0입니다. 예를 들어 /dev/sda1의 크기는 해당 파티션의 크기를 반영하지 않습니다.
따라서
<min_size>와<max_size>를 사용할 때는 예상치 못한 결과를 피하도록<types_incl>을 "file"로 지정하는 것이 좋습니다.
예:
vfs.dir.count[/dev] #monitors the number of devices in /dev (Linux)
vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #monitors the number of files in a temporary directory
vfs.dir.get[dir,<regex incl>,<regex excl>,<types incl>,<types excl>,<max depth>,<min size>,<max size>,<min age>,<max age>,<regex excl dir>]
디렉터리 항목 목록입니다.
반환값: JSON 객체.
지원 플랫폼을 참조하세요.
매개변수:
- dir - 디렉터리의 절대 경로;
- regex incl - 포함할 엔터티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 설명하는 정규 표현식; 비어 있으면 모두 포함(기본값);
- regex excl - 제외할 엔터티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 설명하는 정규 표현식; 비어 있으면 아무것도 제외하지 않음(기본값);
- types incl - 나열할 디렉터리 항목 유형, 가능한 값: file - 일반 파일, dir - 하위 디렉터리, sym - 심볼릭 링크, sock - 소켓, bdev - 블록 장치, cdev - 문자 장치, fifo - FIFO, dev - "bdev,cdev"와 동의어, all - 모든 유형(기본값), 즉 "file,dir,sym,sock,bdev,cdev,fifo". 여러 유형은 쉼표로 구분하고 따옴표로 묶어야 합니다.
- types excl - 나열하지 않을 디렉터리 항목 유형(
types incl참조). 일부 항목 유형이types incl과types excl에 모두 있으면 해당 유형의 디렉터리 항목은 나열되지 않습니다. - max depth - 탐색할 하위 디렉터리의 최대 깊이:
-1 (기본값) - 제한 없음,
0 - 하위 디렉터리로 내려가지 않음. - min size - 나열할 파일의 최소 크기(바이트 단위). 이보다 작은 파일은 나열되지 않습니다. 메모리 접미사를 사용할 수 있습니다.
- max size - 나열할 파일의 최대 크기(바이트 단위). 이보다 큰 파일은 나열되지 않습니다. 메모리 접미사를 사용할 수 있습니다.
- min age - 나열할 디렉터리 항목의 최소 경과 시간(초 단위). 이보다 최근 항목은 나열되지 않습니다. 시간 접미사를 사용할 수 있습니다.
- max age - 나열할 디렉터리 항목의 최대 경과 시간(초 단위). 이 시간 이상 오래된 항목은 나열되지 않습니다(수정 시간 기준). 시간 접미사를 사용할 수 있습니다.
- regex excl dir - 제외할 디렉터리의 이름 패턴을 설명하는 정규 표현식.
해당 디렉터리의 모든 내용이 제외됩니다(
regex excl과 대조적임)
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 환경 변수(예: %APP_HOME%, $HOME, %TEMP%)는 지원되지 않습니다;
- 의사 디렉터리 "." 및 ".."은 나열되지 않습니다;
- 디렉터리를 탐색할 때 심볼릭 링크는 따라가지 않습니다;
- 항목 목록을 생성할 때
regex incl과regex excl은 파일과 디렉터리에 모두 적용되지만, 탐색할 하위 디렉터리를 선택할 때는 무시됩니다(regex incl이 "(?i)^.+\.zip$"이고max depth가 설정되지 않은 경우 모든 하위 디렉터리를 탐색하지만 zip 유형의 파일만 계산됨). - 실행 시간은 에이전트 구성의 timeout 값으로 제한됩니다. 큰 디렉터리를 탐색하는 데 이보다 오래 걸릴 수 있으므로 데이터가 반환되지 않고 아이템이 지원되지 않는 상태가 됩니다. 부분 목록은 반환되지 않습니다.
- 크기로 필터링할 때는 일반 파일만 의미 있는 크기를 갖습니다.
Linux와 BSD에서는 디렉터리도 0이 아닌 크기(일반적으로 수 Kb)를 갖습니다.
장치 크기는 0입니다. 예를 들어 /dev/sda1의 크기는 해당 파티션의 크기를 반영하지 않습니다.
따라서
min size와max size를 사용할 때는 예상치 못한 결과를 피하도록types incl을 "file"로 지정하는 것이 좋습니다.
예:
vfs.dir.get[/dev] #retrieves the device list in /dev (Linux)
vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #retrieves the file list in a temporary directory
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]
디렉터리 크기(바이트 단위)입니다.
반환값: 정수.
지원 플랫폼: Linux, Windows.
이 아이템은 다른 UNIX 계열 플랫폼에서도 작동할 수 있습니다.
매개변수:
- dir - 디렉터리의 절대 경로;
- regex incl - 포함할 엔터티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 설명하는 정규 표현식; 비어 있으면 모두 포함(기본값);
- regex excl - 제외할 엔터티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 설명하는 정규 표현식; 비어 있으면 아무것도 제외하지 않음(기본값);
- mode - 가능한 값: apparent (기본값) - 디스크 사용량 대신 파일의 겉보기 크기를 가져옴(
du -sb dir처럼 동작), disk - 디스크 사용량을 가져옴(du -s -B1 dir처럼 동작).du명령어와 달리 vfs.dir.size 아이템은 디렉터리 크기를 계산할 때 숨김 파일을 포함합니다(dir 내에서du -sb .[^.]* *처럼 동작). - max depth - 탐색할 하위 디렉터리의 최대 깊이: -1 (기본값) - 제한 없음, 0 - 하위 디렉터리로 내려가지 않음.
- regex excl dir - 제외할 디렉터리의 이름 패턴을 설명하는 정규 표현식.
해당 디렉터리의 모든 내용이 제외됩니다(
regex excl과 대조적임)
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- zabbix 사용자에게 최소한 읽기 권한이 있는 디렉터리만 계산됩니다. 읽기 권한만 있는 디렉터리는 디렉터리 자체의 크기만 계산됩니다. 읽기 및 실행 권한이 있는 디렉터리는 내용을 포함하여 계산됩니다.
- 대용량 디렉터리 또는 느린 드라이브에서는 에이전트 및 서버/프록시 구성 파일의 Timeout 설정으로 인해 이 아이템의 시간이 초과될 수 있습니다. 필요에 따라 timeout 값을 늘리십시오.
- 파일 크기 제한은 대용량 파일 지원에 따라 달라집니다.
예:
vfs.dir.size[/tmp,log] #calculates the size of all files in /tmp containing 'log' in their names
vfs.dir.size[/tmp,log,^.+\.old$] #calculates the size of all files in /tmp containing 'log' in their names, excluding files with names ending with '.old'
vfs.file.cksum[file,<mode>]
UNIX cksum 알고리즘으로 계산한 파일 체크섬입니다.
반환값: mode가 crc32이면 정수, mode가 md5, sha256이면 문자열.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- mode - crc32 (기본값), md5 또는 sha256.
설명:
예:
vfs.file.cksum[/etc/passwd]
반환값의 예(각각 crc32/md5/sha256):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]
파일의 내용을 가져옵니다7.
반환값: 텍스트.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- encoding - 코드 페이지 식별자.
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 반환값은 16MB로 제한됩니다(잘리는 후행 공백 포함). 데이터베이스 제한도 적용됩니다;
- 파일이 비어 있거나 LF/CR 문자만 포함하면 빈 문자열이 반환됩니다;
- 바이트 순서 표시(BOM)는 출력에서 제외됩니다.
예:
vfs.file.contents[/etc/passwd]
vfs.file.exists[file,<types incl>,<types excl>]
파일이 존재하는지 확인합니다.
반환값: 0 - 찾을 수 없음; 1 - 지정된 유형의 파일이 존재함.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- types incl - 포함할 파일 유형 목록, 가능한 값: file (일반 파일, 기본값(types_excl이 설정되지 않은 경우)), dir (디렉터리), sym (심볼릭 링크), sock (소켓), bdev (블록 장치), cdev (문자 장치), fifo (FIFO), dev ("bdev,cdev"와 동의어), all (언급된 모든 유형, types_excl이 설정된 경우의 기본값).
- types excl - 제외할 파일 유형 목록, 가능한 값은 types_incl 참조(기본적으로 제외되는 유형 없음)
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 여러 유형은 쉼표로 구분하고 전체 집합을 따옴표 ""로 묶어야 합니다;
- 동일한 유형이 <types_incl>과 <types_excl>에 모두 있으면 해당 유형의 파일은 제외됩니다;
- 파일 크기 제한은 대용량 파일 지원에 따라 달라집니다.
예:
vfs.file.exists[/tmp/application.pid]
vfs.file.exists[/tmp/application.pid,"file,dir,sym"]
vfs.file.exists[/tmp/application_dir,dir]
vfs.file.get[file]
파일에 대한 정보를 반환합니다.
반환값: JSON 객체.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- UNIX 계열 시스템에서 지원되는 파일 유형: 일반 파일, 디렉터리, 심볼릭 링크, 소켓, 블록 장치, 문자 장치, FIFO.
- 파일 크기 제한은 대용량 파일 지원에 따라 달라집니다.
예:
vfs.file.get[/etc/passwd] #return a JSON with information about the /etc/passwd file (type, user, permissions, SID, uid etc)
vfs.file.md5sum[file]
파일의 MD5 체크섬입니다.
반환값: 문자열(파일의 MD5 해시).
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로
설명:
예:
vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]
반환값의 예:
b5052decb577e0fffd622d6ddc017e82
vfs.file.owner[file,<ownertype>,<resulttype>]
파일의 소유자를 조회합니다.
반환 값: 문자열.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- ownertype - user(기본값) 또는 group(Unix만 해당);
- resulttype - name(기본값) 또는 id; id인 경우 Unix에서는 uid/gid를, Windows에서는 SID를 반환합니다.
설명:
예:
vfs.file.owner[/tmp/zabbix_server.log] #return the file owner of /tmp/zabbix_server.log
vfs.file.owner[/tmp/zabbix_server.log,,id] #return the file owner ID of /tmp/zabbix_server.log
vfs.file.permissions[file]
UNIX 권한을 나타내는 8진수가 포함된 4자리 문자열을 반환합니다.
반환 값: 문자열.
지원 플랫폼: Linux.
다른 UNIX 계열 플랫폼에서도 이 아이템이 작동할 수 있습니다.
매개변수:
- file - 파일의 전체 경로
파일 크기 제한은 대용량 파일 지원 여부에 따라 달라집니다.
예:
vfs.file.permissions[/etc/passwd] #return permissions of /etc/passwd, for example, '0644'
vfs.file.regexp[file,regexp,<encoding>,<start line>,<end line>,<output>]
파일에서 문자열을 조회합니다7.
반환 값: 일치하는 문자열이 포함된 줄 또는 선택적 output 매개변수로 지정한 값.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- encoding - 코드 페이지 식별자;
- start line - 검색을 시작할 첫 번째 줄의 번호(기본값은 파일의 첫 번째 줄);
- end line - 검색할 마지막 줄의 번호(기본값은 파일의 마지막 줄);
- output - 선택적 출력 형식 템플릿. \0 이스케이프 시퀀스는 일치하는 텍스트 부분(일치가 시작되는 첫 문자부터 일치가 끝나는 문자까지)으로 대체되며, \N(N=1...9) 이스케이프 시퀀스는 N번째 일치 그룹으로 대체됩니다(N이 캡처된 그룹 수를 초과하면 빈 문자열로 대체).
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 파일 크기 제한은 대용량 파일 지원 여부에 따라 달라집니다.
- 처음 일치하는 줄만 반환됩니다;
- 표현식과 일치하는 줄이 없으면 빈 문자열이 반환됩니다;
- 바이트 순서 표시(BOM)는 출력에서 제외됩니다;
output매개변수를 사용한 콘텐츠 추출은 에이전트에서 수행됩니다.
예:
vfs.file.regexp[/etc/passwd,zabbix]
vfs.file.regexp[/path/to/some/file,"([0-9]+)$",,3,5,\1]
vfs.file.regexp[/etc/passwd,"^zabbix:.:([0-9]+)",,,,\1] → getting the ID of user *zabbix*
vfs.file.regmatch[file,regexp,<encoding>,<start line>,<end line>]
파일에서 문자열을 찾습니다7.
반환 값: 0 - 일치 항목을 찾지 못함; 1 - 찾음.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- encoding - 코드 페이지 식별자;
- start line - 검색을 시작할 첫 번째 줄의 번호(기본값은 파일의 첫 번째 줄);
- end line - 검색할 마지막 줄의 번호(기본값은 파일의 마지막 줄).
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 파일 크기 제한은 대용량 파일 지원 여부에 따라 달라집니다.
- 바이트 순서 표시(BOM)는 무시됩니다.
예:
vfs.file.regmatch[/var/log/app.log,error]
vfs.file.size[file,<mode>]
파일 크기(바이트 단위).
반환 값: 정수.
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- mode - 가능한 값: bytes(기본값) 또는 lines(빈 줄도 계산).
설명:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다;
- 사용자 zabbix에게 파일 읽기 권한이 있어야 합니다;
- 파일 크기 제한은 대용량 파일 지원 여부에 따라 달라집니다.
예:
vfs.file.size[/var/log/syslog]
vfs.file.time[file,<mode>]
파일 시간 정보.
반환 값: 정수(Unix 타임스탬프).
지원 플랫폼을 참조하세요.
매개변수:
- file - 파일의 전체 경로;
- mode - 가능한 값:
modify(기본값) - 파일 콘텐츠를 마지막으로 수정한 시간,
access - 파일을 마지막으로 읽은 시간,
change - 파일 속성을 마지막으로 변경한 시간
설명:
예:
vfs.file.time[/etc/passwd,modify]
vfs.fs.discovery
마운트된 파일 시스템과 해당 유형 및 마운트 옵션의 목록입니다.
로우레벨 디스커버리에 사용됩니다.
반환 값: JSON 객체.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
vfs.fs.get
마운트된 파일 시스템과 해당 유형, 사용 가능한 디스크 공간, inode 통계 및 마운트 옵션의 목록입니다.
로우레벨 디스커버리에 사용할 수 있습니다.
반환 값: JSON 객체.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
설명:
- 동적 inode를 사용하는 파일 시스템(예: btrfs)처럼 inode 수가 0인 파일 시스템도 보고됩니다.
- Zabbix 에이전트 사용자에게 마운트 지점 경로의 모든 디렉터리에 대한 탐색 권한이 있는 경우에만 사용 가능한 디스크 공간과 inode 통계가 반환되며, 그렇지 않으면 해당 파일 시스템은 출력에서 제외됩니다.
- 관련 항목: 마운트된 파일 시스템 디스커버리.
vfs.fs.inode[fs,<mode>]
inode의 개수 또는 백분율.
반환 값: 개수인 경우 정수; 백분율인 경우 실수.
지원 플랫폼을 참조하세요.
매개변수:
- fs - 파일 시스템;
- mode - 가능한 값: total(기본값), free, used, pfree(여유 공간, 백분율) 또는 pused(사용 공간, 백분율).
동적 inode를 사용하는 파일 시스템(예: btrfs)처럼 inode 수가 0이면 pfree/pused 값은 각각 "100"과 "0"으로 보고됩니다.
예:
vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<mode>]
바이트 단위 또는 전체 대비 백분율로 나타낸 디스크 공간.
반환 값: 바이트인 경우 정수; 백분율인 경우 실수.
지원 플랫폼을 참조하세요.
매개변수:
- fs - 파일 시스템;
- mode - 가능한 값: total(기본값), free, used, pfree(여유 공간, 백분율) 또는 pused(사용 공간, 백분율).
설명:
- 파일 시스템이 마운트되지 않은 경우 마운트 지점이 위치한 로컬 파일 시스템의 크기를 반환합니다;
- 파일 시스템의 예약 공간은 계산에 포함되며 free 모드를 사용할 때 여유 공간에는 포함되지 않습니다.
예:
vfs.fs.size[/tmp,free]
vm.memory.size[<mode>]
바이트 단위 또는 전체 대비 백분율로 나타낸 메모리 크기.
반환 값: 바이트인 경우 정수; 백분율인 경우 실수.
지원 플랫폼을 참조하세요.
매개변수:
- mode - 가능한 값: total(기본값), active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired, used, pused(사용, 백분율), available 또는 pavailable(사용 가능, 백분율).
설명:
- 이 아이템은 다음 세 범주의 매개변수를 허용합니다:
- total - 전체 메모리 양;
- 플랫폼별 메모리 유형: active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired;
- 사용 중이거나 사용 가능한 메모리 양에 대한 사용자 수준 추정치: used, pused, available, pavailable;
- active 모드 매개변수는 FreeBSD, HP-UX, MacOS X, OpenBSD, NetBSD에서만 지원됩니다;
- anon, exec, file 모드 매개변수는 NetBSD에서만 지원됩니다;
- buffers 모드 매개변수는 Linux, FreeBSD, OpenBSD, NetBSD에서만 지원됩니다;
- cached 모드 매개변수는 Linux, FreeBSD, AIX, OpenBSD, NetBSD에서만 지원됩니다;
- inactive, wired 모드 매개변수는 FreeBSD, MacOS X, OpenBSD, NetBSD에서만 지원됩니다;
- pinned 모드 매개변수는 AIX에서만 지원됩니다;
- shared 모드 매개변수는 Linux 2.4, FreeBSD, OpenBSD, NetBSD에서만 지원됩니다;
- 이 아이템의 추가 세부 정보도 참조하세요.
예:
vm.memory.size[pavailable]
web.page.get[host,<path>,<port>]
웹 페이지의 콘텐츠를 가져옵니다.
반환 값: 웹 페이지 소스를 텍스트로 반환(헤더 포함).
지원 플랫폼을 참조하세요.
매개변수:
- host - 호스트 이름 또는 URL(
scheme://host:port/path형식이며 host만 필수). 허용되는 URL 스킴: http, https4. 스킴을 생략하면 http로 처리됩니다. URL을 지정한 경우path와port는 비어 있어야 합니다. 인증이 필요한 서버에 연결할 때 사용자 이름/비밀번호를 지정하는 것(예:http://user:[email protected])은 cURL 지원이 있는 경우에만 가능합니다4. 호스트 이름에서 Punycode가 지원됩니다. - path - HTML 문서의 경로(기본값은 /);
- port - 포트 번호(HTTP의 기본값은 80)
설명:
host에 지정된 리소스가 존재하지 않거나 사용할 수 없으면 이 아이템은 지원되지 않는 상태가 됩니다;host에는 호스트 이름, 도메인 이름, IPv4 또는 IPv6 주소를 사용할 수 있습니다. 단, IPv6 주소를 사용하려면 IPv6 지원을 활성화하여 Zabbix 에이전트를 컴파일해야 합니다.
예:
web.page.get[www.example.com,index.php,80]
web.page.get[https://www.example.com]
web.page.get[https://blog.example.com/?s=zabbix]
web.page.get[localhost:80]
web.page.get["[::1]/server-status"]
web.page.perf[host,<path>,<port>]
전체 웹 페이지의 로딩 시간(초 단위).
반환 값: 실수.
지원 플랫폼을 참조하세요.
매개변수:
- host - 호스트 이름 또는 URL(
scheme://host:port/path형식이며 host만 필수). 허용되는 URL 스킴: http, https4. 스킴을 생략하면 http로 처리됩니다. URL을 지정한 경우path와port는 비어 있어야 합니다. 인증이 필요한 서버에 연결할 때 사용자 이름/비밀번호를 지정하는 것(예:http://user:[email protected])은 cURL 지원이 있는 경우에만 가능합니다4. 호스트 이름에서 Punycode가 지원됩니다. - path - HTML 문서의 경로(기본값은 /);
- port - 포트 번호(HTTP의 기본값은 80)
설명:
host에 지정된 리소스가 존재하지 않거나 사용할 수 없으면 이 아이템은 지원되지 않는 상태가 됩니다;host에는 호스트 이름, 도메인 이름, IPv4 또는 IPv6 주소를 사용할 수 있습니다. 단, IPv6 주소를 사용하려면 IPv6 지원을 활성화하여 Zabbix 에이전트를 컴파일해야 합니다.
예:
web.page.perf[www.example.com,index.php,80]
web.page.perf[https://www.example.com]
web.page.regexp[host,<path>,<port>,regexp,<length>,<output>]
웹 페이지에서 문자열을 찾습니다.
반환 값: 일치하는 문자열 또는 선택적 output 매개변수로 지정한 값.
지원 플랫폼을 참조하세요.
매개변수:
- host - 호스트 이름 또는 URL(
scheme://host:port/path형식이며 host만 필수). 허용되는 URL 스킴: http, https4. 스킴을 생략하면 http로 처리됩니다. URL을 지정한 경우path와port는 비어 있어야 합니다. 인증이 필요한 서버에 연결할 때 사용자 이름/비밀번호를 지정하는 것(예:http://user:[email protected])은 cURL 지원이 있는 경우에만 가능합니다4. 호스트 이름에서 Punycode가 지원됩니다. - path - HTML 문서의 경로(기본값은 /);
- port - 포트 번호(HTTP의 기본값은 80)
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- length - 반환할 최대 문자 수;
- output - 선택적 출력 형식 템플릿. \0 이스케이프 시퀀스는 일치하는 텍스트 부분(일치가 시작되는 첫 문자부터 일치가 끝나는 문자까지)으로 대체되며, \N(N=1...9) 이스케이프 시퀀스는 N번째 일치 그룹으로 대체됩니다(N이 캡처된 그룹 수를 초과하면 빈 문자열로 대체).
설명:
host에 지정된 리소스가 존재하지 않거나 사용할 수 없으면 이 아이템은 지원되지 않는 상태가 됩니다;host에는 호스트 이름, 도메인 이름, IPv4 또는 IPv6 주소를 사용할 수 있습니다. 단, IPv6 주소를 사용하려면 IPv6 지원을 활성화하여 Zabbix 에이전트를 컴파일해야 합니다.output매개변수를 사용한 콘텐츠 추출은 에이전트에서 수행됩니다.
예:
web.page.regexp[www.example.com,index.php,80,OK,2]
web.page.regexp[https://www.example.com,,,OK,2]
agent.hostmetadata
에이전트 호스트 메타데이터.
반환 값: 문자열.
지원 플랫폼을 참조하세요.
HostMetadata 또는 HostMetadataItem 매개변수의 값을 반환하며, 둘 다 정의되지 않은 경우 빈 문자열을 반환합니다.
agent.hostname
에이전트 호스트 이름입니다.
반환 값: 문자열.
지원 플랫폼을 참조하세요.
반환 값:
- 수동 검사인 경우 - 에이전트 구성 파일의 Hostname 매개변수에 나열된 첫 번째 호스트의 이름
- 활성 검사인 경우 - 현재 호스트 이름.
agent.ping
에이전트 가용성을 검사합니다.
반환 값: 없음 - 사용 불가; 1 - 사용 가능.
지원 플랫폼을 참조하세요.
호스트를 사용할 수 없는지 확인하려면 nodata() 트리거 함수를 사용하세요.
agent.variant
Zabbix 에이전트의 종류(Zabbix agent 또는 Zabbix agent 2)입니다.
반환 값: 1 - Zabbix agent; 2 - Zabbix agent 2.
지원 플랫폼을 참조하세요.
agent.version
Zabbix 에이전트의 버전입니다.
반환 값: 문자열.
지원 플랫폼을 참조하세요.
반환 값 예시:
6.0.3
zabbix.stats[<ip>,<port>]
Zabbix 서버 또는 프록시의 내부 메트릭 집합을 반환합니다.
ip와 port를 지정하면 원격 인스턴스에서 메트릭을 가져오고, 지정하지 않으면 로컬 인스턴스에서 가져옵니다.
반환 값: JSON 객체.
지원 플랫폼을 참조하세요.
매개변수:
- ip - 원격으로 조회할 서버/프록시의 IP/DNS/네트워크 마스크 목록(기본값은 127.0.0.1)
- port - 원격으로 조회할 서버/프록시의 포트(기본값은 10051)
설명:
- 이 아이템은 선별된 내부 메트릭 집합을 반환합니다. 자세한 내용은 Zabbix 통계 원격 모니터링을 참조하세요.
- 통계 요청은 대상 인스턴스의 서버/프록시 매개변수 'StatsAllowedIP'에 나열된 주소에서만 허용됩니다.
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
Zabbix 서버 또는 프록시에서 지연되어 큐에 들어간 모니터링 아이템 수를 반환합니다.
ip와 port를 지정하면 원격 인스턴스에서 메트릭을 가져오고, 지정하지 않으면 로컬 인스턴스에서 가져옵니다.
반환 값: JSON 객체.
지원 플랫폼을 참조하세요.
매개변수:
- ip - 원격으로 조회할 서버/프록시의 IP/DNS/네트워크 마스크 목록(기본값은 127.0.0.1)
- port - 원격으로 조회할 서버/프록시의 포트(기본값은 10051)
- queue - 상수(그대로 사용)
- from - 최소 지연 시간(기본값은 6초)
- to - 최대 지연 시간(기본값은 무한대)
통계 요청은 대상 인스턴스의 서버/프록시 매개변수 'StatsAllowedIP'에 나열된 주소에서만 허용됩니다.
각주
1Linux 관련 참고 사항입니다. Zabbix agent에는 /proc 파일 시스템에 대한 읽기 전용 접근 권한이 있어야 합니다. www.grsecurity.org의 커널 패치는 권한이 없는 사용자의 접근 권한을 제한합니다.
2 vfs.dev.read[], vfs.dev.write[]: 아이템 값에 3시간 넘게 접근하지 않으면 Zabbix agent가 "오래된" 장치 연결을 종료합니다.
경로가 동적으로 변경되는 장치가 시스템에 있거나 장치를 수동으로 제거한 경우 이런 일이 발생할 수 있습니다.
또한 이 아이템들은 갱신 간격을 3시간 이상으로 설정하면 항상 '0'을 반환합니다.
3 vfs.dev.read[], vfs.dev.write[]: 첫 번째 매개변수에 기본값 all을 사용하면 이 키는 sda, sdb 같은 모든 블록 장치와 해당 파티션(sda1, sda2, sdb3...), 이러한 블록 장치/파티션을 기반으로 하는 다중 장치(MD raid), 그리고 이러한 블록 장치/파티션을 기반으로 하는 논리 볼륨(LVM)을 포함한 요약 통계를 반환합니다.
이 경우 반환 값은 절대값이 아니라 상대값(시간에 따라 변하는 값)으로만 간주해야 합니다.
4 SSL (HTTPS)은 에이전트가 cURL 지원을 포함하여 컴파일된 경우에만 지원됩니다. 그렇지 않으면 아이템이 지원되지 않는 상태로 전환됩니다.
5 Solaris 10 6/06 이하의 Solaris 시스템에서는 바이트, 오류 및 사용률 통계가 커널에 저장되거나 커널에서 보고되지 않으므로 루프백 인터페이스의 bytes 및 errors 값이 지원되지 않습니다.
그러나 net-snmp를 통해 Solaris 시스템을 모니터링하면 값이 반환될 수 있습니다. net-snmp에는 1997년까지 거슬러 올라가는 cmu-snmp의 레거시 코드가 포함되어 있는데, 이 코드는 인터페이스 통계에서 바이트 값을 읽지 못하면 루프백 인터페이스에 존재하는 패킷 카운터에 임의의 값 308을 곱해 반환합니다.
이는 패킷의 평균 길이가 308옥텟이라고 가정한 것으로, Solaris 시스템에서 루프백 인터페이스의 MTU 제한이 8892바이트라는 점을 고려하면 매우 거친 추정입니다.
이 값들이 정확하거나 실제 값에 가깝다고 가정해서는 안 됩니다.
이 값들은 어림값입니다.
Zabbix agent는 어떤 추정도 하지 않지만 net-snmp는 이러한 필드의 값을 반환합니다.
6 Solaris에서 /proc/pid/psinfo로 가져온 명령줄은 80바이트로 제한되며 프로세스가 시작될 당시의 명령줄을 포함합니다.
7 vfs.file.contents[], vfs.file.regexp[], vfs.file.regmatch[] 아이템을 사용하여 파일 내용을 가져올 수 있습니다.
민감한 정보가 있는 특정 파일에 대한 접근을 제한하려면 해당 파일을 볼 권한이 없는 사용자로 Zabbix agent를 실행하세요.
명령줄 유틸리티와 함께 사용
명령줄에서 zabbix_agentd 또는 zabbix_get으로 아이템 키를 테스트하거나 사용할 때는 셸 구문도 고려해야 합니다.
예를 들어 키의 특정 매개변수를 큰따옴표로 묶어야 한다면 큰따옴표를 명시적으로 이스케이프해야 합니다. 그렇지 않으면 셸이 큰따옴표를 특수 문자로 처리해 제거하므로 Zabbix 유틸리티에 전달되지 않습니다.
예시:
zabbix_agentd -t 'vfs.dir.count[/var/log,,,"file,dir",,0]'
zabbix_agentd -t vfs.dir.count[/var/log,,,\"file,dir\",,0]
인코딩 설정
수집된 데이터가 손상되지 않도록 encoding 매개변수에 검사(예: 'vfs.file.contents') 처리에 적합한 인코딩을 지정할 수 있습니다.
지원되는 인코딩(코드 페이지 식별자) 목록은 libiconv(GNU 프로젝트) 문서 또는 Microsoft Windows SDK의 "코드 페이지 식별자" 문서에서 확인할 수 있습니다.
Microsoft는 일부 코드 페이지를 "관리형 애플리케이션에서만 사용 가능"으로 표시하기도 합니다. 즉, .NET 런타임을 통해서만 노출되고 네이티브 Win32 API에서는 사용할 수 없습니다. Zabbix agent는 자체 인코딩 변환 로직을 구현하므로 네이티브 Windows 함수에서 제공하지 않는 코드 페이지도 지원합니다.
encoding 매개변수에 인코딩을 지정하지 않으면 다음 판별 전략이 적용됩니다.
- 인코딩을 지정하지 않았거나 빈 문자열이면 UTF-8로 간주하고 데이터를 "있는 그대로" 처리합니다.
- BOM 분석 - 'vfs.file.contents', 'vfs.file.regexp', 'vfs.file.regmatch' 아이템에 적용됩니다. 파일 시작 부분의 바이트 순서 표시(BOM)를 사용하여 올바른 인코딩 판별을 시도합니다. BOM이 없으면 표준 판별 방식(위 내용 참조)이 대신 적용됩니다.
에이전트 아이템 문제 해결
수동 검사에서는 에이전트에 대한 서버 요청이 먼저 시간 초과되어 아이템이 값을 받지 못하는 일을 방지하려면 다음 사항에 유의해야 합니다.