Categories
Linux Programmierung

Netbeans: Scanning for external changes

Vor einiger Zeit bin ich von PHPEd auf Netbeans PHP umgestiegen. Mir gefällt z.B. das Projekthandling, die eingebaute Versionierungsanbindung und speziell die Plattformunabhängigkeit. PHPEd ist zwar klasse unter Windows aber da ich meist unter Linux unterwegs bin und die Wine-Unterstützung für PHPEd nicht so gut ist (Geschwindigkeit) bin ich letztendlich zu Netbeans gewechselt. Dies nur am Rande.

Netbeans nervt aber ab und an mit seiner ewigen Scannerrei nach Änderungen im Code. Mitunter wechselt man den Fokus und Netbeans scannt (auch den Server) nach Änderungen (“Scanning for external Changes”).

Unter folgendem Link ist ein Plugin beschrieben mit welchem man das Verhalten normalisiert: ScanOnDemand.

Categories
Allgemein

Firefox und das Zonenmodell (Windows Server)

Wenn ich einen Windows-Server installiere kommt als erstes der Firefox drauf.

Aus mir unverständlichen Gründen gängelt Microsoft die Serveradministratoren auf unerträgliche Weise: Quasi nichts ist im Internet-Exporer erlaubt. Surfen und Downloads schon gar nicht. Warum ausgerechnet Administratoren? Kein Vertrauen in die eigene Architektur? Die Antwort weiß wohl nur MS. Darum als erstes Firefox auf den Server.

Interessanterweise hält sich mittlerweile (seit Version 3.1) auch der Firefox an das Zonenmodell des Internet-Explorers. Durch folgenden Boolean-Wert unter “about:config” lässt sich ihm das schnell wieder abgewöhnen:

browser.download.manager.skipWinSecurityPolicyChecks = true
Categories
Linux

mod_rewrite: ohne www. nach www. weiterleiten

Kleines mod_rewrite reciept um URIs ohne “www.” nach URIs mit “www.” weiterzuleiten. Verbesserungen willkommen…

RewriteEngine on
RewriteCond %{HTTPS} =on
RewriteRule ^(.+)$ - [env=ps:https]
RewriteCond %{HTTPS} !=on
RewriteRule ^(.+)$ - [env=ps:http]

RewriteCond %{HTTP_HOST}   !^www\.%{HTTP_HOST} [NC]
RewriteCond %{HTTP_HOST}   !^.*\..*\..* [NC]
RewriteRule ^/(.*)         %{ENV:ps}://www.%{HTTP_HOST}/$1 [L,R]

Inspiriert von hier.

Categories
Linux

Ubuntu: Java-Plugin für Firefox

Seit Ubuntu 10.04 (lucid) sind einige Pakete von Multiverse ins Partner-Repository gewandert. So z.B. auch das “original” Java SDK/JRE von Sun.

Es genügt in den Paketquellen das “Partner” Repository zu aktivieren oder hinzuzufügen:

sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
sudo apt-get update

Danach lässt sich z.B. das das Runtime Environment installieren:

sudo apt-get install sun-java6-jre

Für das Firefox-Plugin fehlt dann noch ein symbolischer Link:

ln -s /usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/amd64/libnpjp2.so \
~/.mozilla/plugins/

Im Firefox sollte “about:plugins” in der Adresszeile jetzt auch das Java-Plugin anzeigen.

Update: Ubuntu 12.04/Precise

Da mittlerweile openjdk unter Ubuntu standard ist, reicht es das icedtea-plugin Paket zu installieren:

sudo apt-get install icedtea-plugin
Categories
Linux

GRUB2 Kernelparameter

Bisher (grub) konnte man Kernelparameter immer in der /boot/grub/menu.lst direkt eintragen. Bei Grub2 unter Ubuntu ist alles anders. Die menu.lst bzw. grub.cfg wird aus den Einträgen in /etc/grub.d und /etc/default/grub generiert. Das macht vieles einfacher.

Um z.B. generell bei allen konfigurierten Linux-Bootkerneln einen Parameter anzugeben reicht es in der Datei /etc/default/grub folgenden Eintrag zu ändern:

GRUB_CMDLINE_LINUX_DEFAULT="quiet 8250.nr_uarts=10"

Danach ist einmal “grub-update” notwendig. Für weitere Infos siehe hier.

Categories
Linux

OpenNMS: Memcached mit SNMP überwachen

opennmsIn OpenNMS gibt es zwar auch einen “nativen” Memcached-Monitor – aber dieser funktioniert nur wenn der Memcached direkt über das Netz vom Monitorserver aus erreichbar ist.

Mit der bekannten SNMP-extend Methode lässt sich der Memcached Daemon auch gut via SNMP mit OpenNMS überwachen. Hier nur kurz die wichtigsten Scripte und Schritte:

Service überwachen

Das geht am einfachsten über das “HostResourceSwRunPlugin” Plugin welches die laufenden Prozesse via SNMP überwacht. Zunächst muss der Service überhaupt erkannt werden:

/etc/opennms/capsd-configuration.xml

    
	
	
	
    

Dann wird die Überwachung definiert:
/etc/opennms/poller-configuration.xml

   ...

    
    
    
    
    

 ...
    

Statistiken

Um noch ein paar Graphen zu generieren werden per SNMP noch die Statusdetails des Memcached Daemons übertragen…

Categories
Linux

SVG Content-Type setzen

Um beim Apache den Content-Type für *.svg Dateien korrekt zu setzen:


ForceType image/svg+xml

Categories
Tools

Nachtrag: VLC WM-Streaming

Nur damit ich die Kommandos in 4 (oder 2) Jahren nicht vergesse:

#ARD
cvlc dvb-t:// :dvb-frequency=690000000 :dvb-bandwith=8 :program=256 \
--sout '#standard{access=http,mux=ogg,dst=0.0.0.0:8080}'
#ZDF
cvlc dvb-t:// :dvb-frequency=586000000 :dvb-bandwith=8 :program=514 \
--sout '#standard{access=http,mux=ogg,dst=0.0.0.0:8080}'
#Eurosport (Update)
cvlc dvb-t:// :dvb-frequency=722000000 :dvb-bandwith=8 :program=16420 \
--sout '#standard{access=http,mux=ogg,dst=0.0.0.0:8080}'

Das Paket für den VLC ohne GUI unter Ubuntu heißt “vlc-nox”. Damit wird das Signal vom DVB-T USB-Stick im Raum Düsseldorf per HTTP Port 8080 im lokalen Netz verteilt. Bei vielen Clients sollte man lieber per Multicast streamen…

Update: Es gibt doch tatsächlich noch ein paar Tour-de-France gucker heute, daher auch noch das Kommando für Eurosport.

Categories
Linux Networking

2 NICs mit Policy Based Routing (PBR)

Es gibt viele Gründe für 2 Netzwerkkarten im Server. Sollen diese in unterschiedliche Netze angebunden werden gibt es Probleme weil normalerweise nur ein Standardgateway existiert.

Der Traffic verlässt zwar korrekt den Server über die gesetzten Routen, jedoch die Pakete an fremde Ziele verlassen den Server immer über die default-route, also u.U. nicht über das richtige Interface.

Folgend kurz die Schritte zum Einrichten eines Policy-Based Routing unter Debian/Ubuntu…

Ausgangslage

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.10.7.56    0.0.0.0         255.255.255.248 U     0      0        0 eth0
10.10.6.32    0.0.0.0         255.255.255.224 U     0      0        0 eth1

Neue Einträge anlegen

echo "1 dmz-a" >> /etc/iproute2/rt_tables
echo "2 dmz-b" >> /etc/iproute2/rt_tables

eth0 Route anlegen

ip route add 10.10.7.56/29 dev eth0 src 10.10.7.58 table dmz-a
ip route add default via 10.10.7.57 dev eth0 table dmz-a
ip rule add from 10.10.7.58/32 table dmz-a
ip rule add to 10.10.7.58/32 table dmz-a

eth1 Route anlegen

ip route add 10.10.6.32/27 dev eth1 src 10.10.6.35 table dmz-b
ip route add default via 10.10.6.33 dev eth1 table dmz-b
ip rule add from 10.10.6.35/32 table dmz-b
ip rule add to 10.10.6.35/32 table dmz-b

Das Kommando “ip route show” sollte jetzt die entsprechenden Einträge zeigen.
Theoretisch könnte man sich das PBR für eine der beiden NICs sparen wenn man dort einfach die klassische default-route setzt. Hier noch eine ausführliche Anleitung zum Thema.

Categories
Linux

Update auf OpenNMS 1.8 (Cardinal)

opennmsEs ist soweit: OpenNMS 1.8 ist da. Eher unbeabsichtigt kam ich soeben in die Lage unser NMS auf Version 1.8 zu hieven. Eigentlich wollte ich nur ein paar Updates einspielen und rechnete nicht damit, dass ein Major-Update darunter war ;). Glücklicherweise lief alles bis auf eine Kleinigkeit problemlos.

Da ich das OpenNMS-repository in der sources.list habe, reichte mein routinemäßig durchgeführtes “apt-get update && apt-get upgrade” um OpenNMS auf 1.8 zu bringen. Die Fragen zum Überschreiben diverser Konfigurationsdateien habe ich alle mit “N” beantwortet. Die neuen Dateien werden dann mit *.dpkg-dist angelegt. Anschließend bin ich die Änderungen manuell durchgegangen – schließlich möchte ich nichts neues verpassen und aber auch meine alten Daten weiterverwenden.

OpenNMS startete. Leider konnte ich mich nicht in das Webinterface einloggen. Irgendeine Fehlermeldung die Datenbank betreffend. Hmm, da scheint apt wohl die Datenbank nicht aktualisiert zu haben (warum eigentlich nicht?). Da ich nicht wusste was zu tun ist, bin ich nochmal den oben erwähnten Wiki-Eintrag durchgegangen. Im Abschnitt “Initialize OpenNMS and the Database” fand sich dann der unscheinbare aber wichtige Satz:

Upon upgrade, you should run this command again to make sure your database schema and other things required at startup are up-to-date

Also folgendes Kommando ausgeführt:

/usr/share/opennms/bin/install -dis

Anschließend konnte ich mich wieder einloggen. Auf dem ersten Blick scheint alles das Update überstanden zu haben. Die custom-Poller arbeiten und meine Graphen werden weiter aufgezeichnet. Jetzt schaue ich mir erst mal die neuen Features an…