Seite wählen

NETWAYS Blog

Hier erfährst Du alles was uns bewegt. Technology, Hardware, das Leben bei NETWAYS, Events, Schulungen und vieles mehr.

Nur Vim ist nicht genug!

Alle, die mal ein Problem mit Linux hatten, werden das vermutlich kennen: Du suchst online nach deinem Problem, stößt auf einige Befehle, bearbeitest eine Konfigurationsdatei und dann passiert es - Du bist in Vim gefangen! Der Erstkontakt mit Vim kann durchaus von...

Nur Vim ist nicht genug!

Alle, die mal ein Problem mit Linux hatten, werden das vermutlich kennen: Du suchst online nach deinem Problem, stößt auf einige Befehle, bearbeitest eine Konfigurationsdatei und dann passiert es - Du bist in Vim gefangen! Der Erstkontakt mit Vim kann durchaus von...

Nur Vim ist nicht genug!

Nur Vim ist nicht genug!

Alle, die mal ein Problem mit Linux hatten, werden das vermutlich kennen: Du suchst online nach deinem Problem, stößt auf einige Befehle, bearbeitest eine Konfigurationsdatei und dann passiert es - Du bist in Vim gefangen! Der Erstkontakt mit Vim kann durchaus von...

Obstacles when setting up Mesos/Marathon

Sebastian has already mentioned Mesos some time ago, now it's time to have a more practical look into this framework. We're currently running our NWS Platform under Mesos/Marathon and are quite happy with it. Sebastians talk at last years OSDC can give you a deeper...

Lösungen & Technology

Running Icinga in NWS with Slack notifications

Slack notifications through Icinga2. This is what we activated last week for our Icinga2 Master apps on our NWS platform! The feature came highly recommended, so we decided to give it a try. And we did. It really is awesome!! First of all, I want to show you how it...

Running Icinga in NWS with Slack notifications

Slack notifications through Icinga2. This is what we activated last week for our Icinga2 Master apps on our NWS platform! The feature came highly recommended, so we decided to give it a try. And we did. It really is awesome!! First of all, I want to show you how it...

Running Icinga in NWS with Slack notifications

Slack notifications through Icinga2. This is what we activated last week for our Icinga2 Master apps on our NWS platform! The feature came highly recommended, so we decided to give it a try. And we did. It really is awesome!! First of all, I want to show you how it...

Text completion für vim mit supertab

Mit der weltweit größten Messe für Informationstechnik letzter Woche wurde sicherlich viel über tolle neue Technik und Software gebloggt. Einen Stand der sich mit meinem Lieblingseditor vim beschäftigt habe ich auf der CeBIT leider nicht gesehen, aber ich hatte auch...

Die Geister, die ich rief…

Wie der Zauberlehrling kam ich mir vor als ich beim Kunden AutoIT für End2End-Monitoring nutzen wollte. AutoIT hatte ich davor nur für kleine Automatisierungen genutzt, war mir der Macht dieses Werkzeugs aber durchaus bewusst. Wie schick es ist diese auch für...

Events & Trainings

Hackathon auf der OSMC

Nachdem bis auf Ansible alle unsere Workshops bereits ausgebucht sind, kann die OSMC nicht mehr lange hin sein! Wohl wahr, in gut einem Monat geht's schon los. Und nun steht auch das Programm für den perfekten Konferenzausklang am Hackathon-Freitag. Fünf Themen haben...

Hackathon auf der OSMC

Nachdem bis auf Ansible alle unsere Workshops bereits ausgebucht sind, kann die OSMC nicht mehr lange hin sein! Wohl wahr, in gut einem Monat geht's schon los. Und nun steht auch das Programm für den perfekten Konferenzausklang am Hackathon-Freitag. Fünf Themen haben...

Keine Ergebnisse gefunden

Die angefragte Seite konnte nicht gefunden werden. Verfeinern Sie Ihre Suche oder verwenden Sie die Navigation oben, um den Beitrag zu finden.

Web Services

Keine Ergebnisse gefunden

Die angefragte Seite konnte nicht gefunden werden. Verfeinern Sie Ihre Suche oder verwenden Sie die Navigation oben, um den Beitrag zu finden.

Keine Ergebnisse gefunden

Die angefragte Seite konnte nicht gefunden werden. Verfeinern Sie Ihre Suche oder verwenden Sie die Navigation oben, um den Beitrag zu finden.

Keine Ergebnisse gefunden

Die angefragte Seite konnte nicht gefunden werden. Verfeinern Sie Ihre Suche oder verwenden Sie die Navigation oben, um den Beitrag zu finden.

Keine Ergebnisse gefunden

Die angefragte Seite konnte nicht gefunden werden. Verfeinern Sie Ihre Suche oder verwenden Sie die Navigation oben, um den Beitrag zu finden.

Unternehmen

Einstieg in Icinga mit dem NETWAYS Icinga Starterpaket

Icinga überwacht alles, ist offen, sehr gut dokumentiert und für jede Umgebung anpassbar. Und damit der Start in das eigene Monitoringsystem oder der Umstieg von Nagios oder Icinga 1.x reibungslos funktioniert, haben wir das Icinga Starterpaket geschnürt. In 4 Tagen...

Einstieg in Icinga mit dem NETWAYS Icinga Starterpaket

Icinga überwacht alles, ist offen, sehr gut dokumentiert und für jede Umgebung anpassbar. Und damit der Start in das eigene Monitoringsystem oder der Umstieg von Nagios oder Icinga 1.x reibungslos funktioniert, haben wir das Icinga Starterpaket geschnürt. In 4 Tagen...

Einstieg in Icinga mit dem NETWAYS Icinga Starterpaket

Icinga überwacht alles, ist offen, sehr gut dokumentiert und für jede Umgebung anpassbar. Und damit der Start in das eigene Monitoringsystem oder der Umstieg von Nagios oder Icinga 1.x reibungslos funktioniert, haben wir das Icinga Starterpaket geschnürt. In 4 Tagen...

Jasper Reporting – iReport

Im letzten Post bin ich ja bereits detailliert auf die Installation des JasperServer eingegangen, welcher für die Aufbereitung und Versendung der Berichte zuständig ist. Da die aktuelle Community Version noch nicht über den Ad Hoc-Report Builder der Professional...

Jasper Reporting – Die Installation

Die Installation des JasperServers, also der Serverkomponente für die Erzeugung und den automatischen Versand der Berichte, ist durch die verfügbare Linux-Installation ein Kinderspiel. Zwar sind die Komponenten auch ohne Tomcat und MySQL paketiert auf JasperForge.org...

Blogroll

Da hast Du einiges zu lesen …

Weekly Snap: Elasticsearch, Puppet & PHP SPL

weekly snap7 – 11 July shared tips for Elasticsearch and Puppet users, PHP developers and monitoring admins.
Eva started the week by counting 141 days to the OSMC with Michael Medin’s talk on NSClient++ and followed with a reminder to readers to make the most of the OpenNebula Conf CfP and early bird specials.
Blerim played with various Elasticsearch gadgets, as Matthias looked at doubly linked lists in PHP SPL.
Lastly, Lennart showed how to create directories in Puppet recursively and Michael forwarded news of the Monitoring Plugins 2.0 release.

Monitoring Plugins 2.0 Release

nagios-plugins-upgradeWas lange reift, wird endlich gut – wer im Jänner mitbekommen hat, dass die ursprünglichen Nagios Plugin Entwickler vom Trademark-Besitzer rausgekickt worden sind, und ihre Software nunmehr unter dem Namen „Monitoring Plugins“ an Mann/Frau ausliefern, hat lange auf dieses Release warten müssen. Nun ist es aber endlich da – Monitoring Plugins 2.0. Aktualisierte Pakete gibts hoffentlich bald, und jedem sei ans Herz gelegt, die vorherigen Nagios Plugins aus dieser vertrauenswürdigen Quelle zu aktualisieren.
Icinga 2 ist mit den Monitoring Plugins vollständig kompatibel, und liefert mit den Plugin Check Commands sogar erste Templates out-of-the-box die einfach weiterverwendet werden können. Wie man das macht, gibts unter anderem auch in unserer Icinga 2 Schulung zu bestaunen.
 
(Bild (c) memegenerator.net)

OpenNebula Conf 2014: Jetzt ultrast beeilen!

OpenNebulaConf_google+
Ich weiß ja nicht, ob Ihr es schon wusstet, aber wir sind schon wieder volle Kanone in den Vorbereitungen für die OpenNebula Conf. Am 15 Juli – also quasi schon ganz bald – enden CfP und Early Bird. Was auch immer Ihr also auf der OpenNebula Conf so treiben wollt, Ihr solltet Euch ultrast beeilen, um entweder, die Welt, das Eventteam, oder aber auch mich, mit einer Vortragseinreichung zu entzücken, oder aber, noch enorm günstig als Teilnehmer mit am Start zu sein.
Und auf diese Mitmenschen könnt Ihr Euch in jedem der beiden Fälle jetzt schon freuen:

  • Alberto Zuin (Moyd.co LTD) wird mit dem Talk “Geo distributed datacenter: the DNS way” dabei sein.
  • Armin Deliomini (Runtastic) wird einen bunten Strauß wertvoller Information für Euch parat halten.
  • Stefan Kooman, der mit seinem Vortrag „ONE BIT to rule them all“ über das OpenNebula Setup seiner Firma BIT.nl berichten wird.

Noch mehr Referenten gib’t dann in Bälde 🙂
Also auf, auf!
Sofort Ticket organisieren oder Vortrag einreichen!
 
 

Puppet im Directory Tree vertüdelt

Bei Puppet-Schulungen werde ich recht häufig gefragt, ob es auch möglich ist, Verzeichnisse rekursiv zu erzeugen und zu verwalten?
Ja, die Existenz und damit natürlich auch das Anlegen kann man sicherstellen. Hierzu kürz ein Beispiel:
Ich möchte für mein Web-Hosting Geschäft, jedem Kunden für seinen virtuellen Host die gleiche Verzeichnisstruktur anlegen.

kunde/
├── ftdocs
|   ├── Welcome.txt
│   ├── incoming
│   └── pub
├── htdocs
├── logs
└── stats

Zuerst legt man sich diese Verzeichnisstruktur unter ./files in seinem Modul webhosting an. Der Puppet-Code kann dann wie folgt aussehen:

file { "/var/www/${kunde}":
    ensure  => directory,
    owner   => $kunde,
    group   => $kunde,
    mode    => '0644',
    recurse => true,
    source  => 'puppet:///modules/webhosting/kunde/';
}

Puppet legt nun bzw. kontrolliert die Existenz dieser Struktur, inklusive der Datei Welcome.txt. Da Puppet für Verzeichnisse die Berechtigungen automatisch anpasst, also z.B. aus 0644 ein 0755 macht, ist damit in unserem Bespiel auch ein Wechseln in die Verzeichnisse möglich.
Einschränkend ist hier natürlich, das alle Unterverzeichnisse und auch die Dateien, den selben Owner, die selbe Gruppe und Berechtigungen haben.

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.

PHP SPL: Verkettete Listen

Eine nützliche Klasse die durch SPL ihren Einzug in PHP gefunden hat, ist die SplDoublyLinkedList, die Implementierung einer doppelt verketteten Liste.
Eine verkettete Liste ist eine dynamisch erweiterbare Datenstruktur, die beliebig viele Elemente speichern und enumerieren kann. In vielen Sprachen, in denen die Größe von Arrays bereits statisch beim Erstellen festgelegt wird, sind Listen deshalb ein wichtiger Grundbaustein um wachsende Datenstrukturen zu Implementieren. Da Arrays in PHP diese Einschränkungen nicht haben und damit generell bereits alle Möglichkeiten einer Liste bieten, gab es lange Zeit keine Implementierung in der PHP-Standardbibliothek.
Das verwenden einer SplDoubleLinkedList macht aber in vielen Bereich dennoch Sinn, da diese das Einfügen von Elementen an bestimmten Positionen einfacher und performanter macht. Wenn wir in einem normalen Array ein Element an einem bestimmten Index einfügen wollen ohne ein Element zu überschreiben, können wir array_splice verwenden.

$N = 10000;
$arr = array('foo', 'bar', 'baz');
for ($i = 0; $i < $N; $i++) {
    array_splice($arr, 1, 0, $item);
}

Wie wir feststellen ist diese Implementierung nicht sonderlich performant und das Einfügen von 10000 Elementen dauert bereits fast 10 Sekunden.

time php -f ./insert_at_array.php
real 0m10.116s
user 0m10.077s
sys 0m0.024s

Die SplDoublyLinkedList beherrscht seit Version 5.5 die Funktion SplDoublyLinkedList::add, die ein Element an eine bestimmte Position in die Liste einfügen kann.

$N = 10000;
$list = new SplDoublyLinkedList();
$list->push('foo');
$list->push('bar');
$list->push('baz');
for ($i = 0; $i < $N; $i++) {
    $list->add(1, $i);
}

Time verrät uns, dass diese Implementierung mit 47ms mehr als 200 mal schneller durchläuft als die mit regulären Arrays.

time php -f ./insert_at_list.php
real 0m0.047s
user 0m0.036s
sys 0m0.008s

Erklären lässt sich dieser Unterschied mit der internen Implementierung von Arrays in PHP. Diese sind in PHP eigentlich Hash-Tabellen, weshalb beim Aufruf von array_splice, alle nachfolgenden Elemente mit einem neuen Index versehen werden müssen. In einer verketteten Liste wird der Index eines Elements nicht gespeichert, sondern nur anhand der Position in der Kette aus Elementen definiert. Hier genügt es die Referenzen des Vorgängers und des Nachfolgers zu ändern um alle Nachfolger einen Index nach hinten zu verschieben.