Jan 18 2009

MySQL Query-Statistik Script

Tag: Allgemein, Linux, Programmierung, Tricks & KniffeMartin @ 15:03

Da ich bis jetzt beim kurzweiligen suchen bei Google nichts gefunden habe was die Sache für mich übernimmt, habe ich mal ein Perl-Script zusammen geschustert, welche verschiedene Query-Statistiken von MySQL, je nach Bedarf, ausgibt.

Ich muss dazu sagen, dass dieses Script eigentlich dafür gedacht war, die Ausgabe via SNMP abzufassen und dann in Cacti darzustellen. Leider ist es dazu nicht gekommen.

Das Script macht sich aber auch zur “Just-in-Time” Kontrolle der Query-Quantität ganz gut oder um die Ausgabe mit einen kleinen Shell-Script-Wrapper in ein RRD zu schreiben und dann als Graph darzustellen.

In etwa würde das auf einer Linux-Shell dann so aussehen:

[root@server bin]# watch -n10 “./mysql_query_stat.pl -u root -p password -h mysqlserver -n 10 -SQUID;”

Every 10,0s: ./mysql_query_stat.pl -u root -p password -h mysqlserver -n 10 -SQUID;

QPSnow:      471
QPSall:        731
Selects/s:    381
Inserts/s:    16
Updates/s:   9
Deletes/s:   7

Dieser Befehl erzeugt die Ausgabe der jetzigen Query-Quantität aller 10 Sekunden. Für ander Optionen (wie z.B. die gut zu parsende One-Liner Ausgabe) könnt Ihr euch das Script ja mal anschauen.

Für Fragen, Anregungen, Bug-Reports oder Feature-Wünsche wäre ich dankbar.

Das Script gibts natürlich hier.

MfG Maddin


Dez 31 2008

Bootzeit verkürzen mit Hilfe von Bootchart und readahead

Tag: Linux, Tricks & KniffeMartin @ 13:14

Wer kennt das nicht:

  • Rechner einschalten
  • im Bootmenü das OS auswählen
  • das OS, in meinem Fall Linux (Ubtuntu 8.04 LTS), starten
  • Kaffee holen / auf Toilette gehen / Glotze anschalten und auf den Login warten

Da es mich aber mittlerweile etwas genervt hat, das die Boot-Zeit meines Systems mittlerweile bei knapp 1 Minute und 10 Sekunden liegt, was bei Bereitschaftsdiensten Nachts um 4 ganz schön lange sein kann, habe ich mich mal nach einem Visualisierungstool für den Linux-Boot-Prozess umgesehen.

Weiterlesen: “Bootzeit verkürzen mit Hilfe von Bootchart und readahead”


Jul 24 2008

Filterauswertung für SpamAssassin

Tag: Linux, Programmierung, Tricks & KniffeMartin @ 13:02

Viele von Euch oder zumindest diejenigen die ein funktionierendes Mailsystem ihr eigen nennen, werden um die Nutzung einer AntiSpam Software nicht herumkommen. Die wahrscheinlich bekannteste ist SpamAssassin. Da ich jedoch in diesem Artikel weder auf die Installation noch Beschreibung von SpamAssassin eingehen möchte, kann ich für interessierte Leser den Wiki-Artikel empfehlen.

Worauf ich zu sprechen kommen möchte, ist ein Script Namens sa-stats.pl. Dieses Perl Script, implementiert von David Ramsden, wertet SpamAssassin-Einträge aus Maillogfiles aus und gibt diese, aufgesplittet nach Spam und Ham, in tabellarischer Form aus. Dies ist z.B. sinnvoll um zu sehen welcher der User oder welche Domain prozentuall den meisten Spam erhält.

Da es unsere Mail-Admin’s aber auch interessiert, welche Filter dazu führen dass eine Mail als Spam deklariert wird, wurde ich beauftragt eine kleine Erweiterung des Scripts zu schreiben, welche die Quantität und den prozentualen Anteil der Filter augibt. Kurz gesagt eine Auswertung der von SpamAssassin vernwendeten Filter.

Interessierte finden das Script hier. Über Kritik, Lob, Anregungen oder sonstige Kommentare würde ich mich freuen.


Jul 14 2008

SSH, denn sicher ist sicher

Tag: Linux, Sicherheit, Tricks & KniffeFrank @ 10:31

SSH (Secure Shell) ist sowohl ein Protokoll als auch eine Reihe Von Anwendungen um dieses zu nutzen. Es wird genutzt um eine Verschlüsselte Verbindung zu entfernten Rechnern aufzubauen. Diese Verbindung kann dann quasi beliebige Daten transportieren, wird aber zumeist dafür benutzt eine Remotekonsole zu steuern oder Dateien zu übertragen (Secure Copy, SCP genannt). Das Protokoll ist auf OSI Schicht 7 angesiedelt und kommuniziert Standardmäßig (nach den Vorgaben der IANA) über Port 22.

Obwohl SSH an sich schon sehr Sicher ist, kommt es doch gelegentlich zu erfolgreichen Angriffen die es dem Angreifer dann natürlich unter Umständen ermöglichen Root-Rechte zu erlangen. Häufigste Ursache für den erfolgreichen Angriff sind in der Praxis meist schwache Passwörter und falsch konfigurierte SSH Daemons. Aus diesem Grund möchte ich hier darauf eingehen wie man den SSH Zugriff gegen diese beiden Faktoren härten kann.

Weiterlesen: “SSH, denn sicher ist sicher”


Jul 09 2008

Umleitung zu https vor basic authentication

Tag: Sicherheit, Tricks & Kniffe, WebMartin @ 17:02

Um euch das stundenlange suchen, Apache doku lesen und rumprobieren zu ersparen, werde ich euch hier verraten wie man vor der HTTP-Authentifizierung zu HTTPS wechselt.

Das eigentliche Problem der Basic-Authentication ist, dass diese Passwörter und Nutzernamen im Klartext übertragen werden. Leider ist das ja nicht immer gewollt und unter umständen sehr unsicher.

So hier nun zur Konfiguration. Am einfachsten klappt es in dem Ihr, im zu schützenden Verzeichnis, eine .htaccess Datei anlegt und folgenden Inhalt hinzufügt:

AuthUserFile /var/www/domain.tld/secret/.htpasswd
AuthType Basic
AuthName "Secret Site"
require valid-user
SSLrequireSSL
ErrorDocument 403 /redirect.php

Die ersten 4 Einträge sollten klar sein. Mit SSLrequireSSL erzwingt man denn Zugriff via HTTPS. Wird die Domain nur mit HTTP aufgerufen, antwortet der Apache mit einem 403 Fehler. Dies fangen wir mit dem Eintrag ErrorDocument 403 /redirect.php ab. In diesem steht nur:

<?php
header('Location: https://www.domain.tld/secret/');
?>

So leiten wir alle normalen HTTP anfragen direkt auf HTTPS um. Danach erfolgt die Basic Authentication. Und schon wird die Authentifizierung nur noch über HTTPS abgewickelt.

Tolle Sache :-)


Jul 05 2008

Zeilen ausschneiden mit sed oder perl / cut out lines with sed or perl

Tag: Linux, Tricks & KniffeMartin @ 13:52

Wer kennt das nicht, man hat einen riesigen sql dump und möchte nur eine Tabelle daraus haben um diese erneut anzulegen. Aber der sql dump ist 2 GB gross und zum suchen in less oder vim hat man keine lust.

Hier kommt die Lösung, auf dieses Problem:

sed -n '/^CREATE TABLE foobar/,/^)\;/p' dump.sql

Wie einfach doch die Welt sein kann. Dieser Einzeiler eignet sich natürlich hervorragend um auch andere Daten aus Texten heraus zu schneiden.

[UPDATE]

Natürlich geht das auch wunderschön mit Perl:

cat test.txt | perl -ni -e 'print if m/^ANFANG/..m/^ENDE/;'

Jun 10 2008

VMware Server (Beta 2) bridging über WLan

Tag: Tricks & Kniffe, VirtualisierungFrank @ 07:26

Aus verschiedensten Gründen kann es praktisch sein den Heimischen VMware Server über eine Funknetzwerk karte zu betreiben. Aber egal ob die Baulichen Bedingungen oder einfach die Faulheit Kabel zu ziehen dran schuld sind - es gibt Probleme dabei bestimmte Funknetzwerk karten mit dem madwifi Treiber so zum laufen zu bekommen dass VMware Server erfolgreich darüber bridgen kann. Weiterlesen: “VMware Server (Beta 2) bridging über WLan”