Seite wählen

NETWAYS Blog

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

SMSEagle Revision 2: Einführung gelungen!

Wie unter unseren Kunden bekannt, haben wir die Produkte des polnischen Herstellers Proximus, den SMSEagle seit mehr als 1,5 Jahren im Portfolio. Das linuxbasierte SMS Gateway gibt es in 2 verschiedenen Versionen. Der Unterschied: Beim SMSEagle NXS-9700 3G handelt es...

Benutzername und Kennwort war gestern: SSH-Key

Heute möchten wir euch zeigen wie man die Authentifizierung gegen ein OpenSSH-Server mittels SSH-Key realisiert. Unser Schlüsselpärchen erzeugen wir mit dem Befehl ssh-keygen und übergeben die Option -t rsa und -b 4096.  Die Option -t definiert welcher Algorithmus und...

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

Letzte Tickets für die DevOpsDays in Berlin erhältlich!

Nächste Woche, genauer gesagt am 18. und 19. Oktober, dreht sich in der Kalkscheune Berlin wieder alles um Themen wie Softwareentwicklung, Systemadministration, IT-Infrastruktur-Operationen sowie deren Schnittstellen. Das Vortragsprogramm beginnt mit der Präsentation...

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

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...

Jasper Reporting – Eine Einführung

Reporting & Business Intelligence - Ein ungeliebtes Thema? Gerade der zweite Begriff erklärt schon recht gut, wo eigentlich die Wurzeln dieser Technologien liegen. Natürlich im Business Feld, denn noch vor einigen Jahen wurden mit den entsprechenden Tools...

Inhaltsverzeichnis 08/2009

Twitter Weekly Updates for 2009-08-02 Weekly snap: SMS alerts and Sysadmin perks Nagios USB Ampel Twitter Development – Friends und Followers I Nürnberg Startup Weekend klopft an der Tür Nagios Benachrichtigungen direkt an iPhone pushen World of Errors I Twitter...

Blogroll

Da hast Du einiges zu lesen …

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.
 

Elasticsearch Gadgets

Neue Tools auszuprobieren bedeutet auch, erst mal viel Dokumentation zu lesen. Im Falle von Elasticsearch ist das nicht viel anders. So liest man über Indizes und Shards, über Replika und Cluster. Die Installation ist relativ straight-forward, denn es stehen für alle großen Distributionen fertige Pakete zur Verfügung, die nur darauf warten genutzt zu werden. Doch eines fällt nach der Installation sofort auf: Man ist blind. Von den ganzen tollen Features die in der Dokumentation versprochen wurden, ist erst mal nichts zu sehen. Ich möchte heute ein paar Methoden und Plugins vorstellen, die das gesamte Konstrukt Elasticsearch durch Visualisierung etwas durchsichtiger und greifbarer machen.
API
Die API ist eine der mit am wichtigsten Bestandteile von Elasticsearch. Ohne sie würden viele Plugins wohl nicht existieren. Ich erwähne die API hier aber mit unter deswegen, um zu vermitteln was diese Plugins im Hintergrund eigentlich machen. So viel Magie steckt nämlich gar nicht dahinter. Bei dieser API handelt es sich nicht, wie oft fälschlicherweise behauptet, um eine REST API, sondern um eine CRUD API. Der kleine aber feine Unterschied besteht darin, dass die CRUD API direkt auf die Datenobjekte zugreift und nicht großartig abstrahiert. Man kann sie aber genauso über verschiedene URLs ansprechen. Ein Aufruf, um einen allgemeinen Status über einen Elasticsearch Server zu erhalten, würde zum Beispiel lauten curl localhost:9200/_status. Als Ergebnis erhält man einen guten Überblick über den aktuellen Stand, die Anzahl der Indizes und nähere Infos zu diesen. Die Ausgabe ist sogar im JSON Format, lässt sich also sehr gut verarbeiten. Solche Statusberichte gibt es auch für Cluster einen einzelnen Index.

[...]
"_shards" : {
"total" : 622,
"successful" : 462,
"failed" : 0
},
"indices" : {
"logstash-2014.06.27" : {
"index" : {
"primary_size_in_bytes" : 435,
"size_in_bytes" : 435
}
[...]

ElasticHQ

elastichq plugin index

ElasticHQ Plugin – Index Übersicht


Das ElasticHQ Plugin hilft dabei, den Einstieg zu finden. In einem aufgeräumten Webinterface erhält man Informationen über die Last und den Ressourcenverbrauch der einzelnen Server. Indexe werden aufgelistet und Operationen wie „Optimize“, „Refresh“ und „Delete“ können auf sie angewendet werden.
 
Mit einem Interface für Queries kann man seine Daten durchsuchen und dabei gezielt einzelne Indexe ausschließen. Die Übersicht über Mappings hilft vor allem, wenn man für einzelne Felder das Mapping ändern muss, wie zum Beispiel im Zusammenhang mit Kibana, wo manche Operationen nur durchgeführt werden können, wenn sie numerische Felder erhalten.
elastichq cluster

ElasticHQ Plugin – Cluster


Ein besonderes Augenmerk gilt der Cluster Ansicht. Mit vielen Indizes wird es zwar schnell unübersichtlich, einen guten Überblick bekommt man aber dennoch, wenn man sich einen Einzelnen ansieht. Die Verteilung der Shards wird schnell klar und ob wirklich Replika existieren, lässt sich auch nachvollziehen.
 
Head
elasticsearch head plugin

Head Plugin


Wobei ElasticHQ seine Schwierigkeiten hat, das macht das Head Plugin umso besser. Eine Übersicht aufgeteilt auf Nodes die darstellt, wieviele Shards es pro Index gibt und wie diese aktuell verteilt sind. Die Master Node wird klar markiert und Operationen kann man auch durchführen. So lassen sich ganze Server ausschalten oder Indexe löschen, flushen, refreshen etc. Wie in ElasticHQ auch, gibt es Bereiche in denen man Queries durchführen kann und noch mal alle Indizes aufgelistet bekommt.
Bei den beiden Plugins handelt es sich um so genannte ’site-plugins‘. Das bedeutet, dass sie lediglich einen statischen Inhalt ausliefern und Elasticsearch nach der Installation nicht neu gestartet werden muss. Möglich macht das die Kommunikation über die API, die für die Plugins alle nötigen Informationen abliefert.

Blerim Sheqa
Blerim Sheqa
COO

Blerim ist seit 2013 bei NETWAYS und seitdem schon viel in der Firma rum gekommen. Neben dem Support und diversen internen Projekten hat er auch im Team Infrastruktur tatkräftig mitgewirkt. Hin und wieder lässt er sich auch den ein oder anderen Consulting Termin nicht entgehen. Inzwischen ist Blerim als COO für Icinga tätig und kümmert sich dort um die organisatorische Leitung.

OSMC 2014: Der Countdown läuft – nur noch 141 Tage

Starreferent Michael Medin ist wie immer mit in unserem Countdown vertreten. Diesmal gibt’s was zum Thema NSClient++ um die Ohren!

OSMC? Was soll das denn sein und wer sind die netten Menschen in diesen Videos? Die Open Source Monitoring Conference (kurz: OSMC) ist die internationale Plattform für alle an Open Source Monitoring Lösungen Interessierten, speziell Nagios und Icinga. Jedes Jahr gibt es hier die Möglichkeit sein Wissen über freie Monitoringsysteme zu erweitern und sich mit anderen Anwendern auszutauschen. Die Konferenz richtet sich besonders an IT-Verantwortliche aus den Bereichen System- und Netzwerkadministration, Entwicklung und IT-Management. Und die netten Menschen, die Ihr in unseren Videos zur OSMC seht, gehören dazu. 2014 wird die OSMC zum 9. Mal in Nürnberg stattfinden.