Nagios: check_qnap

Servus allerseits,
heute war ich auf der Suche nach einem fertigen plugin, welches mein qnap nach den gängigen Infos abfragt. Im Nagios-Port fand ich bereits eine Version von Mad-Eye, die allerdings noch die ein oder andere Macke hatte. Dank der super Community habe ich nun eine fertig, funktionierende Version zusammen gebastelt.
Usage: ./check_qnap <hostname> <community> <part> <warning> <critical>
Parts are:  cpu, diskusage, temp, hdstatus and volstatus (volstatus = Raid Info)
Example: ./check_qnap 127.0.0.1 public diskusage 80 95
Download: check_qnap

#!/bin/bash
if [ ! "$#" == "5" ]; then
echo -e "\nWarning: Wrong command line arguments. \nUsage: ./check_qnap &lt;hostname&gt; &lt;community&gt; &lt;part&gt; &lt;warning&gt; &lt;critical&gt;\n \nParts are:  cpu, diskusage, temp, hdstatus and volstatus (volstatus = Raid Info)\nExample: ./check_qnap 127.0.0.1 public diskusage 80 95\n" &amp;&amp; exit "3"
fi
strHostname=$1
strCommunity=$2
strpart=$3
strWarning=$4
strCritical=$5
# Check ob QNAP erreichbar ist
TEST=$(snmpstatus -v 1 $strHostname -c "$strCommunity" -t 5 -r 0 2&gt;&amp;1)
# echo "Test: $TEST";
if [ "$TEST" == "Timeout: No Response from $strHostname" ]; then
echo "CRITICAL: SNMP to $strHostname is not available";
exit 2;
fi
# DISKUSAGE ---------------------------------------------------------------------------------------------------------------------------------------
if [ "$strpart" == "diskusage" ]; then
disk=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.4.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
used=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4}' | sed 's/.\(.*\)/\1/')
freedisk=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $4, $5}' | sed 's/.\(.*\)/\1/')
GBtest=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.5.1 | awk '{print $5}' | sed 's/.*\(GB\).*/\1/')
disk=$(echo "scale=0; $disk*100" | bc -l | sed 's/\(.*\).../\1/')
if [ "$GBtest" == "GB" ]; then
used=$(echo "scale=0; $used*100/1000" | bc -l | sed 's/\(.*\).../\1/')
else
used=$(echo "scale=0; $used*100" | bc -l | sed 's/\(.*\).../\1/')
fi
let "PERC=(100-($used*100)/$disk)"
strOutput="Used=$[PERC]% 'free Disk'=$freedisk|'Used'=$[PERC]%;$strWarning;$strCritical;0;100"
if [ $PERC -ge "$strCritical" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $PERC -ge "$strWarning" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0
# CPU ----------------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "cpu" ]; then
CPU=$(snmpget -v1 -c "$strCommunity" -mALL $strHostname 1.3.6.1.4.1.24681.1.2.1.0 | awk '{print $4}' | sed 's/.\(.*\)../\1/')
strOutput="CPU=$[CPU]%|'CPU'=$[CPU]%;$strWarning;$strCritical;0;100"
if [ $CPU -ge "$strCritical" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $CPU -ge "$strWarning" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0
# Temperature---------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "temp" ]; then
TEMP0=$(snmpget -v1 -c "$strCommunity" -mALL $strHostname 1.3.6.1.4.1.24681.1.2.11.1.3.1 | awk '{print $4}' | cut -c2-3)
TEMP1=$(snmpget -v1 -c "$strCommunity" -mALL $strHostname 1.3.6.1.4.1.24681.1.2.11.1.3.1 | awk '{print $4}' | cut -c2-3)
if [ "$TEMP0" -ge "42" -o "$TEMP1" -ge "42" ]; then
echo Temperatur zu Hoch!
exit 2
else
let "TEMP=($TEMP0+$TEMP1)/2"
strOutput="Temp=$[TEMP]C|'Temp C'=$[TEMP]C;$strWarning;$strCritical"
if [ $TEMP -ge "$strCritical" ]; then
echo "CRITICAL: "$strOutput
exit 2
fi
if [ $TEMP -ge "$strWarning" ]; then
echo "WARNING: "$strOutput
exit 1
fi
echo "OK: "$strOutput
exit 0
fi
# Volume Status----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "volstatus" ]; then
Vol_Status=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.17.1.6.1 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
if [ "$Vol_Status" == "Ready" ]; then
echo OK: $Vol_Status
exit 0
elif [ "$Vol_Status" == "Rebuilding..." ]; then
echo "Warning: "$Vol_Status
exit 1
else
echo "CRITICAL: "$Vol_Status
exit 2
fi
# HD Status----------------------------------------------------------------------------------------------------------------------------------------
elif [ "$strpart" == "hdstatus" ]; then
HD0=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.1 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
HD1=$(snmpget -v1 -c "$strCommunity" -mALL "$strHostname" 1.3.6.1.4.1.24681.1.2.11.1.7.2 | awk '{print $4}' | sed 's/^"\(.*\).$/\1/')
if [ "$HD0" == "GOOD" -a "$HD1" == "GOOD" ]; then
echo OK
exit 0
else
echo ERROR
exit 2
fi
#----------------------------------------------------------------------------------------------------------------------------------------------------
else
echo -e "\nUnknown Part!" &amp;&amp; exit "3"
fi
exit 0

Gruß
Cons

In die Tiefen von PCOIP

Nachdem mir heute meine RSS-Feed verloren gegangen sind, und ich auf der Suche nach meinen verlorenen Blogs war habe ich etwas sehr geiles gefunden.
Wer schonmal versucht hat die Performance von Zero-Clients bzw. die Schwachstellen zu suchen, hat das pciop_server.log vielleicht schon mal gesehen.
In dieser Masse von Performance-Werten hat man eigentlich keine Chance per Hand etwas raus zu bekommen.
Nunja, über die Vmware-Community bin ich auf „Chuck“ bzw. sein „PCOIP Log View“ gestoßen. -> URL
Damit kann das Logfile sogar direkt per WMI ausgelesen werden und somite Live-Daten anzeigen.
Leider ist sein Tool noch nicht offiziell veröffentlicht, hier aber schon mal ein paar Screenshots vorab.


Das sieht schon mal sehr viel versprechend aus. Hoffen wir, dass das Tool kostenlos ist und bald veröffentlicht wird 😉

Disk Timeout aendern auch für Exchange recommended

Wer den folgenden Reg-Key schon mal gesehen hat, hat entweder viel mit Vmware View zu tun oder kennt sich allgemein etwas besser mit Windows aus 🙂
Bei den verschiedenen Client-VM’s via Vmware View wird recommended den TimeoutValue auf 180 Sek. zu setzen.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Disk\TimeOutValue

Nun habe ich im gelesen, dass Microsoft ebenfalls die Anpassung für einen Exchange-Server vorsieht. -> Blogpost
Je nach Storage:

ScenarioRecommendation
Direct-Attached Storage
  • Reduce Windows disk TimeOutValue to 20 seconds
  • Refer to hardware manufacturer’s guidance
  • Hardware manufacturer’s guidance takes priority in the event of a clash
SAN-Attached RAID Storage
  • Reduce Windows disk TimeOutValue to 20 seconds
  • Refer to hardware manufacturer’s guidance
  • Hardware manufacturer’s guidance takes priority in the event of a clash
JBOD Storage
  • Increase Windows disk TimeOutValue to 180 seconds
  • Refer to hardware manufacturer’s guidance
  • Hardware manufacturer’s guidance takes priority in the event of a clash

 

Nutzliches Tool für vMware Ubersicht

vKernel Logo
vKernel hat ein neues kostenloses Tool veröffentlicht – vScope. Dieses soll vorallem zur Übersicht dienen, wie man in dem Screenshot auch schon sehen kann.
Relative eindeutige Statusanzeigen durch Grün/Rot/Orange Felder. Ich werde es die Tage mal ausprobieren und noch weiter darüber schreiben.
Auszug von der Hompeage über die Funktionen:

  • Visualize Performance, Capacity & Efficiency Across an Environment
  • Identify VM Performance Issues Across an Environment
  • Spot Host Performance Problems Across an Environment
  • Find Host Capacity Issues Across an Environment
  • Identify VM Resource Efficiency Issues Across an Environment
  • Spot Inefficient Datastores Across an Environment
  • Project environment health onto a data center NOC screen
  • See All VMs, Hosts and Datastores Across Many vCenters and Data Centers

vScope Explorer
Link zur Webseite: http://www.vkernel.com/products/vscope-explorer

Sicherheitswarnung bei "Datei oeffnen" per GPO bzw. Registry deaktivieren

Ohne viel Schmankerl: Seit XP gibt es die Execution Prevention, in anderen Worten eine Dialogbox die beim Aufruf möglicher unsicherer Programme aufpoppt.
Setzt man diese Registry keys per GPO ist man die Meldung los. (Zusätzlich kann man noch die Internet Explorer – Sicherheitseinstellungen bzw. Zonen/Sites konfigurieren)

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Associations]
"DefaultFileTypeRisk"=dword:00001808
"LowRiskFileTypes"=".exe;.lnk"
"ModRiskFileTypes"=".doc;.pdf;.xls;.exe;.lnk"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Associations]
"DefaultFileTypeRisk"=dword:00001808
"LowRiskFileTypes"=".exe;.lnk"
"ModRiskFileTypes"=".doc;.pdf;.xls;.exe;.lnk"

Das ganze ist hier sehr gut beschrieben.

KVM Switch? Nein Danke! – Mehrere Computer mit nur einer Maus/Tastatur benutzen

Ich habe hier ein sehr nützliches Tool gefunden, was dem ein oder anderen KVM Switch wohl adiö sagen kann.

„Mouse without borders“ stammt von einem Microsoft Dev der das Tool nebenher geschrieben hat. Damit kann man mehrere Computer mit nur einer Maus & Tastatur steuern.
Das funktioniert ganz einfach, wenn man über den Bildschirmrand hinausscrollt landet man automatisch auf dem jeweiligen anderen PC.
Auch sehr cool, man kann direkt per Drag & Drop Dateien einfach auf ein anderen PC kopieren.
Funktioniert natürlich nur mit Windows-Rechnern und klappt nicht für die Steuerung im BIOS etc.

Download „Mouse without borders“
Alternative: Sharemouse
Für alle Mac-User dürfte allerdings das Programm „Sharemouse“ die richtige Wahl sein. Dies funktioniert auf Mac OSX und Windows. Sieht auch sehr nett aus.
Sharemouse ist für Privatanwender kostenlos. (Unterstützt aber nur 2 Computer)
Hier ein kleines Beispielvideo:

Computerbezogen den Kompatibilitätsmodus fuer Programme konfigurieren

Ich war des längerem auf der Suche, wie ich global für mehrere Benutzer den Kompatibilitätsmodus konfigurieren kann.
Als ich dann mit Regshot mal einen vorher/nachher Vergleich gemacht habe bin ich auf den folgenden Reg-Wert gestoßen:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Das ganze funktioniert auch für HKEY_LOCAL_MACHINE, die Flags dazu wie z.B. Kompatible für „Windows XP Sp3“ oder als „Administrator ausführen“ sind in folgenden Beitrag sehr gut beschrieben:

Running an Application as Administrator or in Compatibility Mode


 

Howto: Change Windows Font Size in a Vmware View 5 VM

Hallo zusammen,
wer Virtuelle Desktops mit Zero-Clients einsetzt wird schon gemerkt haben, dass Einstellungen wie z.B. Auflösung, Monitor Position oder Tastatur & Mauseinstellungen nicht direkt in der VM gemacht werden, sondern vom Client/Host vorgegeben werden. In meinem Fall lässt sich das über das OSD der Samsung NC240 Zero-Clients einstellen.
Jedoch fehlt dort die Möglichkeit die Windows-Schriftgröße abzuändern.

Die Einstellung wird vom View Agent deaktiviert.

Dies kann man nach Absprache mit dem Vmware Support jedoch per GPO-Registry Key abändern:

Can you modify (if not present create) this registry value..?
HKCU\Control Panel\Desktop\LogPixels
Here are the different values and their meanings :
- Decimal : 96 ==&gt; 100%
- Decimal : 120 ==&gt; 125%
- Decimal : 144 ==&gt; 150%
You should be able to apply this via GPO, at user level.

In meiner GPO sieht das dann so aus:
Damit nicht direkt jeder User die Schriftart vergrößert bekommt, habe ich diese Gruppen abhängig gemacht.
Mal sehen ob demnächst ein Firmware Update von Teradici dazu kommt.
Gruß
Cons
 
Nachtrag: Vmware KB kommt in den nächsten Stunden : http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2009016

iPhone 4S konfigurieren für Exchange Active Sync 2010 und WLAN 802.1X via Zertifikate

Servus,
aus gegebenem Anlass schreibe ich hier mal eine Anleitung für das neue iPhone 4S. (Funktioniert wohl mit älteren Versionen ebenfalls)
Da es doch oft nervig ist, wenn man sein Windows-Kennwort immer an mehreren Stellen ändern muss – dachte ich mir dies für das Handy komplett mit Zertifikaten abzulösen.
Man benötigt:
– Root Zertifikat
– User Zertifikat
(Auf die Einstellungen des Access-Points und Exchange/Forefront gehe ich hier mal nicht näher ein.)
Für die vereinfachte Konfiguration des iPhone gibt es ein Konfigurationstool, momentan in der Version 3.3.
iPhone-Konfigurationsprogramm 3.3
Windows: https://support.apple.com/kb/DL926?viewlocale=de_DE
Mac OSX: https://support.apple.com/kb/DL851?viewlocale=de_DE
Innerhalb der Software erstellt man ein Konfigurationsprofil, was man dann den angeschlossenen Geräten zuweisen kann.

Zertifikate importieren
Schritt 1: Hier müssen das Root sowie das User Zertifikat importiert werden.

Schritt 2: Exchange: Server Adresse eingeben, ggf. SSL verwenden und Zertifikat auswählen. (Einschl. Kennwort)

Schritt 3: W-Lan konfiguration | SSID eingeben und Authentifizierungsprotokolle auswählen

Schritt 4: Im Reiter "Authentifizierung" muss das Userzertifikat ausgewählt werden.

Schritt 5: Abschließend noch unter "Vertrauen" das eigene Root-Zertifikat auswählen.

Wie schon oben beschrieben muss nun das Konfigurationsprofil noch dem Gerät zugewiesen werden. Hat man auf Installieren geklickt muss es nochmal auf dem Handy selbst bestätigt werden.
 
Nachtrag: das iPhone Konfigurationsprogramm gibt es nun in der Version 3.4 | Bisher sind mir aber keine gravierenden Neuerungen aufgefallen.