Zabbix 에이전트
개요
이 섹션에서는 데이터 수집을 위해 Zabbix agent와의 통신을 사용하는 아이템 키에 대한 세부 정보를 제공합니다.
수동(passive) 및 능동(active) agent 체크가 있습니다. 아이템을 구성할 때 필요한 유형을 선택할 수 있습니다:
- Zabbix agent - 수동 체크용
- Zabbix agent (active) - 능동 체크용
Zabbix agent가 지원하는 모든 아이템 키는 신세대 Zabbix agent 2에서도 지원된다는 점에 유의하세요. agent 2에서만 사용할 수 있는 추가 아이템 키를 참고하세요.
지원되는 아이템 키
Zabbix agent와 함께 사용할 수 있는 아이템 키는 아래에 나열되어 있습니다.
아이템 키는 파라미터와 추가 정보 없이 나열되어 있습니다. 전체 세부 정보를 보려면 아이템 키를 클릭하세요.
| 아이템 키 | 설명 | 아이템 그룹 |
|---|---|---|
| kernel.maxfiles | OS가 지원하는 최대 열린 파일 수. | Kernel |
| kernel.maxproc | OS가 지원하는 최대 프로세스 수. | ^ |
| kernel.openfiles | 현재 열려 있는 파일 디스크립터 수. | ^ |
| log | 로그 파일 모니터링. | 로그 모니터링 |
| log.count | 모니터링되는 로그 파일에서 일치한 줄의 수. | ^ |
| logrt | 로테이션되는 로그 파일 모니터링. | ^ |
| logrt.count | 로테이션되는 모니터링 로그 파일에서 일치한 줄의 수. | ^ |
| modbus.get | Modbus 데이터를 읽습니다. | Modbus |
| net.dns | DNS 서비스의 상태를 확인합니다. | Network |
| net.dns.perf | DNS 서비스의 성능을 확인합니다. | ^ |
| net.dns.record | DNS 쿼리를 수행합니다. | ^ |
| net.if.collisions | 윈도우 초과 충돌(out-of-window 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 사용률(퍼센트). | Processes |
| proc.get | OS 프로세스 목록과 해당 파라미터. | ^ |
| proc.mem | 프로세스가 사용하는 메모리(바이트). | ^ |
| proc.num | 프로세스 수. | ^ |
| sensor | 하드웨어 센서 값. | Sensors |
| system.boottime | 시스템 부팅 시간. | System |
| 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 | 블록 장치 목록과 유형. | Virtual file systems |
| 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진수 4자리 문자열을 반환합니다. | ^ |
| 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 | 메모리 크기(바이트 또는 전체 대비 퍼센트). | Virtual memory |
| web.page.get | 웹 페이지의 내용을 가져옵니다. | Web monitoring |
| web.page.perf | 전체 웹 페이지의 로딩 시간. | ^ |
| web.page.regexp | 웹 페이지에서 문자열을 찾습니다. | ^ |
| agent.hostmetadata | agent 호스트 메타데이터. | Zabbix |
| agent.hostname | agent 호스트 이름. | ^ |
| agent.ping | agent 가용성 확인. | ^ |
| agent.variant | Zabbix agent의 변형(Zabbix agent 또는 Zabbix agent 2). | ^ |
| agent.version | Zabbix agent의 버전. | ^ |
| zabbix.stats | Zabbix 서버 또는 프록시의 내부 메트릭 집합을 반환합니다. ip와 port가 지정된 경우 원격 인스턴스에서 메트릭을 가져오며, 그렇지 않으면 로컬 인스턴스에서 가져옵니다. |
^ |
| zabbix.stats (queue) | Zabbix 서버 또는 프록시에서 지연된 대기열 내 모니터링 아이템 수를 반환합니다. ip와 port가 지정된 경우 원격 인스턴스에서 메트릭을 가져오며, 그렇지 않으면 로컬 인스턴스에서 가져옵니다. |
^ |
지원되는 플랫폼
아이템 상세 정보에 다르게 명시되어 있지 않은 한, agent 아이템(및 모든 파라미터)은 다음에서 지원됩니다:
- Linux
- FreeBSD
- Solaris
- HP-UX
- AIX
- MacOS X
- OpenBSD
- NetBSD
많은 agent 아이템은 Windows에서도 지원됩니다. 자세한 내용은 Windows agent 아이템 페이지를 참고하세요.
아이템 키 상세 정보
꺾쇠괄호가 없는 파라미터는 필수입니다. 꺾쇠괄호 < >로 표시된 파라미터는 선택 사항입니다.
kernel.maxfiles
OS에서 지원하는 최대 열린 파일 수.
반환 값: 정수(Integer).
지원 플랫폼: Linux, FreeBSD, MacOS X, OpenBSD, NetBSD.
kernel.maxproc
OS에서 지원하는 최대 프로세스 수.
반환 값: 정수(Integer).
지원 플랫폼: Linux 2.6 이상, FreeBSD, Solaris, MacOS X, OpenBSD, NetBSD.
kernel.openfiles
현재 열려 있는 파일 디스크립터 수.
반환 값: 정수(Integer).
지원 플랫폼: Linux (이 아이템은 다른 UNIX 계열 플랫폼에서도 동작할 수 있음).
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
로그 파일 모니터링.
반환 값: 로그(Log).
지원 플랫폼 참조.
파라미터:
- file - 로그 파일의 전체 경로와 이름;
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- encoding - 코드 페이지 식별자;
- maxlines - 에이전트가 초당 Zabbix 서버 또는 프록시로 전송할 새 줄의 최대 수.
이 파라미터는 zabbix_agentd.conf의 'MaxLinesPerSecond' 값을 재정의함;
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜀 (새로 생성된 아이템에만 영향);
- output - 선택적 출력 포맷 템플릿.
\0 이스케이프 시퀀스는 일치한 텍스트 부분(일치가 시작하는 첫 문자부터 끝나는 문자까지)으로 대체되며, \N(N=1...9) 이스케이프 시퀀스는 N번째로 캡처된 그룹으로 대체됨(N이 캡처된 그룹 수를 초과하면 빈 문자열);
- maxdelay - 최대 지연 시간(초).
타입: float.
값: 0 - (기본값) 로그 파일 줄을 무시하지 않음; > 0.0 - "maxdelay"초 이내에 가장 최근 줄을 분석하기 위해 이전 줄을 무시함.
사용하기 전에 maxdelay 관련 참고사항을 읽으세요!
- options - 추가 옵션:
mtime-noreread - 고유하지 않은 레코드, 파일 크기가 변경될 때만 다시 읽음(수정 시간 변경은 무시). (이 파라미터는 5.0.2부터 더 이상 사용되지 않음. mtime이 이제 무시되기 때문.) - persistent dir(Unix 시스템의 zabbix_agentd에서만 해당; Zabbix agent 2에서는 지원되지 않음) - 영속 파일을 저장할 디렉터리의 절대 경로. 영속 파일에 대한 추가 참고사항도 확인하세요.
참고사항:
- 이 아이템은 액티브 체크로 구성해야 합니다.
- 파일이 없거나 권한이 접근을 허용하지 않으면 아이템이 지원되지 않음(unsupported) 상태가 됩니다.
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] #이 아이템은 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 로그 레코드와 일치하여 '6080'만 서버로 전송합니다. 숫자 값이 전송되므로 이 아이템의 "정보 유형"을 "숫자(부호 없음)"으로 설정할 수 있고, 그래프나 트리거 등에서 값을 사용할 수 있습니다.
서버로 전송하기 전에 로그 레코드를 재작성하기 위해 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"] #이 아이템은 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 로그 레코드와 일치하여 수정된 레코드 "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08"를 서버로 전송합니다.
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
모니터링 중인 로그 파일에서 일치한 줄의 개수.
반환 값: 정수(Integer).
지원 플랫폼 참조.
파라미터:
- file - 로그 파일의 전체 경로와 이름;
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- encoding - 코드 페이지 식별자;
- maxproclines - 에이전트가 초당 분석할 새 줄의 최대 수(10000을 초과할 수 없음).
기본값은 zabbix_agentd.conf의 'MaxLinesPerSecond' * 10.
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜀(새로 생성된 아이템에만 영향).
- maxdelay - 최대 지연 시간(초).
타입: float.
값: 0 - (기본값) 로그 파일 줄을 무시하지 않음; > 0.0 - "maxdelay"초 이내에 가장 최근 줄을 분석하기 위해 이전 줄을 무시함.
사용하기 전에 maxdelay 관련 참고사항을 읽으세요!
- options - 추가 옵션:
mtime-noreread - 고유하지 않은 레코드, 파일 크기가 변경될 때만 다시 읽음(수정 시간 변경은 무시). (이 파라미터는 5.0.2부터 더 이상 사용되지 않음. mtime이 이제 무시되기 때문.) - persistent dir(Unix 시스템의 zabbix_agentd에서만 해당; Zabbix agent 2에서는 지원되지 않음) - 영속 파일을 저장할 디렉터리의 절대 경로. 영속 파일에 대한 추가 참고사항도 확인하세요.
참고사항:
- 이 아이템은 액티브 체크로 구성해야 합니다.
- 일치하는 줄은 에이전트의 마지막 로그 확인 이후 새로 추가된 줄에서 계산되며, 따라서 아이템 갱신 주기에 따라 달라집니다.
- 파일이 없거나 권한이 접근을 허용하지 않으면 아이템이 지원되지 않음(unsupported) 상태가 됩니다.
logrt[file regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>,<persistent dir>]
로테이션되는 로그 파일 모니터링.
반환 값: 로그(Log).
지원 플랫폼 참조.
파라미터:
- 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 - 최대 지연 시간(초).
타입: float.
값: 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"] #이 아이템은 "c:/dir1/dir2/dir3"에 있는, 파일 이름이 "filename"으로 시작하고 ".log"와 일치하는 확장자로 끝나는 로그 파일에서 데이터를 수집합니다.
logrt["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #이 아이템은 네트워크 공유 "//example.com/share/dir1/dir2/dir3"에 있는, 파일 이름이 "filename"으로 시작하고 ".log"와 일치하는 확장자로 끝나는 로그 파일에서 데이터를 수집합니다.
다른 시스템 예시:
logrt["/home/zabbix/logs/^logfile[0-9]{1,3}$",,,100] #이 아이템은 "logfile1"과 같은 파일과 일치합니다(".logfile1"과는 일치하지 않음).
logrt["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #이 아이템은 "logfile_abc_1" 또는 "logfile__001"과 같은 파일에서 데이터를 수집합니다.
로그 레코드에서 숫자를 추출하기 위해 output 파라미터를 사용하는 예시:
logrt[/app1/^test.*log$,"task run [0-9.]+ sec, processed ([0-9]+) records, [0-9]+ errors",,,,\1] #이 아이템은 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 로그 레코드와 일치하여 '6080'만 서버로 전송합니다. 숫자 값이 전송되므로 이 아이템의 "정보 유형"을 "숫자(부호 없음)"으로 설정할 수 있고, 그래프나 트리거 등에서 값을 사용할 수 있습니다.
서버로 전송하기 전에 로그 레코드를 재작성하기 위해 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"] #이 아이템은 "2015-11-13 10:08:26 task run 6.08 sec, processed 6080 records, 0 errors" 로그 레코드와 일치하여 수정된 레코드 "2015-11-13 10:08:26 RECORDS: 6080, ERRORS: 0, DURATION: 6.08"를 서버로 전송합니다.
logrt.count[file regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>,<persistent dir>]
로테이션되는 모니터링 중인 로그 파일에서 일치한 줄의 개수.
반환 값: 정수(Integer).
지원 플랫폼 참조.
파라미터:
- file regexp - 파일의 절대 경로이며, 파일 이름은 정규 표현식으로 지정.
정규 표현식은 파일 이름에만 적용되며 전체 이름과 일치할 필요는 없습니다(예: /path/to/agent는 zabbix_agentd.log와 일치함).
- regexp - 필요한 패턴을 설명하는 정규 표현식.
- encoding - 코드 페이지 식별자.
- maxproclines - 에이전트가 초당 분석할 새 줄의 최대 수(10000을 초과할 수 없음).
기본값은 zabbix_agentd.conf의 'MaxLinesPerSecond' * 10.
- mode - 가능한 값: all(기본값) 또는 skip - 이전 데이터 처리를 건너뜀(새로 생성된 아이템에만 영향).
- maxdelay - 최대 지연 시간(초).
타입: float.
값: 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"] #이 아이템은 "c:/dir1/dir2/dir3"에 있는 로그 파일에서 패턴 "pattern_to_match"의 일치 횟수를 셉니다.
logrt.count["//example.com/share/dir1/dir2/dir3\filename.*\.log","pattern_to_match"] #이 아이템은 네트워크 공유 "//example.com/share/dir1/dir2/dir3"에 있는 로그 파일에서 패턴 "pattern_to_match"의 일치 횟수를 셉니다.
다른 시스템 예시:
logrt.count["/home/zabbix/logs/.*","^logfile[0-9]{1,3}$",,100] #이 아이템은 "/home/zabbix/logs" 디렉터리의 로그 파일에서 패턴 "^logfile[0-9]{1,3}$"의 일치 횟수를 셉니다.
logrt.count["/home/user/^logfile_.*_[0-9]{1,3}$","pattern_to_match","UTF-8",100] #이 아이템은 "/home/user"에 있는 로그 파일에서 패턴 "pattern_to_match"의 발생 횟수를 셉니다.
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 서비스의 성능을 확인합니다.
반환 값: Float(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 인코딩된 이름을 대신 사용하세요.
- 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는 net.dns.get도 제공하며, 더 많은 레코드 유형과 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.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]
윈도우 외 충돌(out-of-window collisions)의 수.
반환 값: 정수(Integer).
지원 플랫폼: 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>]
네트워크 인터페이스의 수신 트래픽 통계.
반환 값: 정수(Integer).
지원 플랫폼: Linux, FreeBSD, Solaris^5^, 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 - 디바이스 드라이버가 수신한 멀티캐스트 프레임 수
참고사항:
- 초당 바이트 통계를 얻으려면 이 키를 Change per second 전처리 단계와 함께 사용할 수 있습니다.
- 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>]
네트워크 인터페이스의 송신 트래픽 통계.
반환 값: 정수(Integer).
지원 플랫폼: Linux, FreeBSD, Solaris^5^, 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 - 디바이스 드라이버가 전송한 압축 패킷 수
참고사항:
- 초당 바이트 통계를 얻으려면 이 키를 Change per second 전처리 단계와 함께 사용할 수 있습니다.
- 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>]
네트워크 인터페이스의 수신 및 송신 트래픽 통계의 합.
반환 값: 정수(Integer).
지원 플랫폼: Linux, FreeBSD, Solaris^5^, 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 - 디바이스 드라이버가 전송하거나 수신한 압축 패킷 수
참고사항:
- 초당 바이트 통계를 얻으려면 이 키를 Change per second 전처리 단계와 함께 사용할 수 있습니다.
- 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] #이 아이템은 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] #이 아이템은 TCP 45번 포트에서 FTP 서버의 가용성을 테스트하는 데 사용할 수 있습니다
net.tcp.service.perf[service,<ip>,<port>]
TCP 서비스의 성능을 확인합니다.
반환 값: Float(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] #이 아이템은 SSH 서버로부터의 초기 응답 속도를 테스트하는 데 사용할 수 있습니다
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
파라미터와 일치하는 TCP 소켓 수를 반환합니다.
반환 값: 정수(Integer).
지원 플랫폼: 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] #established 상태인 로컬 TCP 80번 포트로의 연결 수
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] #이 아이템은 UDP 45번 포트에서 NTP 서비스의 가용성을 테스트하는 데 사용할 수 있습니다
net.udp.service.perf[service,<ip>,<port>]
UDP 서비스의 성능을 확인합니다.
반환 값: Float(0 - 서비스 다운; 초 단위 - 서비스로부터 응답을 기다린 시간).
지원 플랫폼 참조.
파라미터:
- service - ntp(상세 정보 참조);
- ip - IP 주소 또는 DNS 이름(기본값은 127.0.0.1);
- port - 포트 번호(기본값은 표준 서비스 포트 번호가 사용됨).
예시:
net.udp.service.perf[ntp] #이 아이템은 NTP 서비스로부터의 응답 시간을 테스트하는 데 사용할 수 있습니다
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]
파라미터와 일치하는 UDP 소켓 수를 반환합니다.
반환 값: 정수(Integer).
지원 플랫폼: Linux, Windows.
파라미터:
- laddr - 로컬 IPv4/6 주소 또는 CIDR 서브넷;
- lport - 로컬 포트 번호 또는 서비스 이름;
- raddr - 원격 IPv4/6 주소 또는 CIDR 서브넷;
- rport - 원격 포트 번호 또는 서비스 이름;
- state - 연결 상태(established, unconn).
예시:
net.udp.socket.count[,,,,established] #연결된(established) 상태의 UDP 소켓 수를 반환합니다
proc.cpu.util[<name>,<user>,<type>,<cmdline>,<mode>,<zone>]
프로세스 CPU 사용률(퍼센트).
반환 값: Float.
지원 플랫폼: Linux, Solaris^6^.
파라미터:
- name - 프로세스 이름(기본값은 모든 프로세스);
- user - 사용자 이름(기본값은 모든 사용자);
- type - CPU 사용률 유형: total(기본값), user 또는 system;
- cmdline - 명령줄로 필터링(정규표현식임);
- mode - 데이터 수집 모드: avg1(기본값), avg5 또는 avg15;
- zone - 대상 존: current(기본값) 또는 all. 이 파라미터는 Solaris에서만 지원됩니다.
참고:
- 반환되는 값은 단일 CPU 코어 사용률 백분율을 기준으로 합니다. 예를 들어, 두 개의 코어를 완전히 사용하는 프로세스의 CPU 사용률은 200%입니다.
- 프로세스 CPU 사용률 데이터는 최대 1024개의 고유한(이름, 사용자, 명령줄 기준) 쿼리를 지원하는 수집기에 의해 수집됩니다. 최근 24시간 동안 접근하지 않은 쿼리는 수집기에서 제거됩니다.
zone파라미터를 current(또는 기본값)로 설정했는데, 에이전트가 존(zone)을 지원하지 않는 Solaris에서 컴파일되었지만 존을 지원하는 더 최신 Solaris에서 실행 중인 경우, 에이전트는 NOTSUPPORTED를 반환합니다(에이전트가 결과를 현재 존으로만 제한할 수 없기 때문입니다). 다만 이 경우 all은 지원됩니다.
예제:
proc.cpu.util[,root] #"root" 사용자로 실행 중인 모든 프로세스의 CPU 사용률
proc.cpu.util[zabbix_server,zabbix] #zabbix 사용자로 실행 중인 모든 zabbix_server 프로세스의 CPU 사용률
proc.get[<name>,<user>,<cmdline>,<mode>]
OS 프로세스 목록과 해당 파라미터.
로우레벨 디스커버리에 사용할 수 있습니다.
반환 값: JSON string.
지원 플랫폼: Linux, FreeBSD, Windows, OpenBSD, NetBSD.
파라미터:
- name - 프로세스 이름(기본값 모든 프로세스);
- user - 사용자 이름(기본값 모든 사용자);
- cmdline - 명령줄로 필터링(정규표현식임). 이 파라미터는 Windows에서 지원되지 않으며, 다른 플랫폼에서도 mode가 'summary'로 설정된 경우에는 지원되지 않습니다.
- mode - 가능한 값:
process(기본값), thread(NetBSD에서는 지원되지 않음), summary. 각 모드와 OS에 대해 반환되는 프로세스 파라미터 목록을 참조하세요.
참고:
- 값을 가져올 수 없는 경우(예: 프로세스가 이미 종료됨, 권한 부족, 시스템 호출 실패 등의 오류로 인해),
-1이 반환됩니다. name및cmdline파라미터로 프로세스를 선택하는 것에 대한 참고 사항을 확인하세요(Linux 전용).
예제:
proc.get[zabbix_server,zabbix,,process] #zabbix 사용자로 실행 중인 모든 zabbix_server 프로세스 목록, PID당 하나의 항목을 반환
proc.get[java,,,thread] #모든 Java 프로세스 목록, 스레드당 하나의 항목을 반환
proc.get[,zabbix,,summary] #zabbix 사용자로 실행 중인 각 유형별 프로세스에 대한 통합 데이터, 프로세스 이름당 하나의 항목을 반환
proc.mem[<name>,<user>,<mode>,<cmdline>,<memtype>]
프로세스가 사용하는 메모리(바이트 단위).
반환 값: Integer - mode가 max, min, sum인 경우; Float - mode가 avg인 경우
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD, NetBSD.
파라미터:
- name - 프로세스 이름(기본값은 모든 프로세스);
- user - 사용자 이름(기본값은 모든 사용자);
- mode - 가능한 값: avg, max, min 또는 sum(기본값);
- cmdline - 명령줄로 필터링(정규표현식임);
- memtype - 프로세스가 사용하는 메모리 유형
참고:
memtype파라미터는 Linux, FreeBSD, Solaris^6^, AIX에서만 지원됩니다.- 여러 프로세스가 공유 메모리를 사용하는 경우, 프로세스가 사용하는 메모리의 합계가 비현실적으로 큰 값으로 나타날 수 있습니다.
name및cmdline파라미터로 프로세스를 선택하는 것에 대한 참고 사항을 확인하세요(Linux 전용).
이 아이템을 명령줄에서 호출하고 명령줄 파라미터를 포함하는 경우(예: 에이전트 테스트 모드 사용:zabbix_agentd -t proc.mem[,,,apache2]), 에이전트 자신도 카운트에 포함되므로 프로세스 1개가 추가로 카운트됩니다.
예제:
proc.mem[,root] #"root" 사용자로 실행 중인 모든 프로세스가 사용하는 메모리
proc.mem[zabbix_server,zabbix] #zabbix 사용자로 실행 중인 모든 zabbix_server 프로세스가 사용하는 메모리
proc.mem[,oracle,max,oracleZABBIX] #명령줄에 oracleZABBIX를 포함하고 Oracle로 실행 중인 프로세스 중 메모리를 가장 많이 사용하는 프로세스의 메모리
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]
프로세스 수.
반환 값: Integer.
지원 플랫폼: Linux, FreeBSD, Solaris^6^, HP-UX, AIX, OpenBSD, NetBSD, Windows.
파라미터:
- name - 프로세스 이름(기본값은 모든 프로세스);
- user - 사용자 이름(기본값은 모든 사용자);
- state - 가능한 값:
all(기본값),
disk - 중단 불가능한 sleep 상태,
run - 실행 중,
sleep - 중단 가능한 sleep 상태,
trace - 정지됨,
zomb - 좀비; - cmdline - 명령줄로 필터링(정규표현식임);
- zone - 대상 존: current(기본값) 또는 all. 이 파라미터는 Solaris에서만 지원됩니다.
참고:
- disk 및 trace state 파라미터는 Linux, FreeBSD, OpenBSD, NetBSD에서만 지원됩니다.
- Windows에서는
name및user파라미터만 지원됩니다. - 이 아이템을 명령줄에서 호출하고 명령줄 파라미터를 포함하는 경우(예: 에이전트 테스트 모드 사용:
zabbix_agentd -t proc.num[,,,apache2]), 에이전트 자신도 카운트에 포함되므로 프로세스 1개가 추가로 카운트됩니다. zone파라미터를 current(또는 기본값)로 설정했는데, 에이전트가 존(zone)을 지원하지 않는 Solaris에서 컴파일되었지만 존을 지원하는 더 최신 Solaris에서 실행 중인 경우, 에이전트는 NOTSUPPORTED를 반환합니다(에이전트가 결과를 현재 존으로만 제한할 수 없기 때문입니다). 다만 이 경우 all은 지원됩니다.name및cmdline파라미터로 프로세스를 선택하는 것에 대한 참고 사항을 확인하세요(Linux 전용).
예제:
proc.num[,mysql] #mysql 사용자로 실행 중인 프로세스 수
proc.num[apache2,www-data] #www-data 사용자로 실행 중인 apache2 프로세스 수
proc.num[,oracle,sleep,oracleZABBIX] #명령줄에 oracleZABBIX를 포함하고 Oracle로 실행 중인 sleep 상태 프로세스 수
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 아이템에 대한 더 자세한 설명을 참조하세요.
- 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] #CPU 하나의 온도
sensor["cpu[0-2]$",temp,avg] #처음 세 개 CPU의 평균 온도
system.boottime
시스템 부팅 시각.
반환 값: Integer (Unix timestamp).
지원 플랫폼: Linux, FreeBSD, Solaris, MacOS X, OpenBSD, NetBSD.
system.cpu.discovery
감지된 CPU/CPU 코어 목록.
로우레벨 디스커버리에 사용됩니다.
반환 값: JSON string.
지원 플랫폼을 참조하세요.
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, spin(OpenBSD), 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
참고:
- 이 아이템 키는 SMBIOS 테이블의 가용 여부에 따라 달라집니다.
- sysfs에서 DMI 테이블을 읽으려 시도하며, sysfs 접근이 실패하면 메모리에서 직접 읽으려 시도합니다.
- 값이 sysfs 또는 메모리를 읽어 획득되므로 루트 권한이 필요합니다.
예제:
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>]
시스템 시각.
반환 값: Integer - type이 utc인 경우; String - type이 local인 경우.
지원 플랫폼을 참조하세요.
파라미터:
- type - 가능한 값: utc - (기본값) Epoch(1970년 1월 1일 00:00:00 UTC) 이후 경과 시간(초 단위) 또는 local - 'yyyy-mm-dd,hh:mm:ss.nnn,+hh:mm' 형식의 시각
Zabbix 에이전트에서는 패시브 체크로 사용해야 하며, Zabbix agent 2에서는 액티브 체크로 구성할 수 있습니다.
예제:
system.localtime[local] #이 키로 아이템을 만든 다음, *Clock* 대시보드 위젯에서 호스트 시각을 표시하는 데 사용
system.run[command,<mode>]
호스트에서 지정한 명령을 실행합니다.
반환 값: 명령 결과의 Text 또는 mode가 nowait인 경우 1(명령 결과와 무관하게).
지원 플랫폼을 참조하세요.
파라미터:
- command - 실행할 명령;
- mode - 가능한 값: wait - 실행이 끝날 때까지 대기(기본값) 또는 nowait - 대기하지 않음.
참고:
- 이 아이템은 기본적으로 비활성화되어 있습니다. 활성화하는 방법을 확인하세요.
- 이 아이템의 반환 값은 명령이 생성한 표준 출력과 표준 오류를 합친 것입니다. 종료 코드 검사는 수행되지 않습니다.
- 올바르게 처리되려면 명령의 반환 값이
text데이터 유형이어야 합니다. 빈 결과도 허용됩니다. - 반환 값은 16MB로 제한됩니다(잘려나가는 후행 공백 포함). 데이터베이스 제한도 적용됩니다.
- 참고: 명령 실행.
예제:
system.run[ls -l /] #루트 디렉터리의 상세 파일 목록을 반환
system.stat[resource,<type>]
시스템 통계.
반환 값: Integer 또는 float.
지원 플랫폼: AIX.
파라미터:
- ent - 이 파티션에 할당된 프로세서 유닛 수(float);
- kthr,<type> - 커널 스레드 상태 정보:
r - 실행 가능한 커널 스레드의 평균 개수(float)
b - 가상 메모리 관리자 대기열에 있는 커널 스레드의 평균 개수(float) - memory,<type> - 가상 및 실제 메모리 사용에 대한 정보:
avm - 활성 가상 페이지(integer)
fre - 프리 리스트 크기(integer) - page,<type> - 페이지 폴트 및 페이징 활동에 대한 정보:
fi - 초당 파일 page-in 수(float)
fo - 초당 파일 page-out 수(float)
pi - 페이징 스페이스로부터 페이징된 페이지 수(float)
po - 페이징 스페이스로 페이징된 페이지 수(float)
fr - 해제된 페이지 수(페이지 교체)(float)
sr - 페이지 교체 알고리즘에 의해 스캔된 페이지 수(float) - faults,<type> - 트랩 및 인터럽트 발생률:
in - 장치 인터럽트(float)
sy - 시스템 콜(float)
cs - 커널 스레드 컨텍스트 스위치(float) - cpu,<type> - 프로세서 시간 사용률의 세부 분류:
us - 사용자 시간(float)
sy - 시스템 시간(float)
id - 유휴 시간(float)
wa - 처리 중인 디스크/NFS I/O 요청이 있는 동안의 유휴 시간(float)
pc - 소비된 물리 프로세서 수(float)
ec - 소비된 할당 용량의 백분율(float)
lbusy - 사용자 및 시스템 수준에서 실행되는 동안 발생한 논리 프로세서 사용률의 백분율(float)
app - 공유 풀에서 사용 가능한 물리 프로세서 수(float) - disk,<type> - 디스크 통계:
bps - 초당 드라이브로 전송(읽기 또는 쓰기)된 데이터 양(바이트)(integer)
tps - 물리 디스크/테이프에 대해 발생한 초당 전송 횟수(float)
참고:
- 다음 아이템의 제한 사항을 참고하세요:
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
소프트웨어 아키텍처 정보.
반환 값: String.
지원 플랫폼을 참조하세요.
이 정보는 uname() 함수에서 획득됩니다.
예제:
system.sw.arch → i686
system.sw.os[<info>]
운영체제 정보.
반환 값: String.
지원 플랫폼: Linux, Windows.
파라미터:
- info - 가능한 값: full(기본값), short 또는 name
이 정보는 다음에서 획득됩니다(모든 배포판에 모든 파일과 옵션이 존재하는 것은 아님에 유의):
- Linux의
/proc/version(full); - Linux의
/proc/version_signature(short); - 이를 지원하는 Linux 시스템의
/etc/os-release또는/etc/issue.net에서의 PRETTY_NAME 파라미터(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 string.
지원 플랫폼: Linux, Windows.
system.sw.packages[<regexp>,<manager>,<format>]
설치된 패키지 목록.
반환 값: Text.
지원 플랫폼: 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 string.
지원 플랫폼: Linux.
파라미터:
- regexp - all(기본값) 또는 정규표현식;
- manager - all(기본값) 또는 패키지 매니저(가능한 값: rpm, dpkg, pkgtool, pacman 또는 portage).
참고:
- 이름이 주어진 정규 표현식과 일치하는 설치된 패키지에 대해 포맷되지 않은 JSON을 반환합니다.
- 출력은 각각 name, manager, version, size, architecture, buildtime, installtime 키를 포함하는 객체들의 배열입니다(자세히 보기).
system.swap.in[<device>,<type>]
스왑-인(장치에서 메모리로) 통계.
반환 값: Integer.
지원 플랫폼: 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) - device를 지정하지 않은 경우에만 pages가 동작함에 유의하세요.
- sectors type 파라미터는 Linux에서만 지원됩니다.
예제:
system.swap.in[,pages]
system.swap.out[<device>,<type>]
스왑-아웃(메모리에서 장치로) 통계.
반환 값: Integer.
지원 플랫폼: 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) - device를 지정하지 않은 경우에만 pages가 동작함에 유의하세요.
- sectors type 파라미터는 Linux에서만 지원됩니다.
예제:
system.swap.out[,pages]
system.swap.size[<device>,<type>]
스왑 공간 크기(바이트 단위) 또는 전체 대비 비율.
반환 값: Integer - 바이트 단위인 경우; Float - 백분율인 경우.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, OpenBSD, Windows.
파라미터:
- device - 스왑에 사용되는 디바이스 지정(FreeBSD 전용) 또는 all(기본값);
- type - 가능한 값: free(사용 가능한 스왑 공간, 기본값), pfree(사용 가능한 스왑 공간, 백분율), pused(사용된 스왑 공간, 백분율), total(전체 스왑 공간), 또는 used(사용된 스왑 공간).
참고:
- 스왑 크기가 0인 경우 Windows에서는 pfree, pused가 지원되지 않습니다.
- device를 지정하지 않으면 Zabbix agent는 스왑 디바이스(파일)만 고려하며 물리 메모리는 무시합니다.
예를 들어 Solaris 시스템에서
swap -s명령은 물리 메모리 일부와 스왑 디바이스를 포함합니다(swap -l과 다름).
예시:
system.swap.size[,pfree] → 사용 가능한 스왑 공간 비율
system.uname
시스템 식별 정보.
반환 값: String.
지원 플랫폼 참조.
참고:
- 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
시스템 업타임(초 단위).
반환 값: Integer.
지원 플랫폼: Linux, FreeBSD, Solaris, AIX, MacOS X, OpenBSD, NetBSD, Windows.
아이템 설정에서 읽기 쉬운 값을 얻으려면 s 또는 uptime 단위를 사용하세요.
system.users.num
로그인한 사용자 수.
반환 값: Integer.
지원 플랫폼 참조.
agent 측에서 값을 얻기 위해 who 명령을 사용합니다.
vfs.dev.discovery
블록 디바이스 목록과 그 유형.
저수준 디스커버리(low-level discovery)에 사용됩니다.
반환 값: JSON string.
지원 플랫폼: Linux.
vfs.dev.read[<device>,<type>,<mode>]
디스크 읽기 통계.
반환 값: type이 sectors, operations, bytes인 경우 Integer; type이 sps, ops, bps인 경우 Float.
지원 플랫폼: 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인 경우 Integer; type이 sps, ops, bps인 경우 Float.
지원 플랫폼: 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>]
디렉터리 엔트리 개수.
반환 값: Integer.
지원 플랫폼 참조.
파라미터:
- 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 유형 파일만 개수에 포함됩니다).- 실행 시간은 agent 설정의 timeout 값(3초)으로 제한됩니다. 큰 디렉터리 순회는 이보다 오래 걸릴 수 있으므로, 이 경우 데이터가 반환되지 않고 아이템이 지원되지 않음(unsupported) 상태가 됩니다. 부분적인 개수는 반환되지 않습니다.
- 크기로 필터링할 때는 일반 파일만 의미 있는 크기를 가집니다.
Linux와 BSD에서는 디렉터리도 0이 아닌 크기(일반적으로 몇 KB)를 가집니다.
디바이스는 크기가 0입니다. 예를 들어 /dev/sda1의 크기는 해당 파티션 크기를 반영하지 않습니다.
따라서
<min_size>와<max_size>를 사용할 때는 예기치 않은 결과를 피하기 위해<types_incl>을 "file"로 지정하는 것이 좋습니다.
예시:
vfs.dir.count[/dev] #/dev의 디바이스 수를 모니터링 (Linux)
vfs.dir.count["C:\Users\ADMINI~1\AppData\Local\Temp"] #임시 디렉터리의 파일 수를 모니터링
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 string.
지원 플랫폼 참조.
파라미터:
- 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 유형 파일만 개수에 포함됩니다).- 실행 시간은 agent 설정의 timeout 값으로 제한됩니다. 큰 디렉터리 순회는 이보다 오래 걸릴 수 있으므로, 이 경우 데이터가 반환되지 않고 아이템이 지원되지 않음(unsupported) 상태가 됩니다. 부분적인 목록은 반환되지 않습니다.
- 크기로 필터링할 때는 일반 파일만 의미 있는 크기를 가집니다.
Linux와 BSD에서는 디렉터리도 0이 아닌 크기(일반적으로 몇 KB)를 가집니다.
디바이스는 크기가 0입니다. 예를 들어 /dev/sda1의 크기는 해당 파티션 크기를 반영하지 않습니다.
따라서
min size와max size를 사용할 때는 예기치 않은 결과를 피하기 위해types incl을 "file"로 지정하는 것이 좋습니다.
예시:
vfs.dir.get[/dev] #/dev의 디바이스 목록을 가져옴 (Linux)
vfs.dir.get["C:\Users\ADMINI~1\AppData\Local\Temp"] #임시 디렉터리의 파일 목록을 가져옴
vfs.dir.size[dir,<regex incl>,<regex excl>,<mode>,<max depth>,<regex excl dir>]
디렉터리 크기(바이트 단위).
반환 값: Integer.
지원 플랫폼: Linux, Windows.
다른 UNIX 계열 플랫폼에서도 동작할 수 있습니다.
파라미터:
- dir - 디렉터리의 절대 경로;
- regex incl - 포함할 엔티티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 나타내는 정규 표현식; 비어 있으면(기본값) 모두 포함;
- regex excl - 제외할 엔티티(파일, 디렉터리, 심볼릭 링크)의 이름 패턴을 나타내는 정규 표현식; 비어 있으면(기본값) 아무것도 제외하지 않음;
- mode - 가능한 값: apparent(기본값) - 디스크 사용량이 아닌 표면적인(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 사용자에게 최소한 읽기 권한이 있는 디렉터리만 계산됩니다. 읽기 권한만 있는 디렉터리는 디렉터리 자체의 크기만 계산됩니다. 읽기 및 실행 권한이 있는 디렉터리는 내용을 포함하여 계산됩니다.
- 큰 디렉터리나 느린 드라이브의 경우, agent 설정 및 server/server/proxy 설정 파일의 Timeout 설정으로 인해 이 아이템이 타임아웃될 수 있습니다. 필요에 따라 timeout 값을 늘리세요.
- 파일 크기 제한은 대용량 파일 지원 여부에 따라 다릅니다.
예시:
vfs.dir.size[/tmp,log] #/tmp에서 이름에 'log'가 포함된 모든 파일의 크기를 계산
vfs.dir.size[/tmp,log,^.+\.old$] #/tmp에서 이름에 'log'가 포함된 모든 파일의 크기를 계산하되, 이름이 '.old'로 끝나는 파일은 제외
vfs.file.cksum[file,<mode>]
UNIX cksum 알고리즘으로 계산한 파일 체크섬.
반환 값: mode가 crc32인 경우 Integer, mode가 md5, sha256인 경우 String.
지원 플랫폼 참조.
파라미터:
- file - 파일의 전체 경로;
- mode - crc32(기본값), md5, 또는 sha256.
참고:
예시:
vfs.file.cksum[/etc/passwd]
반환 값 예시(crc32/md5/sha256 순):
675436101
9845acf68b73991eb7fd7ee0ded23c44
ae67546e4aac995e5c921042d0cf0f1f7147703aa42bfbfb65404b30f238f2dc
vfs.file.contents[file,<encoding>]
파일 내용 가져오기^7^.
반환 값: Text.
지원 플랫폼 참조.
파라미터:
- 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 string.
지원 플랫폼 참조.
파라미터:
- file - 파일의 전체 경로
참고:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다.
- UNIX 계열 시스템에서 지원되는 파일 유형: 일반 파일, 디렉터리, 심볼릭 링크, 소켓, 블록 디바이스, 문자 디바이스, FIFO.
- 파일 크기 제한은 대용량 파일 지원 여부에 따라 다릅니다.
예시:
vfs.file.get[/etc/passwd] #/etc/passwd 파일에 대한 정보(유형, 사용자, 권한, SID, uid 등)가 담긴 JSON을 반환
vfs.file.md5sum[file]
파일의 MD5 체크섬.
반환 값: 문자열(파일의 MD5 해시).
지원 플랫폼 참조.
파라미터:
- file - 파일의 전체 경로
참고:
예시:
vfs.file.md5sum[/usr/local/etc/zabbix_agentd.conf]
반환 값 예시:
b5052decb577e0fffd622d6ddc017e82
vfs.file.owner[file,<ownertype>,<resulttype>]
파일 소유자를 가져옵니다.
반환 값: String.
지원 플랫폼 참조.
파라미터:
- file - 파일의 전체 경로;
- ownertype - user(기본값) 또는 group(Unix 전용);
- resulttype - name(기본값) 또는 id; id의 경우 Unix에서는 uid/gid, Windows에서는 SID를 반환.
참고:
예시:
vfs.file.owner[/tmp/zabbix_server.log] #/tmp/zabbix_server.log 파일의 소유자를 반환
vfs.file.owner[/tmp/zabbix_server.log,,id] #/tmp/zabbix_server.log 파일 소유자의 ID를 반환
vfs.file.permissions[file]
UNIX 권한을 나타내는 8진수를 담은 4자리 문자열을 반환합니다.
반환 값: String.
지원 플랫폼: Linux.
다른 UNIX 계열 플랫폼에서도 동작할 수 있습니다.
파라미터:
- file - 파일의 전체 경로
파일 크기 제한은 대용량 파일 지원 여부에 따라 다릅니다.
예시:
vfs.file.permissions[/etc/passwd] #/etc/passwd의 권한을 반환, 예: '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파라미터를 사용한 내용 추출은 agent에서 수행됩니다.
예시:
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] → 사용자 *zabbix*의 ID 가져오기
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>]
파일 크기(바이트 단위).
반환 값: Integer.
지원 플랫폼 참조.
파라미터:
- file - 파일의 전체 경로;
- mode - 가능한 값: bytes(기본값) 또는 lines(빈 줄도 포함하여 계산).
참고:
- Windows에서 이 아이템은 UNC 경로를 따르며, 이는 보안 위험이 될 수 있습니다.
- 파일은 zabbix 사용자에 대한 읽기 권한이 있어야 합니다.
- 파일 크기 제한은 대용량 파일 지원 여부에 따라 다릅니다.
예시:
vfs.file.size[/var/log/syslog]
vfs.file.time[file,<mode>]
파일 시간 정보.
반환 값: Integer(Unix 타임스탬프).
지원 플랫폼 참조.
파라미터:
- file - 파일의 전체 경로;
- mode - 가능한 값:
modify(기본값) - 파일 내용이 마지막으로 수정된 시각,
access - 파일이 마지막으로 읽힌 시각,
change - 파일 속성이 마지막으로 변경된 시각
참고:
예시:
vfs.file.time[/etc/passwd,modify]
vfs.fs.discovery
마운트된 파일시스템 목록과 그 유형, 마운트 옵션.
저수준 디스커버리(low-level discovery)에 사용됩니다.
반환 값: JSON string.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
vfs.fs.get
마운트된 파일시스템 목록과 그 유형, 사용 가능한 디스크 공간, inode 통계, 마운트 옵션.
저수준 디스커버리에 사용할 수 있습니다.
반환 값: JSON string.
지원 플랫폼: Linux, FreeBSD, Solaris, HP-UX, AIX, MacOS X, OpenBSD, NetBSD, Windows.
참고:
- inode 수가 0인 파일시스템(예: btrfs처럼 동적 inode를 사용하는 파일시스템의 경우)도 보고됩니다.
- 사용 가능한 디스크 공간 및 inode 통계는 Zabbix agent 사용자가 마운트포인트 경로의 모든 디렉터리에 대해 순회(traverse) 권한을 가진 경우에만 반환되며, 그렇지 않으면 해당 파일시스템은 출력에서 제외됩니다.
- 참고: 마운트된 파일시스템 디스커버리.
vfs.fs.inode[fs,<mode>]
inode의 개수 또는 비율.
반환 값: Integer - 개수인 경우; Float - 비율인 경우.
지원 플랫폼 참조.
파라미터:
- fs - 파일시스템;
- mode - 가능한 값: total(기본값), free, used, pfree(사용 가능, 비율), 또는 pused(사용됨, 비율).
inode 수가 0인 경우(예: btrfs처럼 동적 inode를 사용하는 파일시스템의 경우), pfree/pused 값은 각각 "100"과 "0"으로 보고됩니다.
예시:
vfs.fs.inode[/,pfree]
vfs.fs.size[fs,<mode>]
디스크 공간(바이트 단위) 또는 전체 대비 비율.
반환 값: Integer - 바이트 단위인 경우; Float - 백분율인 경우.
지원 플랫폼 참조.
파라미터:
- fs - 파일시스템;
- mode - 가능한 값: total(기본값), free, used, pfree(사용 가능, 비율), 또는 pused(사용됨, 비율).
참고:
- 파일시스템이 마운트되지 않은 경우, 마운트포인트가 위치한 로컬 파일시스템의 크기를 반환합니다.
- 파일시스템의 예약 공간은 고려되며, free 모드를 사용할 때는 포함되지 않습니다.
예시:
vfs.fs.size[/tmp,free]
vm.memory.size[<mode>]
바이트 단위 또는 전체 대비 백분율로 나타낸 메모리 크기입니다.
반환 값: Integer - 바이트 단위; Float - 백분율 단위.
지원 플랫폼을 참고하십시오.
파라미터:
- mode - 가능한 값: total (기본값), active, anon, buffers, cached, exec, file, free, inactive, pinned, shared, slab, wired, used, pused (used, 백분율), available, 또는 pavailable (available, 백분율).
설명:
- 이 아이템은 세 가지 범주의 파라미터를 허용합니다:
- 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, https^4^. 스킴이 없으면 http로 처리됩니다. URL이 지정된 경우path와port는 비워두어야 합니다. 인증이 필요한 서버에 연결할 때 사용자명/비밀번호를 지정하는 것은(예:http://user:password@www.example.com) cURL 지원이 있을 때만 가능합니다 ^4^. 호스트명에서 Punycode가 지원됩니다. - path - HTML 문서 경로(기본값은 /);
- port - 포트 번호(기본값은 HTTP의 경우 80)
설명:
host에 지정된 리소스가 존재하지 않거나 사용할 수 없는 경우 이 아이템은 지원되지 않음 상태가 됩니다.host는 호스트명, 도메인명, IPv4 또는 IPv6 주소일 수 있습니다. 단, IPv6 주소를 사용하려면 Zabbix 에이전트가 IPv6 지원을 활성화한 상태로 컴파일되어야 합니다.
예시:
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>]
전체 웹 페이지의 로딩 시간(초 단위)입니다.
반환 값: Float.
지원 플랫폼을 참고하십시오.
파라미터:
- host - 호스트명 또는 URL(
scheme://host:port/path형식이며, host만 필수임). 허용되는 URL 스킴: http, https^4^. 스킴이 없으면 http로 처리됩니다. URL이 지정된 경우path와port는 비워두어야 합니다. 인증이 필요한 서버에 연결할 때 사용자명/비밀번호를 지정하는 것은(예:http://user:password@www.example.com) cURL 지원이 있을 때만 가능합니다 ^4^. 호스트명에서 Punycode가 지원됩니다. - path - HTML 문서 경로(기본값은 /);
- port - 포트 번호(기본값은 HTTP의 경우 80)
설명:
host에 지정된 리소스가 존재하지 않거나 사용할 수 없는 경우 이 아이템은 지원되지 않음 상태가 됩니다.host는 호스트명, 도메인명, IPv4 또는 IPv6 주소일 수 있습니다. 단, IPv6 주소를 사용하려면 Zabbix 에이전트가 IPv6 지원을 활성화한 상태로 컴파일되어야 합니다.
예시:
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, https^4^. 스킴이 없으면 http로 처리됩니다. URL이 지정된 경우path와port는 비워두어야 합니다. 인증이 필요한 서버에 연결할 때 사용자명/비밀번호를 지정하는 것은(예:http://user:password@www.example.com) cURL 지원이 있을 때만 가능합니다 ^4^. 호스트명에서 Punycode가 지원됩니다. - path - HTML 문서 경로(기본값은 /);
- port - 포트 번호(기본값은 HTTP의 경우 80)
- regexp - 필요한 패턴을 설명하는 정규 표현식;
- length - 반환할 최대 문자 수;
- output - 선택적 출력 형식 템플릿. \0 이스케이프 시퀀스는 일치한 텍스트 부분(일치가 시작되는 첫 문자부터 일치가 끝나는 문자까지)으로 대체되며, \N(N=1...9) 이스케이프 시퀀스는 N번째로 캡처된 그룹으로 대체됩니다(N이 캡처된 그룹 수를 초과하면 빈 문자열).
설명:
host에 지정된 리소스가 존재하지 않거나 사용할 수 없는 경우 이 아이템은 지원되지 않음 상태가 됩니다.host는 호스트명, 도메인명, IPv4 또는 IPv6 주소일 수 있습니다. 단, IPv6 주소를 사용하려면 Zabbix 에이전트가 IPv6 지원을 활성화한 상태로 컴파일되어야 합니다.output파라미터를 사용한 콘텐츠 추출은 에이전트에서 이루어집니다.
예시:
web.page.regexp[www.example.com,index.php,80,OK,2]
web.page.regexp[https://www.example.com,,,OK,2]
agent.hostmetadata
에이전트 호스트 메타데이터입니다.
반환 값: String.
지원 플랫폼을 참고하십시오.
HostMetadata 또는 HostMetadataItem 파라미터의 값을 반환하며, 둘 다 정의되어 있지 않으면 빈 문자열을 반환합니다.
agent.hostname
에이전트 호스트 이름입니다.
반환 값: String.
지원 플랫폼을 참고하십시오.
반환값:
- 수동 점검(passive check)인 경우 - 에이전트 설정 파일의 Hostname 파라미터에 나열된 첫 번째 호스트명;
- 능동 점검(active check)인 경우 - 현재 호스트명.
agent.ping
에이전트 가용성 점검입니다.
반환 값: 값 없음 - 사용 불가; 1 - 사용 가능.
지원 플랫폼을 참고하십시오.
호스트의 사용 불가 여부를 확인하려면 nodata() 트리거 함수를 사용하십시오.
agent.variant
Zabbix 에이전트의 변형(Zabbix agent 또는 Zabbix agent 2)입니다.
반환 값: 1 - Zabbix agent; 2 - Zabbix agent 2.
지원 플랫폼을 참고하십시오.
agent.version
Zabbix 에이전트의 버전입니다.
반환 값: String.
지원 플랫폼을 참고하십시오.
반환값 예시:
6.0.3
zabbix.stats[<ip>,<port>]
Zabbix 서버 또는 프록시의 내부 메트릭 집합을 반환합니다.
ip와 port가 지정된 경우 원격 인스턴스에서 메트릭을 가져오며, 그렇지 않으면 로컬 인스턴스에서 가져옵니다.
반환 값: JSON string.
지원 플랫폼을 참고하십시오.
파라미터:
- ip - 원격으로 조회할 서버/프록시의 IP/DNS/네트워크 마스크 목록(기본값은 127.0.0.1);
- port - 원격으로 조회할 서버/프록시의 포트(기본값은 10051)
설명:
- 이 아이템은 선택된 내부 메트릭 집합을 반환합니다. 자세한 내용은 Zabbix 통계 원격 모니터링을 참고하십시오.
- 통계 요청은 대상 인스턴스의 'StatsAllowedIP' 서버/프록시 파라미터에 나열된 주소에서만 허용됩니다.
zabbix.stats[<ip>,<port>,queue,<from>,<to>]
Zabbix 서버 또는 프록시에서 지연된 모니터링 대기열 아이템 수를 반환합니다.
ip와 port가 지정된 경우 원격 인스턴스에서 메트릭을 가져오며, 그렇지 않으면 로컬 인스턴스에서 가져옵니다.
반환 값: JSON string.
지원 플랫폼을 참고하십시오.
파라미터:
- ip - 원격으로 조회할 서버/프록시의 IP/DNS/네트워크 마스크 목록(기본값은 127.0.0.1);
- port - 원격으로 조회할 서버/프록시의 포트(기본값은 10051)
- queue - 상수(있는 그대로 사용)
- from - 최소 지연 시간(기본값은 6초)
- to - 최대 지연 시간(기본값은 무한)
통계 요청은 대상 인스턴스의 'StatsAllowedIP' 서버/프록시 파라미터에 나열된 주소에서만 허용됩니다.
각주
^1^Linux 관련 참고 사항. Zabbix 에이전트는 /proc 파일시스템에 대한 읽기 전용 접근 권한이 있어야 합니다. www.grsecurity.org의 커널 패치는 권한이 없는 사용자의 접근 권한을 제한합니다.
^2^ vfs.dev.read[], vfs.dev.write[]: 아이템 값이 3시간 이상 접근되지 않으면 Zabbix 에이전트는 "오래된(stale)" 디바이스 연결을 종료합니다.
동적으로 경로가 변경되는 디바이스가 있는 시스템이거나 디바이스가 수동으로 제거된 경우 이런 상황이 발생할 수 있습니다.
또한 이 아이템들은 갱신 주기가 3시간 이상인 경우 항상 '0'을 반환한다는 점에 유의하십시오.
^3^ vfs.dev.read[], vfs.dev.write[]: 첫 번째 파라미터에 기본값인 all이 사용되면 이 키는 sda, sdb 같은 모든 블록 디바이스와 그 파티션(sda1, sda2, sdb3...), 그리고 이러한 블록 디바이스/파티션을 기반으로 한 다중 디바이스(MD raid) 및 논리 볼륨(LVM)을 포함하는 요약 통계를 반환합니다.
이런 경우 반환된 값은 절대값이 아니라 (시간에 따라 변동하는) 상대값으로만 간주해야 합니다.
^4^ SSL(HTTPS)은 에이전트가 cURL 지원을 포함하여 컴파일된 경우에만 지원됩니다. 그렇지 않으면 해당 아이템은 지원되지 않음(unsupported) 상태가 됩니다.
^5^ Solaris 10 6/06까지의 Solaris 시스템에서는 루프백 인터페이스에 대한 bytes 및 errors 값이 지원되지 않습니다. 커널이 바이트, 오류 및 사용률 통계를 저장하거나 보고하지 않기 때문입니다.
다만 net-snmp를 통해 Solaris 시스템을 모니터링하는 경우 값이 반환될 수 있는데, 이는 net-snmp가 1997년까지 거슬러 올라가는 cmu-snmp의 레거시 코드를 포함하고 있어서 인터페이스 통계에서 바이트 값을 읽는 데 실패하면 (루프백 인터페이스에도 존재하는) 패킷 카운터에 임의의 값 308을 곱한 값을 반환하기 때문입니다.
이는 평균 패킷 길이가 308옥텟이라는 가정에 기반한 것인데, Solaris 시스템의 루프백 인터페이스 MTU 제한이 8892바이트임을 고려하면 매우 대략적인 추정치입니다.
이 값들은 정확하거나 근사치라고 가정해서는 안 됩니다.
어림짐작 값일 뿐입니다.
Zabbix 에이전트는 이런 추측 작업을 전혀 하지 않지만, net-snmp는 이 필드들에 대해 값을 반환합니다.
^6^ /proc/pid/psinfo에서 가져오는 Solaris의 명령줄은 80바이트로 제한되며, 프로세스가 시작될 당시의 명령줄을 담고 있습니다.
^7^ vfs.file.contents[], vfs.file.regexp[], vfs.file.regmatch[] 아이템은 파일 내용을 가져오는 데 사용할 수 있습니다.
민감한 정보가 있는 특정 파일에 대한 접근을 제한하려면, 해당 파일을 볼 수 있는 권한이 없는 사용자로 Zabbix 에이전트를 실행하십시오.
명령줄 유틸리티에서의 사용
명령줄에서 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]
인코딩 설정
수집된 데이터가 손상되지 않도록 하려면 체크(예: 'vfs.file.contents')를 처리할 때 encoding 파라미터에 올바른 인코딩을 지정할 수 있습니다.
지원되는 인코딩(코드 페이지 식별자) 목록은 libiconv(GNU 프로젝트) 문서나 Microsoft Windows SDK 문서의 "Code Page Identifiers"에서 확인할 수 있습니다.
Microsoft는 일부 코드 페이지를 "관리되는 애플리케이션에서만 사용 가능"으로 표시하는 경우가 있는데, 이는 .NET 런타임을 통해서만 노출되고 네이티브 Win32 API에서는 사용할 수 없다는 의미입니다. Zabbix 에이전트는 자체 인코딩 변환 로직을 구현하므로, 네이티브 Windows 함수가 이를 제공하지 않아도 Zabbix 에이전트는 해당 코드 페이지를 지원합니다.
encoding 파라미터에 인코딩이 지정되지 않은 경우 다음 해석 전략이 적용됩니다:
- 인코딩이 지정되지 않은 경우(또는 빈 문자열인 경우) UTF-8로 간주하여 데이터를 "있는 그대로" 처리합니다;
- BOM 분석 - 'vfs.file.contents', 'vfs.file.regexp', 'vfs.file.regmatch' 아이템에 적용됩니다. 파일 시작 부분의 바이트 순서 표시(BOM)를 사용하여 올바른 인코딩을 판별하려는 시도가 이루어집니다. BOM이 없으면 위에서 설명한 표준 해석 방식이 대신 적용됩니다.
에이전트 아이템 문제 해결
수동 체크(passive check)의 경우, 서버의 에이전트 요청이 먼저 타임아웃되어 아이템이 값을 전혀 받지 못하는 상황을 방지하려면 다음 사항에 유의해야 합니다: