Categories
Linux

Ubuntu: SNMP IfSpeed Bug

Wegen unzureichender Zugriffsrechte kann der SNMP-Daemon die NIC-Geschwindigkeit nicht auslesen und setzt sie (merkwürdigerweise) auf 10MBit (10000000). Der Bug ist auch schon etwas älter. Ohne jetzt lange gesucht zu haben lasse ich snmpd einfach als root laufen (RedHat macht das ja auch ;)) – dann werden die Werte wenigstens richtig ausgelesen.

Die aktuelle Verbindungsgeschwindigkeit von Netzwerkinterfaces korrekt per SNMP auszulesen hat mir schon öfters Nerven gekostet: Hin und wieder taucht das Problem mit den 10MBit auch bei Bonding-Interfaces auf (z.B. bei der Astaro-Firewall).

Categories
Linux

SNMP-Agent für MySQL

Vor Jahren habe ich für Cacti ein Script geschrieben welches MySQL-Informationen über eine native MySQL-Verbindung ausliest und anzeigt. Jetzt wollte ich das selbe Script eigentlich fit für OpenNMS bzw. SNMP machen.

Die Arbeit kann ich mir zum Glück sparen. Es gibt mittlerweile einen eleganteren Ansatz: mysql-snmp (Projektseite).

Für OpenNMS User wird anscheinend sogar schon die fertige Konfiguration mitgeliefert. Ausprobiert habe ich das ganze noch nicht – werde ich aber sicher sehr bald ;)

Categories
Programmierung

1,2 Sekunden (eine Ewigkeit)

Bei mir jetzt auch ein Artikel über Profiling. Soeben erlebt: Eine relativ kleine Webseite mit eigenem ollen CMS brauchte relativ lange (1,25 Sekunden) um eine Seite zu generieren. Zunächst die Datenbankabfragen angeschaut – nichts schlimmes gefunden. Also schnell den (proprietären) Profiler angeschmissen. Es zeigte sich folgendes Bild:

1,2 Sekunden? Arg viel. Ein Blick in die betreffende Zeile:

$string = strtr($string, $replace);

Hmm, da scheint strtr wohl nicht so performant zu sein. Noch nett ausgedrückt. Ausweichcode ausprobiert:

foreach ($replace as $key => $value) {
       $string = str_replace($key, $value, $string);
}

Dauert jetzt 12ms. Unglaublich.

Links
http://www.cznp.com/blog/3/strtr-vs-str_replace-a-battle-for-speed-and-dignity
http://www.simplemachines.org/community/index.php?topic=175031.0

Categories
Allgemein

Windows 7 & Internet Explorer 6

windows31Leider ist man noch gezwungen seine Webanwendungen im IE6 zu testen. Bisher habe ich unter XP immer das Paket Multiple IE verwendet – dieses bietet die ganze IE Reihe von IE3 bis IE6 an.

Leider läuft “Multiple IE” bzw. eher der IE6 nicht mehr unter Windows 7. Ein einigermaßen akzeptabler Workaround ist der “XP Modus” von Windows 7. Damit läuft der IE6 jetzt im “Virtalisierten XP Fenster”.

Links dazu
http://www.microsoft.com/windows/virtual-pc/download.aspx
http://blog.tim-bormann.de/inoffizielle-anleitung-windows-7-xp-mode.html

Categories
Linux

Libnotify for Mozilla

Nur eine kleine banale Notiz am Rande: Die Libnotify-Extension funktioniert seit Version 0.1.4-beta auch mit dem Thunderbird 3 unter Ubuntu.

Damit klinkt sich Thunderbird in das Notify System von Ubuntu/Gnome ein und liefert nette Mail-Notification-Popups auf den Desktop…

Categories
Linux Plesk

Jahr 2010 Problem

Komisch, gestern an Sylvester dachte ich noch daran welcher Hype damals vor 10 Jahren (!) um das Jahr 2000 gemacht wurde.

Jetzt scheint es wirklich ein kleines Jahr 2010 Problem zu geben: Spamassassin markiert nämlich ab heute alle Mails mit einem relativ hohen Score weil sie ein Datum aus einem Jahr größer 2010 besitzen. Näheres hier bei heise bzw. im SA-Bug-Report.

Auf die schnelle (bis sa-update einen Fix liefert) habe ich erstmal in der local.cf den Score für den betroffenen Filter heruntergesetzt:

# /etc/mail/spamassassin/local.cf
score FH_DATE_PAST_20XX 0.0
Categories
Trivial

YMMD

Für alle die auch bei Twitter nach dem Sinn fragen. Für bestimmte Personen verwende ich jetzt nur noch HugeURL.

Der Link zu diesem Blog:

http://www.hugeurl.com/?Y2MxZDQ3OWE5OGZlOTkzZGM0OTgwNmQ2Mzli
ODA1NjgmMTUmVm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSWFJteFZVMjA1
VjAxV2JETlhhMk0xVmpGYWMySkVUbGhoTWsweFdWZDRTMk14WkhGUmJGWlhZ
a2hDVVZacVFtRlpWMDE1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GWkZwV01E
RTFWVEowVjFaWFNraGhSemxWVmpOT00xcFZXbUZqVmtaMFVteFNUbUY2UlRG
V1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0weGIxSkdXbGRYYlVaclVqRmFTRll5
TVRSVk1rcElaSHBHVjJFeVVYZFpla3BIWXpGT2RWVnRhRk5sYlhoWFZtMXdU
MVF3TUhoalJscFlZbFZhY2xWcVFURlNNWEJHVjJ4T1ZXSkdjRlpXYlhSM1Zq
SktWVkpZWkZwV1JWcHlWVEJhVDJOc2NFaGpSbEpUVmxoQ1dsWnJXbGRaVjFG
NFZHdGtWbUpHV2xSWmJGWmhZMVphZEdSSFJrNVNiRm93V2xWYVQxWlhTbFpY
VkVwV1lrWktTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGTnJa
RlJpVjNoVVZGY3hiMWRzV1hoYVJGSnBUV3RzTTFSVmFHOVhSMHBJVld4c1dt
SkdXbWhaTW5oWFl6RldjbHBHYUdsU00xRjZWakowVTFVeFduSk5XRXBxVWxk
NGFGVXdhRU5UUmxweFUydGFiRlpzV2xwWGExcDNWakZLVjJOSWJGZFdSVXBv
VmtSS1QyTXlUa1poUjNCVFlrVndWVlp0ZUc5Uk1XUnpWMjVLV0dKSFVtOVVW
bHBYVGxaYVdFNVZPV2hpUlhBd1ZsZDRjMWR0U2tkWGJXaGFUVlp3ZWxreWVH
dGtSa3AwWlVaa2FWWnJiekZXYlhCS1RWZEZlRmRZWkU1V1ZscFVXVlJHZDFZ
eGJISlhhM1JUVW14d2VGVldhRzloTVZwelYycEdWMDF1YUdoWlZXUkdaVWRP
UjJKR2FHaE5WbkJ2Vm10U1MxUXlVa2RVYmtwaFVteEtjRlpxVG05WFZscFlZ
MFU1YVUxWFVraFdNalZUVkd4T1NGVnVUbFpoYTBwNlZHdGFWbVZYVWtoa1Iy
aFhZWHBXU0ZacVNqUlZNV1IwVTJ0b2FGSnNTbGhVVmxwM1YwWnJlRmRyZEdw
aVZrcElWbGQ0YTJGV1NuUlBWRTVYVFc1b1dGbHFTa1psUm1SWldrVTFWMVpz
Y0ZWWFZsSkhaREZrUjJKSVNtRlNlbXh4V1d0YWQyVkdWWGxrUjBacFVteHdl
bFl5ZUhkWFIwVjRZMGhLV2xaWFVrZGFWV1JQVWpKR1IyRkhiRk5pYTBwMlZt
MTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldN
MVlWVXhXRlZyYUZkTmFsWlVWa2Q0VDFOSFJrZFJiRnBwVmtWVmQxWnRjRWRW
TVZwMFVtdG9VRlp0YUZSVVZXaERVMnhhYzFwRVVtcE5WMUl3VlRKMGIyRkdT
bk5UYkdoVlZsWndNMVpyV21GalZrcDBaRWQwVTJFelFYZFhiRlpoWVRKR1dG
SllaR3BTVjNoWVdXeG9RMU14Y0ZaV1dHaFRUVmRTZWxsVldsTmhSVEZ6VTI1
b1YxWXpVbGhYVmxwYVpVWmtkVkpzVm1sV1IzaDZWMWQwWVdReVZrZFdXR3hy
VWpOU2IxbHNWbmRXTVZwMFkwZEdXR0pHY0ZoWk1HaExWMnhhV0ZWclpHRldW
MUpRVldwS1MxSXlSa2hoUlRWWFltdEtNbFp0TVRCVk1VMTRWVmhzVm1FeVVs
VlpiWFIzWWpGV2NWTnRPVmRTYlhoNVZtMDFhMVl4V25OalJFSmhWbGROTVZa
WGMzaFhSbFp6WVVaa1RsWXlhREpXYWtKclV6RmtWMVp1U2xCV2JIQnZXVlJH
ZDFOV1draGxSMFphVm0xU1IxUnNXbUZWUmxwMFlVWlNWVlpXY0dGVVZscGhZ
ekZ3UlZWdGNFNVdNVWwzVmxSS01HSXlSa2RUYms1VVlrZG9WbFp0ZUhkTk1W
bDNWMjVPVDJKRmNIcFhhMlIzWVZaT1JsTnJiRmROYmxKeVdYcEdWbVZXVG5W
VGJGSnBWbFp3V1ZkV1VrZGtNa1pIVjJ4V1UyRXhjSE5WYlRGVFpXeHNWbGRz
VG1oU1ZFWjZWVEkxYTFZeFdYcFZiV2hXWld0YVlWcFZXbGRqTWtaR1QxWmti
R0pZYURaV01XUXdXVmRSZVZaclpGZFhSM2h5VldwQ1lXTkdWblJsU0dSc1lr
WldOVnBWYUd0WFIwcEhZMFpvV2sxSGFFeFdha3BIWTJ4a2NtVkdaRTVXYmtK
SlYxUkplRk14U1hsU2EyUm9VbXhLVkZac2FFTlRNVnAwVFZSQ1ZrMVZiRFZW
YkdodldWWktXRlZzV2xwaVdGSXpXV3BHVjJOV1RuUlBWbVJUWWxob1lWZFVR
bUZoTWtWM1RWWmthbE5IYUZkV2JuQkdaREZzVjFaWWFGaFNiRnA2V1ZWYWEx
UnNXWGxoUkVwWFRWWndhRlY2UmtwbFJsSjFWbXhLYVZKc2NGbFhWM1J2VVRG
a1YxZHJhR3hTTUZwaFZtcEdTMU5XV25Sa1J6bG9UVlZzTlZsVmFFTldiVXBJ
WVVWU1ZXSllhSEpXYkZwSFpFWktkR05GTlZkTlZXd3pWbXhTUzAxSFJYaGFS
V2hVWWtkb2IxVnRNVzlaVmxweVZtMUdUazFZUWxsYVZXaExZa1paZUZkcmNG
aGhNWEJRVm1wS1JtVkhUa1ZXYkdSVFVsWndlVmRZY0VkV2JWRjNUVlZzYVZJ
eWFGUlpiR2h2VjFaa1dHVkhPVkpOVlRFMFdUQmFZVmRIUlhwUmJrNVdZbFJH
VkZwWGVITldiR1J6Vkcxb1YyRXpRWGhXVm1RMFl6RmtSMWR1VWxaV1JVcG9W
V3RXWVZsV2NGWlhiWFJyVm10d2VsWnRNWE5WTVZwSFYyeHdWMkpIVGpSVWEy
UlNaVlphY2xwR1pHbGlSWEJRVm0xNGExVXhaRWRWYkZwV1lUSlNjMVp0ZUV0
bGJGcDBUVVJXVjAxRVJsZFpibkJMVm0xS1dWVnVXbGRoYTFwb1ZXMTRhMk50
VmtkYVIyaG9UVEJLVWxac1kzaE9SbXhZVkZob2FsSlhhSEJWYlhNeFZERmFj
MWRzY0d4aVJuQXdXbFZrUjFack1WWmlSRkphWVRGd2NsWXdaRXRqYlU1R1Qx
WmthVmRIWjNwV2FrSmhZekZrV0ZSclpHRlNiVkpVV1d0YWQwNVdXblJOVkVK
YVZteEdORlp0ZUZkVWJFcElZM3ByUFE9PQ==

Categories
Linux

OpenNMS: Import aus XML

opennmsAutodiscovery in OpenNMS ist ein tolles Feature. Leider ist es nicht immer zu gebrauchen, da es derzeit nur begrenzt konfigurierbar ist. So möchte ich z.B. in einem bestimmten Netzbereich nur die jeweiligen Router der Teilnetze abfragen – und nicht alle Hosts auf Services scannen. Klar kann man auch Bereiche excluden bzw. includen – aber ich wollte ja Autodiscovery ;).

In der kommenden OpenNMS Version 1.8 sollen die Discovery bzw. die Capability-Checks (capsd) von einem neuen Daemon (“provisiond”) abgelöst werden welcher sich wohl auch besser an eigene Bedürfnisse anpassen lässt – z.B. ist als nettes Feature dann z.B. auch der Import von DNS-Zonen möglich. Dies aber nur Nebenbei.

Auf der Suche nach einem alternativen Import bin ich bei XML gelandet. Da die zu überwachenden Hosts in einem internen Wiki (Mediawiki) gepflegt werden, stehen diese über die eingebaute Export-Funktion auch als XML zur verfügung. So ist z.B. der OpenNMS Artikel bei Wikipedia auch als reines XML verfügbar: http://en.wikipedia.org/wiki/Special:Export/OpenNMS.

Ein cooles Tool zum verarbeiten von XML auf der Kommandozeile ist “xml2” (in vielen Distro-Repositories verfügbar). Kombiniert mit ein paar regulären Ausdrücken landen die richtigen IPs in einer Datei für den automatischen Import in OpenNMS:

wget -q -O - --http-user admin --http-passwd secret \
http://wiki.example.com/index.php/Spezial:Exportieren/IP_Plan \
| xml2 \
| awk '/(page\/revision\/text)*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)*(NMS:host)/ {print $2}' \
> /opt/include-hosts
Categories
Linux

Telnet per Bash-Script

Bei etlichen Routern die snmp-Community per telnet zu setzen kann mühsam werden. Ein Script muss her. Das telnet-Kommando ist anscheinend so nicht gut dafür geeignet um eingaben von STDIN zu verarbeiten. Durch google bin ich darauf gekommen, dass viele es mit “expect” lösen. Hier mein Script:

#!/bin/bash
for host in `cat /root/hosts` ; do 
expect << EOF
spawn telnet $host
expect "Login: "
send "admin\r"
expect "Password: "
send "secret\r"
expect -exact "-->"
send "snmp set communityname xxx manager xxx\r"
expect -exact "-->"
send "user logout\r"
EOF
done;

Die Hosts stehen in der Datei /root/hosts. Je in einer Zeile.

Categories
Allgemein

Outlook: Vorwärts in die Steinzeit

Wie ich (leider kürzlich erst) erfahren durfte, hat Outlook mit der Version 2007 einen gewaltigen Schritt nach vorne gemacht was die HTML-Renderingqualitäten angeht: Es setzt jetzt Word 2007 als HTML-Renderer ein. Ja, richtig gelesen: Word 2007. :D :D :D. Damit stellt Outlook HTML-Emails jetzt immerhin ungefähr genauso gut dar wie der Internet Explorer 5.

Ende mit der Ironie. Wieso ich jetzt erst darauf komme? Ein Nutzer der Nagios Notification Mail hat mich darauf gebracht, dass diese nicht korrekt mit Outlook 2007 dargestellt wird. Kann gar nicht sein, dachte ich, teste ich doch immer auch sicherheitshalber noch mit Outlook 2003. Outlook 2003 setzt immerhin auf die Rendering-Engine vom IE (6?).

Leider finde ich den Link jetzt nicht; aber ich meine ich hätte irgendwo (sinngemäß) folgende Begründung gelesen: Man wolle die Editierfunktionalität und die Renderqualität auf einen gemeinsamen Nenner bringen. LOL.