Server status stoplicht met Arduino
Inleiding
Ik heb al een tijdje het pakket "PRTG" draaien. Dit is een handig pakket om diverse apparaten mee te monitoren. Ik heb het programma ingesteld naar wens, en een notificatie ingesteld zodat ik een mailtje krijgt als er iets mis is.Voor elk apparaat dat je monitored kun je triggers instellen, zo heb ik bijv. een trigger ingesteld dat er een waarschuwing moet worden geven als een bepaalde SMB share van m'n fileserver offline is (anders kan de rest van het gezin geen film kijken haha
Het leuke van PRTG is dat de mogelijkheden eindeloos zijn. Je kunt op heel veel manieren informatie opvragen, en mocht jouw functionaliteit er niet tussen zitten dan zou je zelf een PHP scriptje o.i.d. kunnen maken, en dmv een HTTP sensor de informatie daarvan opvragen.
Oke, maar je had het over Arduino? Hoe/wat dan?
Terug naar het project: Notificaties kreeg ik dus al via de mail. Ik ben sindskort echter ook wat beginnen te spelen met Arduino, en het leek mij wel leuk om in één oogopslag te kunnen zien hoe mijn apparatuur er voor staat. PRTG kent van zichzelf al 3 categorien: OK, Warning, Critical. Dit valt natuurlijk prima te vertalen naar een stoplicht! (Groen, Oranje, Rood). Ik heb eventjes op Marktplaats gekeken voor een echt stoplicht, maar dan praat je over een unit van een meter hoog, dat werd mij toch iets te gek
Vandaar dat ik dit heb gemaakt, dit komt in een hoek van m'n kamer te hangen, en zo kan ik ook zonder een PC scherm voor m'n neus te hebben, zien hoe m'n apparatuur er voor staat.
De hardware
De hardware is eigenlijk best simpel:
- 1x een Arduino Nano
- 3x TIP120 NPN transistor
- 1x ENC28J60 Ethernet shield
- 3x LED Indicator Pilot Signal Light Lamp 12V
- 1x voeding voor het geheel
- 1x Lasdoos om het geheel netjes in weg te werken
Het hardware verhaal is niet heel interessant om te vertellen, het is eigenlijk gewoon dit schema: http://learn.adafruit.com/assets/2692 maar dan met een losse voeding voor de LEDs. De grijze draad naar de Arduino gebruik ik dus niet, deze komt rechtstreeks vanaf mijn voeding. Denk erom dat je de GND van de voeding ook aan de GND van de Arduino aansluit, anders werkt het niet.
Werking van het geheel
Het idee is dat PRTG een bepaalde URL aanroept op de Arduino met een bepaalde GET parameter. De Arduino zal vervolgens actie ondernemen, en de desbetreffende LED inschakelen. Bij het opstarten van de Arduino laat hij 1 voor 1 alle lampen even branden zodat je weet dat ze alle 3 nog werken
Instellen van de triggers/notificaties
Het aanmaken van een trigger in PRTG is simpel, ga hiervoor naar "Setup" > "Account instellingen " > "Notificaties"
Daar maken we voor elke 'state' een notificatie aan:
| Naam notificatie | Gebruikte URL |
| Arduino stoplicht state=critical | http://<arduino_ip>/?state=critical |
| Arduino stoplicht state=warning | http://<arduino_ip>/?state=warning |
| Arduino stoplicht state=ok | http://<arduino_ip>/?state=ok |
Daarna kunnen we voor een apparaat, of een hele groep de notificaties instellen, ik heb dit als volgt gedaan voor de groep waar al mijn apparaten zich in bevinden:
- Als sensor is Fout voor 60 seconden, voer uit Arduino stoplicht state=critical
- Als conditie blijft bestaan voor 300 seconden, voer uit Arduino stoplicht state=critical en herhaal elke 1 minuten
- Als conditie verdwijnt, voer uit Arduino stoplicht state=ok
Je kunt bij het aanmaken van de notificaties ook gelijk een test doen, probeer dit even, anders heb je nog niks aan dit hele verhaal
Eindresultaat
Klik voor groter
Klik voor groter
Totale kosten waren rond de 19 euro. Arduino rond de 10 euro, lampjes 5 euro, netwerkmodule 4 euro. En dan nog wat klein spul zoals bedrading, lasdoos etc.
To-do list/wish list
- Op dit moment schakel ik de stroom gewoon uit 's avonds, misschien dat ik daar nog wat anders op ga verzinnen, al werkt het voor nu prima. Geen idee of het kwaad kan voor de Arduino namelijk
- Het script werkt nu nog maar een kant op, het werkt alleen als de PRTG server impulsen blijft sturen. Ik wil het nog zo maken dat de Arduino de PRTG server ook om de minuut een ping stuurt, en als dat niet lukt > rode lamp aan
Mijn dank gaat uit naar foekie01 voor het meedenken: http://gathering.tweakers...message/40168331#40168331
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
HOWTO: Batterijniveau van een UPS aangesloten via USB uitlezen met WMI
In m'n vorige blog (ThinkPad's TweakBlog: HOWTO: Hardware temperaturen monitoren met PRTG onder Windows schreef ik over het uitlezen van hardware temperaturen via WMI (aangeleverd door Open Hardware Monitor).
Ik heb aan m'n thuisserver een UPS hangen, voor het geval dat de stroom uitvalt. Dit is een Back-UPS 500. Deze is aangesloten via USB. Mijn server draait op Windows Server 2008 R2 x64, en als je dan een Back-UPS hebt is dat een vrij vervelende situatie. Het zit namelijk zo:
Als je onder Server 2008 een APC UPS wilt uitlezen dan kun je dat doen met PowerChute Business Edition. Deze software sluit dan netjes je PC af als hij een stroomstoring detecteert. De Business versie ondersteunt alleen geen UPS'en van de Back-UPS serie. Eigenlijk is de Back-UPS ook een thuismodel
De Back-UPS lees je normaal gesproken (op een OS voor thuisgebruik zoals XP, Win 7) uit met PowerChute Personal Edition. Maar die versie wil weer niet draaien op Server 2008. Ik zat dus een beetje in de knoop. Gelukkig heeft Windows zelf ook een basic UPS service draaien waarmee het afsluiten prima gedaan wordt.
Maar een echte Tweaker wil natuurlijk specs!!1111!!einzz. En dat lukt met de standaard Windows UPS service niet.
Gelukkig houdt Windows via WMI ook allerlei dingen bij. En ook het batterijniveau e.d.
Door de query
SQL:
nu als Custom WMI Sensor in PRTG toe te voegen kunnen we heel makkelijk het batterijniveau uitlezen. Nog even een notificatie instellen (zodat PRTG een waarschuwing geeft als het batterij niveau onder de ingestelde threshold is), en klaar is kees!
Hoe je een Custom WMI Sensor aan PRTG toe kunt voegen kun je in m'n vorige blogpost lezen (je moet onder andere .wql bestand aanmaken met daarin de query)
Resultaat:
(UPS is bezig met opladen).
Als je een Smart-UPS hebt gaat dit verhaal niet echt op natuurlijk, dan kun je gewoon de APC PowerChute Business Edition gebruiken, of als je een UPS hebt met netwerkkaart dan kun je die in PRTG uitlezen via SNMP
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
Ik heb aan m'n thuisserver een UPS hangen, voor het geval dat de stroom uitvalt. Dit is een Back-UPS 500. Deze is aangesloten via USB. Mijn server draait op Windows Server 2008 R2 x64, en als je dan een Back-UPS hebt is dat een vrij vervelende situatie. Het zit namelijk zo:
Als je onder Server 2008 een APC UPS wilt uitlezen dan kun je dat doen met PowerChute Business Edition. Deze software sluit dan netjes je PC af als hij een stroomstoring detecteert. De Business versie ondersteunt alleen geen UPS'en van de Back-UPS serie. Eigenlijk is de Back-UPS ook een thuismodel
De Back-UPS lees je normaal gesproken (op een OS voor thuisgebruik zoals XP, Win 7) uit met PowerChute Personal Edition. Maar die versie wil weer niet draaien op Server 2008. Ik zat dus een beetje in de knoop. Gelukkig heeft Windows zelf ook een basic UPS service draaien waarmee het afsluiten prima gedaan wordt.
Maar een echte Tweaker wil natuurlijk specs!!1111!!einzz. En dat lukt met de standaard Windows UPS service niet.
Gelukkig houdt Windows via WMI ook allerlei dingen bij. En ook het batterijniveau e.d.
Door de query
SQL:
1 | SELECT EstimatedChargeRemaining FROM Win32_Battery |
Hoe je een Custom WMI Sensor aan PRTG toe kunt voegen kun je in m'n vorige blogpost lezen (je moet onder andere .wql bestand aanmaken met daarin de query)
Resultaat:
(UPS is bezig met opladen).Als je een Smart-UPS hebt gaat dit verhaal niet echt op natuurlijk, dan kun je gewoon de APC PowerChute Business Edition gebruiken, of als je een UPS hebt met netwerkkaart dan kun je die in PRTG uitlezen via SNMP
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
HOWTO: Hardware temperaturen monitoren met PRTG onder Windows
Update: Blijkbaar zorgt PRTG ervoor dat je schijven niet in spindown gaan, hier kwam ik na een tijdje achter: [Server 2008] Hardeschijf gaat niet in standby? Ik raad je dan ook af om deze blogpost te gebruiken!
Inleiding
Er zijn hier op Tweakers.net waarschijnlijk een hoop mensen, die net zoals ik, ook een thuisservertje hebben draaien.
Ik draai een thuisservertje op Windows 2008 R2 Standard x64 , met hierin middels Hyper-V enkele virtuele machines (3x XP en 1x Debian). Een van de XP virtuele machines heb ik ingericht als monitoring vm, hierin draait het monitoring pakket "PRTG".
Dit is een erg leuk pakket wat van allerlei apparaten dingen bij kan houden, en daar mooie grafiekjes van kan maken. Denk onder andere aan het internetgebruik (WAN poort van router uitlezen via SNMP). Of ping responsetijden van virtuele machines, schijfgebruik etc. Teveel om op te noemen! En het mooiste van dit pakket, is dat het gratis is!
Ik had dit pakket al een tijdje draaien naar volle tevredenheid, maar wat ik eigenlijk mistte waren de temperaturen van mijn serversysteem. Als je een server moederbord in gebruik hebt dan kun je de temperaturen van allerlei sensoren waarschijnlijk eenvoudig uitlezen via SNMP, maar helaas beschikt het desktop bordje wat ik in gebruik heb ( pricewatch: Intel Desktop Board DH67BL (B3) daar niet over.
Open Hardware Monitor to the rescue!
Ik kon met Open Hardware Monitor wel de temperaturen uitlezen, maar dan moest ik telkens via Remote Desktop inloggen om het een beetje in de gaten te houden. Later ontdekte ik dat er ook een webinterface in OHM zit. Dat was al een stap vooruit. Maar ik wou graag de temperaturen bijhouden in PRTG, zodat ik een waarschuwings mailtje kon laten versturen als het systeem te warm wordt.
Ik heb een tijdje gezocht of de webinterface van OHM misschien JSON formaat uitspuugde (dan kan je namelijk redelijk eenvoudig de JSON URL toevoegen in PRTG). Ik kwam wel enkele hits tegen, maar niks wat ik zo kon gebruiken.
Hé! Open Hardware Monitor ondersteunt WMI !
Toen kwam ik tot de ontdekking dat OHM een eigen WMI provider aan boord heeft (root\openhardwaremonitor) . Toen viel het kwartje, en kon ik eenvoudig in PRTG een WMI sensor toevoegen! Hoe je een eigen WMI sensor toevoegt in PRTG lees je hier: http://www.paessler.com/k...m-wmi-sensors-for-dummies
De juiste WMI waarde vinden
Om nu uit te vinden welke WMI waarde ik moest invoeren heb ik Paessler WMI Tester laten draaien. Op je eigen PC draait dit zonder problemen, maar om de WMI informatie van een PC in je netwerk uit te kunnen lezen moet je eerst zorgen dat de user die je in PRTG gebruikt machtigingen hiervoor heeft op de PC die je wilt uit lezen. Hoe dit moet lees je hier: http://www.poweradmin.com/help/enableWMI.aspx (rechtermuisknop op mapje "openhardwaremonitor" klikken, en dan daar de gebruiker die je in PRTG gebruikt de bijbehorende rechten geven).
Wanneer je dat gedaan hebt kunnen we het WMI Tester programma gaan gebruiken om te kijken of we de PC kunnen bereiken. Gebruik hiervoor de volgende instellingen:

Klik voor groter formaat
Als het goed is, zou je dan een overzicht moeten krijgen van alle sensoren die Open Hardware Monitor uit kan lezen op de server PC.
Vervolgens zie je in het overzicht de matchende waarde die je ook in de GUI van Open Hardware Monitor ziet. In het blauw heb ik de "InstanceId" omcirkeld. Deze gaan we later gebruiken bij het toevoegen van de sensor aan PRTG

Klik voor groter formaat
Troubleshooting
Als je zover bent gekomen: Mooi! Lees verder! Krijg je echter meldingen als "Access denied" kijk dan eens op deze link: http://www.paessler.com/k...rrors-when-monitoring-wmi
WMI WQL Script voor PRTG aanmaken
Nu kunnen we een WMI script gaan maken die PRTG later kan gaan gebruiken. Ga hiervoor naar de map
code:
1
| C:\Program Files\PRTG Network Monitor\Custom Sensors\WMI WQL scripts |
SQL:
1 | SELECT Value FROM Sensor WHERE InstanceId = '<#PH1>' |
De nieuwe sensoren toevoegen in PRTG
Ga dan naar Sensoren > Sensor toevoegen > Voeg sensor aan een bestaand Apparaat toe. Kies hier je server. Voer dan de volgende opties in:
Wat te Monitoren? > Custom Sensors
Doel Systeem Type? > Windows
Gebruikte Technologie ? > WMI
Kies dan voor de sensor "WMI (Klant Specifiek)". Je komt dan op het volgende scherm:

Klik voor groter formaat
Als je alle rode velden hebt ingevuld met de waardes naar keuze, dan komt er na een tijdje ongeveer zo'n grafiek uitrollen:
Klik voor groter formaatNu wijst het natuurlijk voor zich, dat je de waarde PH1 kunt vervangen voor de "InstanceId" waarde die correspondeert met de sensor naar keuze uit Open Hardware Monitor.
Evt. tweaking
Nu je de sensor(en) hebt toegevoegd kun je er nog wat aan tweaken, zoals de decimalen weghalen (OHM meet toch maar met 2 cijfers voor de komma geloof ik), en een notificatie instellen zodat je een mailtje krijgt als de waarden de ingestelde grens <X> overschrijden. Dit zal ik niet behandelen in deze tutorial, omdat het meer PRTG algemeen is.
Voetnoot
Je kunt Open Hardware Monitor zelf helaas niet binnen een VM draaien. Dit heb ik ook geprobeerd, maar dan leest hij dus geen temperaturen uit. Deze tutorial is dus alleen voor mensen die een variant van Windows met een desktop draaien (de Hyper-V core versie gaat dus ook niet lukken denk ik).
Happy tweaking!
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
2-finger scroll op je Windows laptop
Ik heb een tijdje een MacBook gebruikt, en de manier om met 2 vingers te scrollen op het touchpad werkte eigenlijk best goed. Toen ik weer achter m'n vertrouwde ThinkPad kroop miste ik die optie eigenlijk wel.
Volgens mij als je nu een laptop koopt dan zal hij die optie vast hebben, maar mijn oude vertrouwde ThinkPad heeft het dus niet. Vooral de mensen met een wat oudere laptop kunnen hier dus baat bij hebben.
Ik ging dus eens op Google zoeken naar mogelijkheden. Eerst werd ik afgeschrikt door een forumpost dat je touchpad het blijkbaar moet ondersteunen. Toen kwam ik iets tegen waar je andere Synaptic drivers kunt installeren (maar wel eerst die hele driverpackage a 53MB downloaden)
En vervolgens kwam ik hier op: http://code.google.com/p/two-finger-scroll/
zipje uitpakken, dubbelklikken op de .exe en het werkt! Op internet werd nog wel aangeraden om in de instellingen de "Scroll Mode" op "Smart" te zetten. Ook nog even een vinkje plaatsen bij "Start with Windows" (ik zou de .exe dan wel in de root van je C:/ ofzo zetten, anders verwijder je hem misschien) en je bent klaar!
Enige nadeel is wel dat hij alleen verticaal scrollen ondersteund, horizontaal doet hij niks mee... eens kijken of ik dat nog als suggestie kan indienen bij de maker
Happy scrolling!
Edit: Deze ondersteund ook horizontale scrolling
http://cl.ly/Efnv (wel de acceleration wat hoger zetten zodat hij gelijk is aan die andere applicatie)
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
Volgens mij als je nu een laptop koopt dan zal hij die optie vast hebben, maar mijn oude vertrouwde ThinkPad heeft het dus niet. Vooral de mensen met een wat oudere laptop kunnen hier dus baat bij hebben.
Ik ging dus eens op Google zoeken naar mogelijkheden. Eerst werd ik afgeschrikt door een forumpost dat je touchpad het blijkbaar moet ondersteunen. Toen kwam ik iets tegen waar je andere Synaptic drivers kunt installeren (maar wel eerst die hele driverpackage a 53MB downloaden)
En vervolgens kwam ik hier op: http://code.google.com/p/two-finger-scroll/
zipje uitpakken, dubbelklikken op de .exe en het werkt! Op internet werd nog wel aangeraden om in de instellingen de "Scroll Mode" op "Smart" te zetten. Ook nog even een vinkje plaatsen bij "Start with Windows" (ik zou de .exe dan wel in de root van je C:/ ofzo zetten, anders verwijder je hem misschien) en je bent klaar!
Enige nadeel is wel dat hij alleen verticaal scrollen ondersteund, horizontaal doet hij niks mee... eens kijken of ik dat nog als suggestie kan indienen bij de maker
Happy scrolling!
Edit: Deze ondersteund ook horizontale scrolling
http://cl.ly/Efnv (wel de acceleration wat hoger zetten zodat hij gelijk is aan die andere applicatie)
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
ThinkPad T30 accu laden in een ThinkPad uit de T4x serie onmogelijk? Nee hoor!
Mijn vader had nog een accu liggen van een ThinkPad T30. Ik mocht de accu hebben.
Ik heb geen ThinkPad T30, en m'n vader ook niet (meer). Ik was benieuwd naar de gezondheid van de accu, omdat ik hem open wou slopen en de lithium cellen wou gaan gebruiken in de X41 Tablet die ik toen had (is er uiteindelijk niet meer van gekomen, maar goed).
Ik moest hem dus op de een of andere manier aan m'n ThinkPad T40 hangen zodat ik met de IBM Battery MaxiMiser de battery health kon uitlezen.
Ik begon met het vergelijken van de accu aansluitingen, en tot mijn verbazing waren deze (bijna) identiek. Ze hadden allebei de plus en min pool op dezelfde plek zitten. Ik heb het er toen maar op gewaagd en begon met het solderen van een verloopkabeltje.
In een 15" T4x laptop zit een soort converterboardje tussen het moederbord en de Ultrabay (omdat de 15" laptops iets breder zijn dan de 14" ). Dit converterboardje heeft dezelfde aansluiting als de accu, en kon ik dus mooi gebruiken aangezien ik er toch nog eentje had liggen van een kapotte T42.
Het converterboardje heeft een male en female aansluiting, en aangezien ik ze beiden nodig had heb ik met de Dremel het printplaatje in 2en geslepen. Daarna een kabeltje tussen beide connectoren gesoldeerd, en m'n 'verlengkabel' was klaar.
Foto:

Klik voor groter formaat
Natuurlijk eerst proberen met de accu uit m'n T40 zelf, en dat werkte prima. Toen met bibberende knietjes, en de vrees dat er zometeen misschien een hele boel rook zou onstaan, de T30 accu er aangehangen, en TADAAAA het werkte, het oplaad lampje (batterijtje onderaan scherm) ging branden
Foto:

Klik voor groter formaat
Om te verifieren dat de accu uitgelezen kon worden startte ik IBM Battery MaxiMiser op, en ik kon alle accu details uitlezen
Ik kon ook het serienummer zien in dat programma, en het serienummer klopte met wat op de accu stond.
Bewijsfoto:

Klik voor groter formaat
02K7072 = typenummer van een T30 accu
Ik kon de T40 laptop ook gewoon laten werken zonder netstroom op alleen de T30 accu. Erg praktisch is het niet, zo'n accu die erbuiten hangt, maar wel gaaf dat het werkte.
Het is inmiddels al een tijdje geleden dat ik deze mod heb uitgevoerd, ik heb de T30 accu inmiddels al niet meer
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster
Ik heb geen ThinkPad T30, en m'n vader ook niet (meer). Ik was benieuwd naar de gezondheid van de accu, omdat ik hem open wou slopen en de lithium cellen wou gaan gebruiken in de X41 Tablet die ik toen had (is er uiteindelijk niet meer van gekomen, maar goed).
Ik moest hem dus op de een of andere manier aan m'n ThinkPad T40 hangen zodat ik met de IBM Battery MaxiMiser de battery health kon uitlezen.
Ik begon met het vergelijken van de accu aansluitingen, en tot mijn verbazing waren deze (bijna) identiek. Ze hadden allebei de plus en min pool op dezelfde plek zitten. Ik heb het er toen maar op gewaagd en begon met het solderen van een verloopkabeltje.
In een 15" T4x laptop zit een soort converterboardje tussen het moederbord en de Ultrabay (omdat de 15" laptops iets breder zijn dan de 14" ). Dit converterboardje heeft dezelfde aansluiting als de accu, en kon ik dus mooi gebruiken aangezien ik er toch nog eentje had liggen van een kapotte T42.
Het converterboardje heeft een male en female aansluiting, en aangezien ik ze beiden nodig had heb ik met de Dremel het printplaatje in 2en geslepen. Daarna een kabeltje tussen beide connectoren gesoldeerd, en m'n 'verlengkabel' was klaar.
Foto:
Klik voor groter formaat
Natuurlijk eerst proberen met de accu uit m'n T40 zelf, en dat werkte prima. Toen met bibberende knietjes, en de vrees dat er zometeen misschien een hele boel rook zou onstaan, de T30 accu er aangehangen, en TADAAAA het werkte, het oplaad lampje (batterijtje onderaan scherm) ging branden
Foto:
Klik voor groter formaat
Om te verifieren dat de accu uitgelezen kon worden startte ik IBM Battery MaxiMiser op, en ik kon alle accu details uitlezen
Bewijsfoto:
Klik voor groter formaat
02K7072 = typenummer van een T30 accu
Ik kon de T40 laptop ook gewoon laten werken zonder netstroom op alleen de T30 accu. Erg praktisch is het niet, zo'n accu die erbuiten hangt, maar wel gaaf dat het werkte.
Het is inmiddels al een tijdje geleden dat ik deze mod heb uitgevoerd, ik heb de T30 accu inmiddels al niet meer
Laat weten wat je van deze blogpost vind door te stemmen






Met dank aan CodeCaster