Seite wählen

NETWAYS Blog

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

Systemd-Unitfiles und Multi-Instanz-Setups

Vor einer Weile hab ich bereits eine kurze Erklärung zu Systemd-Unitfiles geschrieben, diesmal will ich auf das Multi-Instanz-Feature von Systemd eingehen, da auch dieses anscheinend nicht jedem bekannt ist. Als Beispiel soll mir diesmal Graphite bzw. genauer gesagt...

The Impact of Voice and Tone in Writing

Did you realize, when you read something your brain maps the words to a particular voice in your head? Your inner voice reads out loud the wordsyou're reading. Actually, not everyone has this, but most people do. Ruvanee Vilhauer from the New York University did some...

Lösungen & Technology

Ubuntu 18.04 LTS "Bionic Beaver" erschienen

Eigentlich wollte Canonical die neue Ubuntu LTS Version "Bionic Beaver" bereits am Donnerstag veröffentlichen - einige Bugfixes zum Schluss verhinderten diesen Schritt jedoch und das Release verzögerte sich auf die frühen Morgenstunden des letzten Freitags unserer...

Ubuntu 18.04 LTS "Bionic Beaver" erschienen

Eigentlich wollte Canonical die neue Ubuntu LTS Version "Bionic Beaver" bereits am Donnerstag veröffentlichen - einige Bugfixes zum Schluss verhinderten diesen Schritt jedoch und das Release verzögerte sich auf die frühen Morgenstunden des letzten Freitags unserer...

Skalierbarer Storage mit Ceph

Martin Loschwitz hat auf der OSDC mit Ceph eine Storage Lösung vorgestellt, die horizontal skalierbar ist und keinen Single Point of Failure hat. Falls mehr Speicher benötigt wird, reicht es aus einen weiteren Node hinzuzufügen. Dieser Node wird als OSD (Object Store...

Emails mit Node.js versenden

Wer schon einmal versucht hat, mit Node.js Mails zu versenden, wurde wahrscheinlich von einer sehr großen Anzahl an möglichen Modulen überschwemmt, die sich allerdings teilweise sehr stark voneinander unterscheiden. Neben umfangreicheren Client-Bibliotheken, wie zum...

Events & Trainings

Most awaited OSMC is here!!

Hello! Your long wait is over and finally OSMC day starts. As the day begins with the following workshops Icinga 2 – Distributed Monitoring by Lennart Betz, Ansible – Configuration Management by Thilo Wening, Timesseries & Analysis with Graphite and Grafana by...

Most awaited OSMC is here!!

Hello! Your long wait is over and finally OSMC day starts. As the day begins with the following workshops Icinga 2 – Distributed Monitoring by Lennart Betz, Ansible – Configuration Management by Thilo Wening, Timesseries & Analysis with Graphite and Grafana by...

Most awaited OSMC is here!!

Hello! Your long wait is over and finally OSMC day starts. As the day begins with the following workshops Icinga 2 – Distributed Monitoring by Lennart Betz, Ansible – Configuration Management by Thilo Wening, Timesseries & Analysis with Graphite and Grafana by...

Open Source Meets Business 2008

NETWAYS meets OSMB 2008. Unsere Entscheidung ist gefallen, wir werden Partner bei Open Source Meets Business 2008 am 22. - 24. Januar 2008. Die Veranstaltung wird nächstes Jahr von Heise Events das dritte Mal durchgeführt und wir werden dabei sein.

Abendveranstaltung der Nagios Konferenz

Wir haben den Veranstaltungsort für die Abendveranstaltung nun endlich fix gemacht. Der Event wird im Blauen Adler stattfinden, direkt im Nürnberger Hauptbahnhof. Wir freuen uns mit allen Teilnehmern der Konferenz gemeinsam einen schönen zweiten Abend mit gutem Essen...

50% English Inside

Letztes Jahr war die Nagios Konferenz eigentlich Deutsch. Nur Ton und Ethan haben Ihre Vorträge logischerweise auf Englisch gehalten. Dennoch hat die Tatsache, dass 90% in Deutsch stattfinden, einige Leute aus Dänemark oder Holland nicht davon abgehalten, trotzdem zu...

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

Computex 2019

Auch 2019 fand in Taipei die COMPUTEX statt und wurde nach 5 Tagen erfolgreich geschlossen. Es erschienen 42.495 internationale Käufer aus 171 Ländern das gegenüber dem Vorjahr ein Wachstum von 0,5% ausmacht. Die 10 wichtigsten Abnehmerländer sind China, die USA,...

Computex 2019

Auch 2019 fand in Taipei die COMPUTEX statt und wurde nach 5 Tagen erfolgreich geschlossen. Es erschienen 42.495 internationale Käufer aus 171 Ländern das gegenüber dem Vorjahr ein Wachstum von 0,5% ausmacht. Die 10 wichtigsten Abnehmerländer sind China, die USA,...

Computex 2019

Auch 2019 fand in Taipei die COMPUTEX statt und wurde nach 5 Tagen erfolgreich geschlossen. Es erschienen 42.495 internationale Käufer aus 171 Ländern das gegenüber dem Vorjahr ein Wachstum von 0,5% ausmacht. Die 10 wichtigsten Abnehmerländer sind China, die USA,...

Jasper Reporting – Dynamische Parameter

Seinen Report mit Parametern zu versehen hat mehrere Vorteile. Zum einen kann man die gleiche Vorlage für verschiedene Kunden und Objekte einsetzen, zum anderen hat der Endanwender die Möglichkeit der Interaktivität. Wer auf viele Parameter setzt sollte jedoch immer...

Technikworkshop Herbst 2009

Zweimal im Jahr kommen in großer Runde zusammen, um Neuerungen des Developments und gewonnene Erfahrungen aus den Projekten zu diskutieren und Neuerungen auszutauschen. Heute war es mal wieder soweit und wir haben uns...

Blogroll

Da hast Du einiges zu lesen …

Weekly Snap: Galera & Icinga 2 Clusters, Puppet for Tomcat & Nagios

weekly snap11 – 15 August featured clusters, Puppet automation and a new OSMC workshop.
Eva counted 106 days to the OSMC with Bernd and Sasha’s talk on how “Puppet automatically configures Nagios”.
Bernd followed by announcing a new Advanced Windows Monitoring workshop on NSClient++ to be held by Michael Medin at this year’s OSMC.
On clusters, Enrico looked at Galera as Michael gave an update on his work with Icinga 2 cluster vagrant boxes and the various Icinga 2 webinars and training courses.
Finally, Lennart shared his Puppet module for Tomcat installation and configuration.

Einmal bitte Tomcat oder zweimal oder dreimal…

tomcatHeute möchte ich euch ein Puppet-Modul zur Installation und Konfiguration von Tomcat vorstellen. Es verwaltet entweder einen Standalone Tomcat-Server oder aber eine Vielzahl von Server-Instanzen, z.Z. jedoch lediglich auf Red Hat Systemen. Mit einem

# puppet module install lbetz/tomcat

installieren wir das Module auf unserem Puppet-Server, respektive auf unserem Test-System. Mit folgendem Puppet Code wird aus den konfigurierten Repositories eine Tomcat 6 installiert und für den Multi-Instanz-Betrieb konfiguriert.

class { 'tomcat':
   version => '6',
}

Die einzelnen Instanzen bzw. deren Konfiguration sind standardmäßig unter /var/tomcat zu finden. Der Übersichtlichkeit in diesem Blog geschuldet, definieren wir uns einige Variablen, zuerst für die von uns verwendeten Connectors, Listeners und Resources.

$connectors = {
   'http' => {
      port => '8080',
      protocol => 'HTTP/1.1',
   },
   'ajp' => {
      port => '8009',
      protocol => 'AJP/1.3',
   },
}
$listeners = {
   'org.apache.catalina.core.AprLifecycleListener' => { 'ssl_engine' => 'On', },
   'org.apache.catalina.core.JasperListener' => {},
   'org.apache.catalina.core.JreMemoryLeakPreventionListener' => {},
   'org.apache.catalina.mbeans.GlobalResourcesLifecycleListener' => {},
}
$resources = {
  'UserDatabase' => {
     'auth' => 'Container',
     'type'        => 'org.apache.catalina.UserDatabase',
     'extra_attrs' => {
        'description' => 'User database that can be updated and saved',
        'factory'     => 'org.apache.catalina.users.MemoryUserDatabaseFactory',
         'pathname'    => 'conf/tomcat-users.xml',
      },
   },
}

Als nächstes definieren wir uns ein Hostobjekt localhost und mit diesem als Default Host eine Engine der Bezeichnung Catalina.

$hosts = {
   'localhost' => {
      'app_base'            => 'webapps',
      'unpack_wars'         => true,
      'auto_deploy'         => true,
      'xml_validation'      => false,
      'xml_namespace_aware' => false,
   },
}
$engine = {
   'Catalina' => {
      'default_host' => 'localhost',
      'realms'       => {
         'org.apache.catalina.realm.LockOutRealm' => {
         'realms' => {
            'org.apache.catalina.realm.UserDatabaseRealm' => {
               'attrs' => {
                  'resource_name' => 'UserDatabase',
               },
            },
         },
      },
      hosts = $hosts,
   },
}

Die eigentlich Instanz mayapp1 lässt sich nun wie folgt deklarieren:

tomcat::server { 'myapp1':
   ensure   => 'running',
   enable   => false,
   port     => '8005',
   services => {
      'Catalina' => {
         'connectors' => $connectors,
         'engine'     => $engine,
      },
   },
   resources => $resources,
   listeners => $listeners,
}

Mit dem zusätzlichen Parameter java_home ließe sich auch eine alternative Java Engine wählen.
Möchte man nun einen weiteren Host der Engine hinzufügen, kann natürlich der Hash $hosts entsprechend erweitert werden oder wie hier nachträglich deklarieren:

tomcat::host { 'myapp1:Catalina:Catalina:shop.netways.de':
  $app_base            => 'webapps',
  $auto_deploy         => true,
  $unpack_wars         => true,
  $xml_validation      => false,
  $xml_namespace_aware => false,
}

Über den Resource-Titel wird hier der XML-Pfad in der server.xml angegeben. Damit wird in diesem Beispiel der Host shop.netways.de der Instanz myapp1 zugeordnet und dort wiederum der Engine Catalina, die zum Service Catalina gehört. Äquivalent lassen sich auch andere Konfigurationsobjekte wie Services und Realms hinzufügen .
Für den Standalone-Betrieb, wenn man nicht mehrere Instanzen benötigt, reicht folgende Deklaration:

class { 'tomcat':
   version => '6',
   config  => {
      port     => '8005',
      services => {
         'Catalina' => {
            'connectors' => $connectors,
            'engine'     => $engine,
         },
      },
      resources => $resources,
      listeners => $listeners,
   }
}

War-Dateien können nun im Nachgang via File-Resource in die entsprechenden Ordner gelegt werden, danach ist dann nur noch ein notify auf den Tomcat-Service nötig. Im Standalone-Betrieb ist dieses z.Z. jedoch noch an Tomcat::Server[‚tomcat6‘] bzw. Tomcat::Server[‚tomcat‘] (Version 7) zu senden.

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.

Icinga 2 Vagrant Box Reloaded

Der geneigte Leser mag sich vielleicht noch erinnern – zu Zeiten der CeBit und den ersten Icinga 2 Webinaren mit dem schönen Icinga 2 Cluster habe ich mich bereits an einem Multi-Instanz Vagrant Setup versucht. Anfangs war das nur eine Spielerei zu Demo-Zwecken. Mittlerweile haben wir das aber ins Icinga Projekt überführt – Open Source muss man eben leben, nicht bewerben.

vagrant_icinga2x_cluster_icingaweb2

Icinga 2 Cluster Check – Checker Zone verbunden


Das sehr positive Feedback aus der Community hat zu einigen Änderungen und Weiterentwicklungen geführt. Das frühere Cluster Setup hatte nämlich auch eine Git Version von Icinga Web 2 mit an Bord, welches seit jeher für Staunen sorgt, und letztendlich jeder haben möchte (auch wenns noch gar nicht released ist ;-)). Daneben eignet es sich bestens als Demo Setup für jeden zum Ausprobieren, als Basis für jedes Event, um mal eben schnell was zu zeigen, oder einfach nur für Schulungsnotebooks, damit sich jeder das Gelernte auch zuhause nochmal intravenös in Erinnerung rufen kann (die erste Icinga 2 Schulung gibts übrigens mit mir als Trainer, wer noch nach einem Grund sucht, sich dort endlich anzumelden ;)).
vagrant_icinga2x_standalone_icingaweb2

Icinga 2 – Disk Warning Detail View


Mittlerweile hat sich einiges getan: Das Cluster-Setup verwendet nun Snapshotpakete aller Art und zeigt einen Config-Master mit einem Checker-Satelliten, die Standalone VM schillert nun auch in den schönsten Icinga Web 2 Farben, und nebenbei kann man sich auch noch Icinga 1.x und graphite ansehen, wenn man mag.
Wer davon noch nicht genug bekommen hat, zukünftige Webinare zum Thema Icinga 2 gibts dann wieder auf Basis dieser schönen Vagrant Boxen. Oder man migriert mal eben auf Icinga 2 am Produktivsystem. Wir helfen da gerne dabei!
PS: 1x dürft ihr raten, was dann auf der diesjährigen OSMC in meinem Vortrag mit Lennart Koopmann zum Einsatz kommen wird …
 

Advanced Windows Monitoring auf der OSMC

nsclient-logoAufgrund der großen Nachfrage in den letzten Jahren, haben wir auf der OSMC 2014 erstmals vier parallele Workshops am Vortag der Konferenz im Angebot. Neben den Workshops meiner Kollegen zu den Themen Puppet, Logstash und Icinga Web 2 haben wir dieses Jahr noch ein echtes Highlight auf der Agenda.
Michael Medin, der bereits seit vielen Jahren zu unseren Stammreferenten zählt, wird einen ganzen Tag zum Thema Advanced Windows Monitoring referieren.  Schwerpunkte sind dabei u.a.:

  • NSClient++ verstehen und Hilfe finden
  • Deployment, Installation und Configuration Management
  • Realtime Monitoring
  • Scripting mit Powershell, VB und BAT
  • Benutzerdefinierte Filter und Thresholds

Neben der Tatsache, dass Michael in dem Themenkomplex fit ist wie kein anderer, möchte ich Euch den Tag vor allem wegen ihm persönlich ans Herz legen. Ein Workshop mit ihm ist mit Sicherheit nicht nur eine fachliche sondern auch menschliche Bereicherung. Nach dem Einsatz der Limousine im letzten Jahr können wir die Abholung vermutlich nur noch mit einem Hubschrauber übertreffen. Mal sehen was uns einfällt.
Ich fasse zusammen: Meldet Euch zur OSMC an und nehmt nen Workshop dazu.
 

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Galera Clustering

Viele von Euch kennen es bestimmt schon, das Project Galera. Dieses vereint die wsrep API mit MySQL bzw. dessen Fork MariaDB. Zum aktuellen Zeitpunkt werden schon InnoDB und die XtraDB – Storage Engine unterstützt. Letzteres ist eine InnoDB-Erweiterung und wird von Percona entwickelt .

Galera-Cluster-logo-1024x195

Der Galera Cluster bringt folgende Features/Benefits mit:

  • Multi-Master schon von Haus aus
  • Synchrone Replication kein Datenverlust mehr auch keine Slave-Lags mehr (Boa wie mich das immer wieder nervt)
  • Eng gekoppelt Alle Knoten haben grundsätzlich denselben Status, keine Daten mehr die auseinander laufen
  • Multi-threaded Slave für bessere Performance der Nutzlast
  • Keine Master-Slave Failover Operationen nötig oder die Notwendigkeit eine virtuelle IP binden zu müssen
  • Hot Standby keine Downtimes während des Failover (denn es gibt keinen Failover mehr)
  • Automatic Node Provisioning kein manuelles Eingreifen mehr um Knoten in den Cluster zu bringen, die Daten werden automatisch auf den neuen Knoten repliziert
  • Supports InnoDB bald auch MyISAM (ist noch experimentell)
  • Transparent zur Application benötigt in Kombination mit GLB (oder HAproxy) keine Änderungen an der Applikation
  • Kein Aufspalten von Read und Write Operationen nötig (einfach Feuer auf das Ding 😉 ).

Galera ist somit die Lösung für Unternehmungen die ein hohes Aufkommen an Schreib- und Lese -Operationen in ihren Datenbanken erwarten. Die Main „Use Cases“ für den Betrieb des Galera Cluster sind eben kurz und gut, Skalierung der Schreib-Operationen, entkoppeln von Latenz Killern (wie zB. lange laufende Queries).
Die Entwickler des Forks MariaDB haben diese vielfältigen Möglichkeiten erkannt und bieten auf ihren Seiten Anleitungen zum Betrieb so eines Basic Setups an. Ebenfalls werden dort fertige Pakete für die Installation auf alle Major Linux Distributionen angeboten, somit fällt auch schon mal das Kompilieren weg.
Für das Setup können zwei Loadbalancing-Produkte zum Einsatz kommen: Zum einen der schon etwas in die Jahre gekommene (aber immer noch sehr beliebte) HAproxy und zum anderen GLB (Galera LoadBalancer), der eigens für Galera, aber außerhalb des Projekts entstanden ist. Wir bevorzugen für unsere Setups meist den GLB da dieser auch während der Laufzeit (wenn nötig auch automatisiert durch Skripte) konfiguriert bzw. gesteuert werden kann. Änderungen können somit im laufenden Betrieb und auch unter Last problemlos vorgenommen werden. Wenn es dann doch mal knapp wird, kann man im Betrieb ganz einfach einen weiteren Knoten hinzufügen 🙂