Zabbix 이용 CPU/Hard 온도 모니터링을 구상하게 된 것은 Mini PC 의 CPU 냉각팬 오래되어서 인지 내부 온도가 올라가면 HDD 인식이 안되면서 오류가 발생하는 문제가 가금 발생하는 것을 사전에 모니터링하기 위해서 였습니다.

OS는 Ubuntu 16.04 인데 기본적인 CPU / HDD 센서 수집 정보를 이용하여 모니터링을 구성하였습니다.

AD
  1. 관련 Package 설치
    $ sudo apt-get install lm-sensors
    $ sudo apt-get install hddtemp

    OS Utility /usr/bin/sensor/usr/sbin/hddtemp 를 추가합니다. 각각의 출력 형태는 다음과 같습니다. lm-sensor 는 아래 그림과 같이 CPU 의 온도를 측정하는 도구이고, hddtemp 는 제목 그대로 HDD 의 온도를 측정할 수 있게 해 주는 도구입니다. sensor 의 출력값을 보면, 각 CPU Core 의 현재값과 최대값(70ºC), 임계값(90ºC) 를 나타내고 있습니다.

    # sensors
    coretemp-isa-0000
    Adapter: ISA adapter
    Physical id 0:  +53.0°C  (high = +72.0°C, crit = +90.0°C)
    Core 0:         +52.0°C  (high = +72.0°C, crit = +90.0°C)
    Core 1:         +52.0°C  (high = +72.0°C, crit = +90.0°C)
    # hddtemp /dev/sda
    /dev/sda: ST9120822AS: 56°C
  2. zabbix 사용자 변수 설정
    Zabbix user parameter 파일 내용을 다음과 같이 작성합니다. 각각 sensor와 hddtemp 출력값 중에서 필요한 현재 온도만을 추출하도록 합니다.

    # cat /etc/zabbix/zabbix_agentd.conf.d/userparameter_temp.conf
    UserParameter=temp.cpu, sudo "/usr/bin/sensors|/usr/bin/grep 'Physical'|/usr/bin/awk '/\d{1,2}/{print substr($4,2,2)}'"
    UserParameter=temp.hdd, sudo "/usr/sbin/hddtemp /dev/sda|/usr/bin/awk '/\d{1,2}/{print substr($3,1,2)}'"
    
  3. zabbix 측정 Item 을 추가.
    Zabbix 측정 Item 은 하나의 Host에만 추가해도 되고, 여러 장비에 모두 동일한 Item 으로 추가하고자 한다면 Template 으로 만들어 사용합니다.  여기서는 하나의 Host 에만 추가해 보겠습니다.Configuration > Hosts > Create item 을 선택하고,  다음과 같이 설정합니다.

    Item NameValue
    NameCPU Temperature (하드의 경우, HDD Temperature)
    Typezabbix agent (active)
    Keytemp.cpu ( 하드의 경우, temp.hdd )
  4. zabbix agent 서비스를 재기동하고 Latested Data 를 통해서 온도 데이타가 제대로 수집되는지 확인합니다.
CPU Temerature
Fig. Zabbix – CPU Temerature
AD