
Nechajte svoj server prehovoriť
Jednotlivé servery máme často uložené v rackoch bez klávesníc a monitorov nakoľko sa poväčšine prípadov spoliehame na vzdialený prístup. Niet divu, takmer všetky činnosti je možné na diaľku realizovať s absolútnym pohodlím bez nejakých obmedzení. Čo však ak chceme mať priamo pri serveroch k dispozícii niektoré informácie ako napríklad beh jednotlivých procesov, prístupnosť trasy a podobne?
Prvé riešenie, ktoré nás napadne je použitie LCD panelu s príslušnou podporou a zobrazovanie informácií priamo na ňom. Jednotlivé LCD panely sú však pomerne nákladnou záležitosťou, takže si dnes ukážeme jednoduchú možnosť ako použiť paralelné rozhranie pre optickú a zvukovú indikáciu jednotlivých stavov.
1. Hardware
Vychádzame opäť z jednoduchého riešenia na ktorého zostrojenie nám postačí pár desiatok korún. Budeme potrebovať konektor pre paralelné rozhranie, zopár odporov hodnoty 1.5 - 2.2 Kohm, zopár LED diód a pre zvukovú signalizáciu akustický piezo menič s integrovaným budiacim multivibrátorom, všetko bežne dostupné komponenty, ktoré sú všade k dispozícii.
Ak sa pozrieme na osadenie jednotlivých pinov paralelného portu, je nám jasné, že pre výstup máme 8 jednotlivých dátových bitov medzi ktoré a zem budeme zapájať jednotlivé LED diódy s predradeným odporom alebo akustický piezo menič, ktorého funkčnosť vyskúšate jednoducho privedením napájania o napätí 3-5V. V prípade zvukovej reprodukcie tónu je možné ho použiť.
2 D0 data bit 0
3 D1 data bit 1
4 D2 data bit 2
5 D3 data bit 3
6 D4 data bit 4
7 D5 data bit 5
8 D6 data bit 6
9 D7 data bit 7
25 GND ground
Výsledný prototyp medziproduktu po pár minútach konštrukcie môže vyzerať nasledovne:
K jednotlivým dátovým linkám D0 - D7 budeme pristupovať prostredníctvom zariadení parport0 až parport7, preto je vhodné pre lepšie usporiadanie priamo pri konštrukcii vybrať si jednotlivé farby LED indikátorov v závislosti na výsledných požiadavkách, v prípade potreby zvukovej signalizácie je vhodné na poslednú pozíciu D7 osadiť si akustický piezo menič. Pre jednoduchú inštaláciu je vhodné jednotlivé LED indikátory umiestniť do externého boxu s popisom významu jednotlivých indikátorov, alebo ich priamo umiestniť na čelný panel do záslepky nepoužívanej šachty.
Pre otestovanie funkčnosti je možné pri osadení D0 až D4 LED diódami po pripojení k vypnutému hostu uskutočniť jeho inicializáciu, pričom na prevažnej väčšine strojov budú počas procesu inicializácie vypisované v binárnom tvare jednotlivé POST kódy.
2. Inštalácia softwaru
Pre ovládanie jednotlivých dátových liniek použijeme software ledblink z produkcie Jörga Mensmanna, ktorý pred nedávnom ledblink pre naše potreby prispôsobil s uvedením verzie 0.85, ktorej zdrojové kódy nájdete k dispozícii na http://www.bitplanet.de/unix/ledblink.html. Pristúpime teda k inštalácii samotnej:
tar xzvf ledblink-0.85.tar.gz
cd ledblink-0.85
make
make install
Výsledkom celého procesu je jediná binárka s názvom ledblink umiestnená v adresári /usr/local/bin/.
3. Inicializácia a funkčnosť softwaru
V prvom prípade je nutné vykonať inicializáciu paralelného rozhrania pre uvedenie jednotlivých dátových liniek do nulového stavu. Často krát sa stáva, že po inicializácii zostane indikovaný posledný stav, my však potrebujeme začínať s nulovými hodnotami, takže najjednoduchšie uskutočníme inicializáciu prostredníctvom
cat /dev/par0
kde raz blikne indikátor D0 a následne s chybovým hlásením zostanú všetky indikátory v stave 0.
Teraz je čas inicializovať ledblink. Prvotným krokom je spustenie ledblink daemonu samotného s následnou inicializáciou jednotlivých používaných dátových liniek, napríklad:
ledblink
ledblink -l parport0
ledblink -l parport1
ledblink -l parport2
ledblink -l parport3
ledblink -l parport4
ledblink -l parport7
Keďže pre každý jednotlivý LED indikátor je vytvorený samostatný proces inicializujeme iba tie dátové linky, ktoré budeme používať. Teraz si ukážeme jednotlivé možnosti. Pre riadenie stavu sú k dispozícii parametre -0, -1 a -t, ktoré uvedú indikátory do stavu on, off alebo jednoducho zmenia ich stav na opačný:
#zapni led 0 *
ledblink -1 -l parport0
#vypni led 3 -
ledblink -0 -l parport3
#obrat stav led2 * / -
ledblink -t -l parport2
Okrem permanentného stavu on a off je k dispozícii mód blikania inicializovaný parametrom -b. Po prvom použití tohto parametru je v cyklických opakovaniach LED indikátor rozsvecovaný a zhasínaný, pri opätovnom použití sa intenzita blikania mení nahor, pri použití parametra -d nadol. Blikanie je možné zastaviť parametrom -s.
#spusti blikanie na led1 s efektom *-*-*
ledblink -b -l parport1
#po opatovnom volani nastane efekt **-**-**
ledblink -b -l parport1
#a tak dalej ***-***-***
ledblink -b -l parport1
#a znizime rate **-**-**
ledblink -d -l parport1
#az po vypnutie blikania
ledblink -s -l parport1
Celkovú sadu príslušných procesov je možné ukončiť parametrom -k, po ukončení však stav jednotlivých dátových liniek zostane nezmenený, takže je vhodné ich reinicializovať
ledblink -k
cat /dev/par0
Pre jednotlivú špecifikáciu LED indikátorov je možné okrem parport0 až parport7 použiť aj LED indikátory umiestnené na klávesnici pri ich označení caps, num a scroll.
4. Implementácia
Na dvoch praktických príkladoch si ukážeme príklad využitia funkčnosti. V prvom príklade je to indikácia behu sledovaného procesu, v našom prípade httpd ktorý budeme indikovať LED indikátorom 7. Pri behu procesu bude indikátor rozsvietený, pri jeho vypadnutí nastane jeho blikanie. Testovací skript si nazveme napríklad chkapache, a jeho obsah bude nasledovný:
cat /dev/par0
ledblink
ledblink -l parport7
while true; do
ps ax | grep httpd | grep -v grep
f [ $? = 0 ]
then
ledblink -s -l parport7
ledblink -1 -l parport7
else
ledblink -s -l parport7
ledblink -0 -l parport7
ledblink -b -l parport7
fi
sleep 1
done
ledblink -k
Po spustení prevedieme inicializáciu paralelného rozhrania nasledovanú prípravou indikátoru D7. V nekonečnom cykle budeme pomocou ps sledovať prítomnosť procesu s názvom httpd a v závislosti na návratovej hodnote grepu uskutočníme nastavenie jednotlivých žiadaných stavov na indikátoroch.
Pre sledovanie konektivity použijeme skript s pracovným názvom pinger s nasledujúcim obsahom:
cat /dev/par0
ledblink
ledblink -l parport0
while true; do
ping testpoint.provider.sk -c 1
if [ $? = 0 ]
then
ledblink -1 -l parport0
else
ledblink -0 -l parport0
fi
sleep 60
done
ledblink -k
V prípade realizovaného pingu je LED indikátor v stave on, v prípade výpadku sa vypne. Obrátenú logiku je možné použiť napríklad v spojitosti s akustickým piezo meničom, kde použijeme namiesto parametrov -0 a -1 parametre -b a -s pre indikáciu výpadku konektivity pípaním.
Pre implementáciu do systému je vhodné inicializáciu umiestniť priamo do /etc/rc.d/rc.local s jasnou indikáciu spustenia, napríklad nasledovne:
cat /dev/par0
ledblink
ledblink -l parport0
ledblink -l parport1
ledblink -l parport2
ledblink -l parport3
ledblink -l parport4
ledblink -l parport5
ledblink -l parport6
ledblink -l parport7
ledblink -1 -l parport0
ledblink -1 -l parport1
ledblink -1 -l parport2
sleep 1
ledblink -1 -l parport3
sleep 1
ledblink -1 -l parport4
ledblink -1 -l parport5
ledblink -1 -l parport6
sleep 1
ledblink -0 -l parport6
ledblink -0 -l parport5
ledblink -0 -l parport4
sleep 1
ledblink -1 -l parport3
sleep 1
ledblink -1 -l parport2
ledblink -1 -l parport1
ledblink -1 -l parport0
a jednotlivé príslušné kontrolné rutiny vykonávať prostredníctvom cronu alebo jednoduchého naprogramovaného daemona, ktorý by sa o update stavov jednotlivých LED indikátorov staral.
5. Záver
Jedná sa skutočne o prostriedok, ktorý v značnej miere dokáže rozšíriť schopnosť servera indikovať jednotlivé stavy prehľadným spôsobom. Či už implementujete tento panel na každý spravovaný server v racku s indikáciou behu jednotlivých procesov v spolupráci s možnosťou korektného reštartu cez sériový port v prípade núdze s použitím SLED alebo si na stene svojho pracovného stola vytvoríte mapu trasy pripojenia s indikáciou jednotlivých kontrolných bodov s vyobrazením kontroly konektivity, v každom prípade sa jedná o užitočného pomocníka pre každodenné zjednodušenie oznámenia kritických stavov. Dvere sa otvárajú aj pre použitie v linuxových boxov v prostredí bez správcu, kde je možné jednoduchým spôsobom stavovými indikátormi užívateľom načrtnúť prípadné poruchy a potreby zásahu. Hor sa teda do testovania.
Další části seriálu:
|