LM Sensors

Dari PaloDozen

LM Sensors adalah perangkat lunak untuk mendeteksi berbagai kondisi komputer, misalnya suhu CPU.

Daftar isi

Mengunduh

Situs LM Sensor ada di http://www.lm-sensors.org/.

Pemasangan

Di Rock Cluster, pemasangan lm_sensors seharusnya dapat dilakukan dengan yum

# yum install lm_sensors

Namun ternyata LM Sensors tidak langsung jalan di Rock Cluster 5.2 (Centos 5.3) dengan perangkat keras CPU Intel i7 dan motherboard Asus P6T. Untuk itu perlu pasang paket lm_sensors baru dan modul kernel coretemp, lihat di:

Unduh paket khusus tersebut dan pasang dengan rpm.


Pemakaian

Pertama, deteksi perangkat keras dengan sensors-detect

# /usr/sbin/sensors-detect

Dari situ akan terlihat driver apa yang dibutuhkan, misalkan coretemp (ini untuk CPU intel core 2, xeon, maupun i7). Agar dimuat pada saat boting, sensors-detect akan mengubah /etc/modprobe seperlunya. Untuk memuatnya secara manual, panggil

# modprobe coretemp

Lalu untuk memantau jalankan program sensors

# sensors
coretemp-isa-0003
Adapter: ISA adapter
Core 3:      +44.0°C  (high = +80.0°C, crit = +100.0°C)

coretemp-isa-0002
Adapter: ISA adapter
Core 2:      +45.0°C  (high = +80.0°C, crit = +100.0°C)

coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +42.0°C  (high = +80.0°C, crit = +100.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +43.0°C  (high = +80.0°C, crit = +100.0°C)

Integrasi Dengan Ganglia

Well, saya menghabiskan waktu sehari untuk memasang lm_sensors di semua node dan mengaktifkannya untuk ganglia. Ini dia langkah langsungnya buat anda :

  • pasang mod_coretemp-VER.rpm dan lm_sensors-VER.rpm ke semua node.
  • Buat scrip /usr/local/bin/gmetric-cpu-temp berikut, taruh di frontend dan semua node.
#!/bin/sh
# this script read the core(s) temperature using lm sensors then calculate the average
# and send it to the ganglia using gmetric
# assumes that the lines reported by lm sensors are formated like this
# Core 0: +46.0 C (high = +80.0 C, crit = +100.0 C)

SENSORS=/usr/bin/sensors
GMETRIC=/opt/ganglia/bin/gmetric

#sensors
let count=0
sum=0.0
for temp in $($SENSORS | grep -e '+.*C' | cut -f 2 -d '+' | cut -f 1 -d ' '); do
    sum=$(echo $sum+$temp | bc)
    #echo $temp, $sum
    let count+=1
done
temp=$(echo "$sum/$count" | bc)
$GMETRIC -t float -n "cpu_temp" -u "Celcius" -v $temp
  • Untuk menjalankan script tersebut secara berkala 1 detik sekali, buat file /etc/cron.d/sensors dengan isi
* * * * * root /usr/local/bin/gmetric-cpu-temp 

Setelah beberapa saat, coba browse ke situs ganglia, lalu pilih Metric: cpu_temp. Mestinya akan ada tampilan berikut:


Kontributor: Mursito