hddtemp + Munin. Monitoruj temperaturę dysków

Monitorowanie stanu serwerów to jedna z podstawowych operacji, która powinna być dokładnie realizowana. Nawet ja na swoim domowym serwerze mam zainstalowane pełne statystyki (Munin), które dokładnie mi mówią co się dzieje o konkretnej godzinie. Ostatnio chciałem dodać monitorowanie temperatury dysków, które przedstawiane by były za pomocą wykresu, ale pakiet smarttools nie za bardzo mi odpowiadał. Postanowiłem więc użyć hddtemp i pobawić się kodem.

Nie wiedzieć czemu hddtemp nie doczekał się wtyczki z prawdziwego zdarzenia do Munina. Na szczęście poradziłem sobie z tym problemem i pokazuje Wam moje rozwiązanie.

Artykuł zakłada, że Munin jest zainstalowany i skonfigurowany do działania.

Na początku instalujemy pakiet hddtepm. Wpisujemy polecenie, oczywiście jako root:

apt-get install hddtemp

Jeżeli używamy innej dystrybucji, to oczywiście polecenie apt-get zastępujemy innym. Gdy pakiet się zainstaluje pozostajemy nadal jako root i wpisujemy:

hddtemp /dev/sda

Jeżeli pojawi nam się coś takiego

To wszystko działa. Dla pewności możemy również przetestować dla innych dysków.

Gdy wszystko działa poprawnie, wpisujemy polecenie:

cd /etc/munin/plugins

Ok. Jeżeli jesteśmy już w tym katalogu klepiemy:

touch sdatemp

a potem:

chmod +x sdatemp

Utworzymy tym sposobem plik sdatemp i nadamy mu prawa do uruchamiania. Teraz wpisujemy:

nano sdatemp

Uruchomi nam się edytor i jako treść pliku wpisujemy:

I teraz dwie kwestie, jakie będą nas najbardziej interesowały.

hdd_temp.label HDD_/dev/sda – jak będzie podpisana krzywa na wykresie. W tym przypadku będzie się ona nazywała HDD_/dev/sda. Nazwę HDD_/dev/sda możemy dowolnie zmieniać.

echo -n "hdd_temp.value "; TEMP=`hddtemp -n /dev/sda`; echo $TEMP".0" – to polecenie odpowiada za wyrzucanie temperatury dysku. Jeżeli chcemy zmienić dysk, zmieniamy wartość hddtemp -n /dev/sda na np. hddtemp -n /dev/sdb.

Jeżeli mamy więcej dysków, które chcemy monitorować to dla każdego dysku tworzymy osobny plik. Dla sda sdatemp dla sdb sdbtemp itd. itd. Oczywiście pamiętając również o tym, aby odpowiednio zmodyfikować skrypt.

Gdy już mamy wszystkie skrypty dodane do katalogu, to wpisujemy polecenie:

nano /etc/munin/plugin-conf.d/munin-node

Otworzy nam się plik konfiguracyjny. Teraz co będziemy robić. hddtemp aby „wypluć” wynik potrzebuje do tego uprawnień roota, zaś Munin na takich nie działa. Musimy więc powiedzieć wtyczce, na jakich uprawnieniach ma się uruchomić.

Jedziemy na sam dół pliku i wpisujemy:

[sdatemp]
user root
group root

Słówko wyjaśnienia:
[sdatemp] – nazwa naszego skryptu
user root – jaki użytkownik ma to odpalić
group root – jaka grupa

I tyle. Teraz nasz plik zostanie uruchomiony z uprawnieniami roota. Jeżeli mamy więcej plików, również i je musimy dodać:

[sdbtemp]
user root
group root

i tak dalej.

Zapisujemy zmiany w pliku. Teraz by wypadało sprawdzić, czy dodane przez nas skrypty odpowiednio działają. Znowu wpisujemy polecenie:

cd /etc/munin/plugins

i będąc w tym katalogu wydajemy polecenie:

munin-run sdatemp

Jeżeli pojawi nam się coś takiego:

To wszystko działa elegancko. Musimy jeszcze odświeżyć wtyczki w muninie:

munin-node-configure

i wykonać restart:

/etc/init.d/munin-node restart

Teraz nic, tylko czekać, aż wykresy się pojawią:

P.S Skrypt pochodzi z tej strony, lecz został zmodyfikowany na moje potrzeby.