niedziela, 5 maja 2013

Monitorowanie temperatury na serwerach GNU/Linux Unix przy pomocy Opsview

Czasami dobrze wiedzieć co dzieje się w ciemnej zimnej serwerowni gdzie ostatni raz byliśmy rok temu:). Mam tutaj na myśli kwestie temperatury na naszym procesorze czy dysku, nie muszę mówić że lepiej żeby ona nie przekraczała temperatury wrzenia wody:). W tym celu zainstalujemy na naszym serwerze Opsview, lm_sensors oraz hddtemp. Ważne aby mieć zainstalowanego na serwerze Nagios'a, o czym pisałem wcześniej http://geek-admin.blogspot.com/2012/12/nagios-monitor-serwerow.html



1) Wstęp:

Musimy zarejestrować się na stronie http://www.opsview.com/

Następnie musimy dodać do repozytorium link do Opsview, wpisujemy login oraz hasło:

 nano /etc/apt/sources.list.d/opsview.list

dodajemy:

deb https://username:password@downloads.opsview.com/opsview-commercial/latest/apt squeeze main

Zamiast username oraz password wpisujemy nasze dane do logowania.

Następnie musimy zainstalować Opsview:

apt-get install opsview

lub pobieramy paczkę .deb, następnie ją instalujemy, gdzie package to nazwa naszej paczki, oczywiście musimy wiedzieć gdzie on się znajduje, i tam przechodzimy:

sudo dpkg -i package.deb

Następnie:

mkdir /var/www/mrtg 

Powinniśmy móc zalogować się do programu przez przeglądarkę, wydając polecenie:

http://adresip:3000

2) Instalacja czujników: lm_sensors oraz hddtemp:

apt-get install lm_sensors hddtemp

Musimy odpalić detekcję zdarzeń, uruchamiamy na prawach roota:

sensors-detect

Możemy teraz w podstawowym zakresie zobaczyć temperaturę naszej maszyny:

Dysk: hddtemp /dev/sda

/dev/sda: ST3120811AS: 31°C

Procesor: sensors


coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +38.0°C  (high = +84.0°C, crit = +100.0°C)
Core 1:      +39.0°C  (high = +84.0°C, crit = +100.0°C)
Core 2:      +37.0°C  (high = +84.0°C, crit = +100.0°C)
Core 3:      +38.0°C  (high = +84.0°C, crit = +100.0°C)

i5k_amb-isa-0000
Adapter: ISA adapter
Ch. 0 DIMM 0: +67.0°C  (low  = +110.5°C, high = +124.0°C)
Ch. 1 DIMM 0: +62.0°C  (low  = +110.5°C, high = +124.0°C)







3) Instalujemy 
check_lm_sensors:


Pobieramy check_lm_sensors, następnie kopiujemy go do /usr/local/nagios/libexec, następnie:

tar -zxvf check_lm_sensors-3.1.1.tar.gz

Następnie testujemy działanie naszych sensorów zbierających dane:

/usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors –list

Jeżeli pokazują się nam jakieś błędy musimy do check_lm_sensors dodać na początku:

use lib "/usr/local/nagios/perl/lib/"; 

4) Dodamy użytkownika nagios'a, tak aby można było pokazać statystyki temperatury:


chmod +x /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors

chown –R nagios:nagios /usr/local/nagios/libexec/check_lm_sensors-3.1.1/

Do /etc/sudoers dodajemy:


nagios ALL=(root) NOPASSWD:/usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors

dzięki czemu będziemy mogli lm_sensors odpalać jako root.

Konfigurujemy podzespoły do kontroli temperatury:

nano /usr/local/nagios/etc/nrpe_local/override.cfg

dodajemy info o 4 rdzeniach, oczywiście poniższe linijki do core3 możemy powielić w zalezności od liczby rdzeni u nas:



check_command[core0_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core0=45,55

check_command[core1_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core1=45,55

check_command[core2_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core2=45,55

check_command[core3_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Core3=45,55

check_command[dimm0_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Ch.0DIMM0=60,75

check_command[dimm1_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high Ch.1DIMM0=60,75

check_command[sda_temp]=sudo /usr/local/nagios/libexec/check_lm_sensors-3.1.1/check_lm_sensors --sanitize --high sdaTemp=60,75

Musimy przeładować nasze środowisko:

service opsview-agent restart

Powinniśmy w nagios otrzymać nowe opcje:

./check_nrpe –H localhost –c dimm0_temp

w odpowiedzi otrzymamy:

LM_SENSORS WARNING - Ch.0DIMM0=67.0|Ch.0DIMM0=67.0;60;75;;

Odpalamy Opsview przez przeglądarkę http://adresip:3000.

Przechodzimy kolejno: SETTINGS -> SERVICE CHECKS oraz symbol + (plus). Następnie dodajemy check_nrpe oraz -H $HOSTADDRESS$ -cdimm0_temp:




Następnie po Submit Changes przechodzimy do: SETTINGS -> HOSTS klikamy na nasz host następnie wybieramy MONITORS. Powinniśmy zobaczyć naszą konfgurację z override.cfg tak jak na zdjęciu niżej:



Robimy reload Opsview:

SETTINGS -> APPLY CHANGES następnie reload configurations. Powinniśmy zobaczyć temperature na procesorze oraz dysku:


Możemy tworzyć powiadomienia o stanie temperatury naszej maszyny.




2 komentarze:

  1. Ja monitoruje temperaturę za pomocą Zabbixa. Wydaje mi się, że tam jest to przystepniej rozwiązane. Caly opis znajduje się tu:
    http://blog.askomputer.pl/uratowana-firma-przez-zabbixa/
    Pozdrawiam :)

    OdpowiedzUsuń
  2. Być może, kwestia tego czy rzeczywiście potrzebujemy takiego natłoku wiadomości, czasami wiadomość w konsoli wystarcza:)

    OdpowiedzUsuń