CPU 번호를 수동으로 나열하지 않고 Zabbix의 저수준 검색(LLD)으로 사용률 아이템을 만드는 방법입니다. 원노트의 system.cpu.discovery 예제를 기준으로 검색 규칙과 아이템 프로토타입의 관계를 정리했습니다.
발견되는 값 확인
사용 중인 agent와 템플릿에서 system.cpu.discovery가 어떤 JSON을 반환하는지 확인합니다. CPU 번호는 {#CPU.NUMBER} 매크로로 제공됩니다. 실제 값은 OS가 노출한 논리 CPU 기준일 수 있어 물리 코어 수와 구분합니다.
zabbix_agentd -t system.cpu.discovery테스트용 임시 아이템을 만들었다면 확인 후 정리합니다. 이미 같은 기능의 CPU LLD가 기본 템플릿에 있으면 새로 중복 생성하지 않고 기존 규칙을 먼저 확인합니다.
검색 규칙과 필터
호스트에 연결할 템플릿에서 검색 규칙을 생성하고 agent 또는 agent active 형식을 선택합니다. 키는 system.cpu.discovery입니다. CPU 번호 필터를 조절하려면 사용자 매크로와 정규식을 준비합니다.
사용자 매크로: {$SYSTEM.CPU.UTIL.CORE.MATCHES}
예시 값: .+
LLD 필터: {#CPU.NUMBER} matches {$SYSTEM.CPU.UTIL.CORE.MATCHES}아이템 프로토타입
발견한 CPU마다 이름과 키에 LLD 매크로가 치환됩니다. 아래는 CPU별 기본 사용률 아이템 예시입니다. 명시적으로 모드·평균 기간을 지정할 경우 해당 OS와 버전의 키 매개변수를 확인합니다.
이름: CPU {#CPU.NUMBER} 사용률
키: system.cpu.util[{#CPU.NUMBER}]
단위: %
유형: 수치(float)자동 생성·검색 옵션을 켜고 대상 호스트에 템플릿을 연결합니다. 첫 LLD 주기 이후 실제 CPU 번호별 아이템이 생성되는지 확인합니다. 소수점 사용률을 정수형으로 잘라 저장하지 않습니다.
수집과 변경 확인
최신 데이터의 갱신 시각과 CPU별 그래프를 확인합니다. CPU 증설·축소 후에는 검색된 아이템과 '더 이상 발견되지 않는 자원' 보존 정책도 확인합니다. 평균 구간이 다른 top·다른 모니터링 도구와 순간값이 똑같아야 한다고 가정하지 않습니다.