이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

« 이전 버전 2 다음 »

collectd 설치

sudo dnf -y install collectd collectd-utils collectd-ipmi


ipmi 장치 그룹 사용 권한 변경

ipmi 장치는 root 계정만 이용할 수 있다.

collectd 에서 전원 정보를 읽어오려면, 특별한 스크립트가 필요하기 때문에, collectd 그룹을 만들고 이 그룹에서 사용할 수 있도록 설정한다.


collectd 그룹을 생성한다

sudo groupadd collectd


udev 파일을 생성한다

/lib/udev/rules.d/52-collectd-ipmi.rules
KERNEL=="ipmi*", MODE="660", GROUP="collectd"


재부팅한다. 재부팅 없이 넘어가려면, 다음 명령어를 입력한다. 

sudo chmod 660 /dev/ipmi*
sudo chown root:collectd /dev/ipmi*


사용권한이 변경되어 있는 것을 확인한다

# ls -alRZ /dev/ipmi*
crw-rw----. 1 root collectd system_u:object_r:ipmi_device_t:s0    /dev/ipmi0


보안 컨텍스트 적용

selinux 는 collectd 가 /dev/ipmi 장치에 접근하는 것을 막는다.

policy package ( collectd-ipmi.tecollectd-ipmi.pp ) 파일을 업로드 한 후, 다음 명령어를 입력하여 보안컨텍스트를 적용한다.

sudo semodule -i collectd-ipmi.pp

순간 소비전력 확인 스크립트 업로드

collectd-power 스크립트를 업로드 후 실행권한을 주고 root 계정에서 실행하여 동작함을 확인한다.

IPMI / DCMI 를 통해 소비전력을 읽어들이는 기능이 없는 경우 이용할 수 없다.

/etc/collectd-power
#!/bin/bash

HOSTNAME="${COLLECTD_HOSTNAME:-localhost}"
INTERVAL="${COLLECTD_INTERVAL:-10}"

while sleep "$INTERVAL"; do
  VALUE=$( /usr/bin/ipmitool dcmi power reading 2>&1 | grep -i instantaneous | sed -e 's/[^0-9]//g' )
  #echo "PUTVAL \"$HOSTNAME/grep_log/gauge-stuff\" interval=$INTERVAL N:$VALUE"
  echo "PUTVAL \"$HOSTNAME/ipmi/power-Instantaneous Power\" interval=$INTERVAL N:$VALUE"
done
# chmod 755 /etc/collectd-power
# sudo /etc/collectd-power
PUTVAL "localhost/ipmi/power-Instantaneous Power" interval=10 N:199
PUTVAL "localhost/ipmi/power-Instantaneous Power" interval=10 N:200

collectd 설정 파일 적용


/etc/collectd.conf
LoadPlugin load
LoadPlugin memory
Include "/etc/collectd.d"

10초 주기로 측정하도록 설정되었다

/etc/collectd.d/interval.conf
Interval 10
/etc/collectd.d/ipmi-sensors.conf
LoadPlugin ipmi
<Plugin ipmi>
<Instance "local">
    #Sensor "FAN1"
    #Sensor "FAN2"
    IgnoreSelected false
    NotifySensorAdd false
    NotifySensorRemove true
    NotifySensorNotPresent false
    NotifyIPMIConnectionState false
    SELEnabled false
    SELClearEvent false
</Instance>
</Plugin>
/etc/collectd.d/ipmi-power.conf
LoadPlugin exec
<Plugin exec>
    Exec "nobody:collectd" "/etc/collectd-power"
</Plugin>

원격지의 logstash 서버의 IP와 포트를 입력한다.

/etc/collectd.d/remote.conf
LoadPlugin network
<Plugin network>
    Server "192.168.0.100" "25826"
</Plugin>

hostname 에 자산번호를 함께 기입하면 로그를 분석할 때 유용하다.

/etc/collectd.d/hostname.conf
Hostname "2020000614:vmhost01"

collectd 설정 파일 적용

sudo systemctl enable collectd.service
sudo systemctl start collectd.service
  • 레이블 없음