<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Archive on ConSol Monitoring</title><link>https://omd.consol.de/blog/archive/</link><description>Recent content in Archive on ConSol Monitoring</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://omd.consol.de/blog/archive/index.xml" rel="self" type="application/rss+xml"/><item><title>Devoxx Video: Prometheus Monitoring for Java Web Applications w/o Modifying Source Code</title><link>https://omd.consol.de/blog/2017/11/07/devoxx-video%2358-prometheus-monitoring-for-java-web-applications-w/o-modifying-source-code/</link><pubDate>Tue, 07 Nov 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/11/07/devoxx-video%2358-prometheus-monitoring-for-java-web-applications-w/o-modifying-source-code/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="prometheus-logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;The &lt;a href="https://prometheus.io"&gt;Prometheus&lt;/a&gt; monitoring tool follows a white-box monitoring approach: Applications actively provide metrics about their internal state to the Prometheus server. In order to instrument an application with Prometheus metrics, you have to add a metrics library and call that library in the application&amp;rsquo;s source code. However, &lt;strong&gt;DevOps teams do not always have the option to modify the source code&lt;/strong&gt; of the applications they are running.&lt;/p&gt;
&lt;p&gt;At this year&amp;rsquo;s &lt;a href="https://devoxx.be"&gt;Devoxx&lt;/a&gt; conference, Fabian Stäber did a &lt;a href="https://cfp.devoxx.be/2017/talk/CRJ-2930/Prometheus_Monitoring_for_Java_Web_Applications_w%2Fo_Modifying_Source_Code"&gt;talk&lt;/a&gt; on how to instrument Java Web Applications with Prometheus metrics without modifying the application&amp;rsquo;s source code.&lt;/p&gt;</description></item><item><title>Simulating 3rd party services with Spring Boot and Citrus</title><link>https://omd.consol.de/blog/2017/09/22/simulating-3rd-party-services-with-spring-boot-and-citrus/</link><pubDate>Fri, 22 Sep 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/09/22/simulating-3rd-party-services-with-spring-boot-and-citrus/</guid><description>&lt;p&gt;When developing software that exchanges data with other components or services you may be confronted with the proper simulation of those foreign services during integration testing. This is because you need to connect with a foreign service
that is simply not available on your local machine or in a test environment.&lt;/p&gt;
&lt;p&gt;For unit testing purpose you can use mocks that help out to simulate proper responses. There will be times where your software is deployed to a test environment
in order to perform some acceptance tests with your stakeholders before going to a final release. Usually this is also done with the customer exploring the software through manual testing. In these situations traditional service mocking is not
a good option and you need a real simulator instance that receives requests and responds with proper test data.&lt;/p&gt;
&lt;p&gt;This is exactly what the Citrus simulator project provides for you. Standalone simulation and complex request/response processing with solid validation capabilities. The Citrus simulator provides a very easy and reliable definition of inbound and outbound messages for different scenarios.
Good news is that this is not only for Http REST interfaces but also for SOAP WebService, JMS, RMI, mail messaging and many more. So you can use the simulator whenever you need to integrate with another service that is simply not available on your local machine or in your test environment.&lt;/p&gt;</description></item><item><title>Docker Headless VNC Container 1.2.0 Released</title><link>https://omd.consol.de/blog/2017/09/19/docker-headless-vnc-container-1.2.0-released/</link><pubDate>Tue, 19 Sep 2017 10:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/09/19/docker-headless-vnc-container-1.2.0-released/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em; width: 30%;"&gt;&lt;img src="vnc_container_view.png"&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/ConSol/docker-headless-vnc-container"&gt;&lt;strong&gt;Docker Headless VNC Container&lt;/strong&gt;&lt;/a&gt; 1.2.0 has been released today. The different Docker images contains a complete VNC based, headless UI environment for testautomation like &lt;a href="https://github.com/ConSol/sakuli"&gt;Sakuli&lt;/a&gt; does or simply for web browsing and temporary work in a throw-away UI container. The functionality is pretty near to a VM based image, but can be started in seconds instead of minutes. Each Docker image has therefore installed the following components:&lt;/p&gt;</description></item><item><title>Monitoring Plugin Language Comparison</title><link>https://omd.consol.de/blog/2017/09/13/monitoring-plugin-language-comparison/</link><pubDate>Wed, 13 Sep 2017 12:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/09/13/monitoring-plugin-language-comparison/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em; width: 20%; height: 20%;"&gt;&lt;img src="tags.png"&gt;&lt;/div&gt;
&lt;p&gt;Which programming language should we use to write monitoring check_plugins? This question rose some discussion and this post is trying to give some hints.&lt;/p&gt;</description></item><item><title>Monitoring-Workshop 2017</title><link>https://omd.consol.de/blog/insights/monitoring-workshop-2017/</link><pubDate>Tue, 12 Sep 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/insights/monitoring-workshop-2017/</guid><description>&lt;div class="section-index"&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/start/"&gt;Workshop 2017&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/veranstaltungsdaten/"&gt;Veranstaltungsdaten&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/ablauf/"&gt;Ablauf&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/vortraege/"&gt;Vorträge&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/anmeldung/"&gt;Anmeldung&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/hotels/"&gt;Anreise / Hotel&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/vorabendtreff/"&gt;Vorabendtreff&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/abendveranstaltung/"&gt;Abendveranstaltung&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;div class="entry"&gt;
&lt;h5&gt;&lt;a href="https://omd.consol.de/blog/insights/monitoring-workshop-2017/biszumnaechstenmal/"&gt;Bis zum nächsten Mal&lt;/a&gt;&lt;/h5&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Reunite separate git repositories</title><link>https://omd.consol.de/blog/2017/09/08/reunite-separate-git-repositories/</link><pubDate>Fri, 08 Sep 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/09/08/reunite-separate-git-repositories/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="git_logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;I recently had to deal with two projects that have a common origin but separated at some point in time. I now had to try to bring them back together again - basically merging the changes. Sounds like a pretty standard &lt;code&gt;git merge&lt;/code&gt; or &lt;code&gt;git rebase&lt;/code&gt; job.&lt;/p&gt;
&lt;p&gt;Unfortunately the separation was done in a not so clever way. Someone cloned the original repository, checked out some branch, made some first refactoring steps, got rid of the git stuff (probably &lt;code&gt;rm -rf .git&lt;/code&gt;) and started a new git repository with this status. Rumors are that the situation at that time was so tense that people wanted to make a clear cut - which they did in a technical way.&lt;/p&gt;
&lt;p&gt;Quite some time later it was my task to try to get the projects together again. The only input I had was two git URLs and the above story.&lt;/p&gt;</description></item><item><title>NEB Modules with Go</title><link>https://omd.consol.de/blog/2017/09/01/neb-modules-with-go/</link><pubDate>Fri, 01 Sep 2017 14:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/09/01/neb-modules-with-go/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em; width: 20%; height: 20%;"&gt;&lt;img src="gopher.png"&gt;&lt;/div&gt;
&lt;p&gt;Have you ever written a NEB (Nagios Event Broker) module? This article will explain a tool which makes this a lot easier, especially if the reason was that you are not familiar with C or C++. In this case the “Go NEB Wrapper” could come very handy and if you are new to this topic it is a good point to start with.&lt;/p&gt;</description></item><item><title>OMD 2.60 Labs Edition Released</title><link>https://omd.consol.de/blog/2017/08/21/omd-2.60-labs-edition-released/</link><pubDate>Mon, 21 Aug 2017 10:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/08/21/omd-2.60-labs-edition-released/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em; width: 20%; height: 20%;"&gt;&lt;img class="project-logo-light project-logo--omd" src="https://omd.consol.de/docs/omd/omd_light.svg" alt="OMD Labs Edition" width="240" height="240"&gt;&lt;img class="project-logo-dark project-logo--omd" src="https://omd.consol.de/docs/omd/omd_dark.svg" alt="OMD Labs Edition" width="240" height="240"&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://omd.consol.de/docs/omd/"&gt;&lt;strong&gt;OMD Labs Edition&lt;/strong&gt;&lt;/a&gt; 2.60 has been released today. The OMD Labs Edition is based on the standard &lt;a href="http://omdistro.org/"&gt;&lt;strong&gt;OMD&lt;/strong&gt;&lt;/a&gt; but adds some more useful addons like &lt;a href="http://grafana.org/"&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://prometheus.io/"&gt;&lt;strong&gt;Prometheus&lt;/strong&gt;&lt;/a&gt; or additional cores like &lt;a href="http://icinga.org/"&gt;&lt;strong&gt;Icinga 2&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://naemon.org/"&gt;&lt;strong&gt;Naemon&lt;/strong&gt;&lt;/a&gt;. This release updates many of the shiped components and adds some interesting options when resolving update conflicts.&lt;/p&gt;</description></item><item><title>Automated CI/CD Build Pipeline with Jenkis in OpenShift</title><link>https://omd.consol.de/blog/2017/07/17/automated-ci/cd-build-pipeline-with-jenkis-in-openshift/</link><pubDate>Mon, 17 Jul 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/07/17/automated-ci/cd-build-pipeline-with-jenkis-in-openshift/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="qa_build_pipeline.png"&gt;&lt;/div&gt;
&lt;p&gt;The GitHub repository &lt;a href="https://github.com/toschneck/openshift-example-bakery-ci-pipeline"&gt;toschneck/openshift-example-bakery-ci-pipeline&lt;/a&gt; contains, the sourcecode for the examples of the talk &lt;strong&gt;&lt;a href="https://www.slideshare.net/TobiasSchneck/continuous-testing-integration-und-uitesting-mit-openshiftbuildpipelines"&gt;Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines&lt;/a&gt;&lt;/strong&gt; at the Redhat/ConSol OpenShift-Day:&lt;/p&gt;</description></item><item><title>Introduction to GitLab CI with Maven</title><link>https://omd.consol.de/blog/2017/07/14/introduction-to-gitlab-ci-with-maven/</link><pubDate>Fri, 14 Jul 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/07/14/introduction-to-gitlab-ci-with-maven/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="maven_gitlab.png"&gt;&lt;/div&gt;
&lt;p&gt;At ConSol we use &lt;a href="https://about.gitlab.com"&gt;GitLab&lt;/a&gt; as our central Git server and I am quite happy with its functionality. Lately, I have been playing around with &lt;a href="https://about.gitlab.com/features/gitlab-ci-cd/"&gt;GitLab CI&lt;/a&gt; with the objective of finding out if we can use it instead of &lt;a href="https://jenkins.io"&gt;Jenkins&lt;/a&gt;, our current CI server of choice.&lt;/p&gt;
&lt;p&gt;Since most of our projects use &lt;a href="https://maven.apache.org"&gt;Maven&lt;/a&gt;, I was particularly interested in setting up a simple Maven build job.&lt;/p&gt;
&lt;p&gt;To cut a long story short, yes, I would use GitLab CI in my next project. We&amp;rsquo;ll later see why, but first I want to give a quick walkthrough of GitLab CI.&lt;/p&gt;</description></item><item><title>Introducing Citrus Admin Web UI</title><link>https://omd.consol.de/blog/2017/07/11/introducing-citrus-admin-web-ui/</link><pubDate>Tue, 11 Jul 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/07/11/introducing-citrus-admin-web-ui/</guid><description>&lt;p&gt;It has been a while since the last release in the &lt;a href="http://christophd.github.io/citrus/"&gt;Citrus&lt;/a&gt; universe. It took us some time to get the new Citrus release &lt;a href="http://christophd.github.io/citrus/"&gt;2.7.2&lt;/a&gt; ready for you.
Of course we were not being lazy in that time. Besides the new Citrus 2.7.2 release we are proud to announce a new player in the Citrus team. The &lt;em&gt;Citrus administration UI&lt;/em&gt; is a
web-based user interface that helps you to manage your Citrus projects and test cases.&lt;/p&gt;
&lt;p&gt;Often users complained about the complexity of having to learn all about Citrus and the Spring framework in particular as Citrus uses Spring for configuration and dependency injection.
Especially non-developers had problems to master the learning curve for Citrus and Spring when starting to use the framework. Also people asked for a way to have a user interface for managing
components and tests.&lt;/p&gt;
&lt;p&gt;We heard you and introduced a new administration user interface for Citrus! There is a detailed &lt;a href="http://christophd.github.io/citrus-admin/"&gt;Citrus Admin documentation&lt;/a&gt; (which is still ongoing).
However I would like to outline the main features of that web UI here in a short post for you.&lt;/p&gt;</description></item><item><title>Prometheus Monitoring for Java Web Applications without Modifying Their Source Code</title><link>https://omd.consol.de/blog/2017/07/10/prometheus-monitoring-for-java-web-applications-without-modifying-their-source-code/</link><pubDate>Mon, 10 Jul 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/07/10/prometheus-monitoring-for-java-web-applications-without-modifying-their-source-code/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="prometheus-logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;The &lt;a href="https://prometheus.io/"&gt;Prometheus&lt;/a&gt; monitoring tool follows a &lt;em&gt;white-box&lt;/em&gt; monitoring approach: Applications actively provide metrics about their internal state to the Prometheus server. In order to instrument an application with Prometheus metrics, you have to add a metrics library and use that library in the application&amp;rsquo;s source code. However, DevOps teams do not always have the option to modify the source code of the applications they are running.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/fstab/promagent/"&gt;Promagent&lt;/a&gt; is a Java agent using Bytecode manipulation for instrumenting Java Web applications without modifying their source code. Promagent allows you to get white-box metrics for Java Web applications even if these applications do not implement any metrics library out-of-the-box.&lt;/p&gt;</description></item><item><title>OMD 2.40 Labs Edition Released on Raspberry Pi</title><link>https://omd.consol.de/blog/2017/06/14/omd-2.40-labs-edition-released-on-raspberry-pi/</link><pubDate>Wed, 14 Jun 2017 14:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/06/14/omd-2.40-labs-edition-released-on-raspberry-pi/</guid><description>&lt;!--
&lt;div style="position: relative; float: right; margin-left: 1em; margin-right: 1em; margin-bottom: 1em; width: 20%; height: 20%;"&gt;&lt;img src="raspberry-omd240.png"&gt;&lt;/div&gt;
--&gt;
&lt;p&gt;&lt;a href="https://omd.consol.de/docs/omd/"&gt;&lt;strong&gt;OMD Labs Edition&lt;/strong&gt;&lt;/a&gt; 2.40 for the Raspberry Pi has been released today. A month and a broken SD card (excessive use of /var/swap during the builds) after the release of the x86 version it is now possible to run a full-blown monitoring system on your ARM boards. It was tested on Raspberry 2 and Raspberry 3. If you want to run OMD on one of the older models, you might experience performance problems, especially when you enable InfluxDB and Grafana.&lt;/p&gt;</description></item><item><title>OMD 2.40 Labs Edition Released</title><link>https://omd.consol.de/blog/2017/05/17/omd-2.40-labs-edition-released/</link><pubDate>Wed, 17 May 2017 10:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/05/17/omd-2.40-labs-edition-released/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em; width: 20%; height: 20%;"&gt;&lt;img class="project-logo-light project-logo--omd" src="https://omd.consol.de/docs/omd/omd_light.svg" alt="OMD Labs Edition" width="240" height="240"&gt;&lt;img class="project-logo-dark project-logo--omd" src="https://omd.consol.de/docs/omd/omd_dark.svg" alt="OMD Labs Edition" width="240" height="240"&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://omd.consol.de/docs/omd/"&gt;&lt;strong&gt;OMD Labs Edition&lt;/strong&gt;&lt;/a&gt; 2.40 has been released today. The OMD Labs Edition is based on the standard &lt;a href="http://omdistro.org/"&gt;&lt;strong&gt;OMD&lt;/strong&gt;&lt;/a&gt; but adds some more useful addons like &lt;a href="http://grafana.org/"&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://influxdb.org/"&gt;&lt;strong&gt;Influxdb&lt;/strong&gt;&lt;/a&gt; or additional cores like &lt;a href="http://icinga.org/"&gt;&lt;strong&gt;Icinga 2&lt;/strong&gt;&lt;/a&gt; and &lt;a href="http://naemon.org/"&gt;&lt;strong&gt;Naemon&lt;/strong&gt;&lt;/a&gt;. This releases focus is on security and maintainance and removes some recently discovered CVEs in Nagios, Icinga and Naemon.&lt;/p&gt;</description></item><item><title>Angular, we have to talk!</title><link>https://omd.consol.de/blog/2017/03/28/angular-we-have-to-talk/</link><pubDate>Tue, 28 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/28/angular-we-have-to-talk/</guid><description>&lt;p&gt;About three or four years ago I had the first contact with AngularJs (obviously V1.x) and what should I say? I loved it! It perfectly added the missing piece that JQuery wasnt able to solve: Bind data to the Dom in an easy way. Since this days there where a lot of evolution in Javascriptland. A lot of new Frameworks for entire SPAs, new techniques like functional and reactive programming, a lot (!) of build systems / task manager and even the language itself developed towards an serious programming language (I know some people have a different opinion). At least with the power of Typescript (or Flow) Javascript projects doenst have to be a Pain. Angular2+ took many of the the mordern aspects to provide a good and productive developer experience to develop application in time, quality and budget. Dont get me wrong: They made a very good job! But I have personally some concerns which I want to point out in this post.&lt;/p&gt;</description></item><item><title>Protecting Passwords in Java Properties Files on Windows</title><link>https://omd.consol.de/blog/2017/03/27/protecting-passwords-in-java-properties-files-on-windows/</link><pubDate>Mon, 27 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/27/protecting-passwords-in-java-properties-files-on-windows/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="safe.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;Typical Java backend applications need to integrate with existing 3rd party services. In most cases, calls to these 3rd party services are authenticated. Frequently, Java applications are required to use login credentials for authenticated calls: A username and a password.&lt;/p&gt;
&lt;p&gt;This scenario raises a problem: How can we &lt;strong&gt;store the password&lt;/strong&gt; needed for calling the 3rd party service? We could store it in a &lt;em&gt;properties&lt;/em&gt; file, but then everyone with access to the &lt;em&gt;properties&lt;/em&gt; file learns the password. We could provide the password as a command line parameter or environment variable, but then everyone with access to the startup script learns the password. We could hard-code it in our application, but then everyone with access to the JAR file learns the password. We could encrypt the password using a master key, but then we have the same problem again: How to store the master key?&lt;/p&gt;
&lt;p&gt;The common solution is to use a secure data store provided by the operating system. Our application runs on Windows Server, so we use the Windows Data Protection API (DPAPI) for protecting our secret passwords. This blog post shows how to use the DPAPI in Java applications.&lt;/p&gt;</description></item><item><title>Ansible limit pitfalls</title><link>https://omd.consol.de/blog/2017/03/15/ansible-limit-pitfalls/</link><pubDate>Wed, 15 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/15/ansible-limit-pitfalls/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="ansible-logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;Mit steigender Zahl der im &lt;a href="https://ansible.com"&gt;Ansible&lt;/a&gt;-Inventory gepflegten Hosts verlängert sich die Laufzeit eines Playbooks. Ansible erkennt zwar, welche Tasks nicht ausgeführt müssen (z.B. weil bestimmte Pakete bereits installiert sind), jedoch kostet auch diese Überprüfung Zeit. Früher oder später wird man deshalb den Playbook-Parameter &lt;code&gt;--limit|-l&lt;/code&gt; einsetzen - und sich wundern, warum Teile des Playbooks plötzlich nicht mehr funktionieren. Dieser Blogpost zeigt, in welche Probleme man laufen kann bzw. wie man sie vermeidet und löst.&lt;/p&gt;</description></item><item><title>Getting Started With Java 9's New HTTP Client</title><link>https://omd.consol.de/blog/2017/03/14/getting-started-with-java-9s-new-http-client/</link><pubDate>Tue, 14 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/14/getting-started-with-java-9s-new-http-client/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="duke-blueprint.png"&gt;&lt;/div&gt;
&lt;p&gt;If you ever needed to request HTTP resources with Java, you probably came across several solutions put together from a surprising number of lines. And you probably ended up with using a third party library to achieve your goal in a reasonable manner.&lt;/p&gt;
&lt;p&gt;Good news: besides &lt;a href="https://labs.consol.de/blog/2017/02/13/getting-started-with-java9-modules.html"&gt;Java 9 modules&lt;/a&gt;, the next JDK version comes with a brand new HTTP client, and it not only brings support for HTTP/2, but also a sleek and comprehensive API. Let&amp;rsquo;s have a closer look at the new features.&lt;/p&gt;</description></item><item><title>Ansible meets DokuWiki</title><link>https://omd.consol.de/blog/2017/03/13/ansible-meets-dokuwiki/</link><pubDate>Mon, 13 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/13/ansible-meets-dokuwiki/</guid><description>&lt;h1 id="ansible-meets-dokuwiki"&gt;Ansible meets DokuWiki&lt;/h1&gt;
&lt;p&gt;Dokumentation belegt in der Rangliste der beliebtesten Arbeiten eines Administrators sicher einen der hinteren Plätze. Neben der Beliebtheit der Aufgabe ist es auch mit zunehmender Anzahl der vorhandenen Systeme immer aufwändiger, die Dokumentation auf einem aktuellen Stand zu halten. Ein klassischer Fall also für Automatisierung.&lt;/p&gt;
&lt;p&gt;Das Ziel in diesem Blog soll es sein, für jedes System eine DokuWiki Seite automatisch zu erzeugen. Weiter soll auf jeder Seite noch die Möglichkeit bestehen, individuelle Dokumentation mit einzufügen.&lt;/p&gt;</description></item><item><title>Prometheus und die Fritzbox</title><link>https://omd.consol.de/blog/2017/03/08/prometheus-und-die-fritzbox/</link><pubDate>Wed, 08 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/08/prometheus-und-die-fritzbox/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="prometheus-logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="https://prometheus.io"&gt;Prometheus&lt;/a&gt; ist ein quelloffenes Monitoring- und Alarmierungs-Werkzeug. Seine Basis bildet eine Zeitreihen-Datenbank, auf deren Daten mit einer eingebauten, sehr mächtigen Abfragesprache zugegriffen werden kann.&lt;/p&gt;
&lt;p&gt;Prometheus verfolgt den Ansatze des sogenannten &amp;ldquo;whitebox-monitoring&amp;rdquo;. Anwendungen stellen hier entweder nativ Metriken zur Verfügung, oder alternativ macht ein &amp;ldquo;&lt;a href="https://prometheus.io/docs/instrumenting/exporters/"&gt;exporter&lt;/a&gt;&amp;rdquo; Applikations- oder Geräte-Metriken für Prometheus abfragbar.&lt;/p&gt;
&lt;p&gt;In diesem Artikel möchte ich zeigen, wie man mit Hilfe des &lt;a href="https://github.com/ndecker/fritzbox_exporter"&gt;fritzbox_exporter&lt;/a&gt; und des &lt;a href="https://github.com/RichiH/speedtest_exporter"&gt;speedtest_exporter&lt;/a&gt; im Zusammenspiel mit &lt;a href="http://grafana.org/"&gt;Grafana&lt;/a&gt; Einblicke in die Performance seines Heimnetzwerks und seines Internetanschlusses bekommen kann. Die Hardware-Basis für dieses Projekt stellt ein RaspberryPi.&lt;/p&gt;</description></item><item><title>Testing Logstash Configuration with Citrus and Docker</title><link>https://omd.consol.de/blog/2017/03/08/testing-logstash-configuration-with-citrus-and-docker/</link><pubDate>Wed, 08 Mar 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/03/08/testing-logstash-configuration-with-citrus-and-docker/</guid><description>&lt;p&gt;The ELK-Stack is a good option to aggregate and visualize distributed logging-data. It basically based on&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.elastic.co/products/logstash"&gt;&lt;strong&gt;L&lt;/strong&gt;ogstash&lt;/a&gt; for extracting and distributing the data&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.elastic.co/products/kibana"&gt;&lt;strong&gt;K&lt;/strong&gt;ibana&lt;/a&gt; as visualization frontend.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The core of the most ELK applications is the Logstash configuration. A user defines here which data (&lt;a href="https://www.elastic.co/guide/en/logstash/current/input-plugins.html"&gt;inputs&lt;/a&gt;) is processed, how (&lt;a href="https://www.elastic.co/guide/en/logstash/current/filter-plugins.html"&gt;filter&lt;/a&gt;) the data is processed and where it will go afterwards (&lt;a href="https://www.elastic.co/guide/en/logstash/current/output-plugins.html"&gt;outputs&lt;/a&gt;). Especilly this configuration contains a lot of logic which is unfortunally not easy to test. In this article I want to show you how to setup a testing environment for your Logstash configuration.&lt;/p&gt;</description></item><item><title>Portchannel-Monitoring mit check_nwc_health</title><link>https://omd.consol.de/blog/2017/02/26/portchannel-monitoring-mit-check_nwc_health/</link><pubDate>Sun, 26 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/26/portchannel-monitoring-mit-check_nwc_health/</guid><description>&lt;p&gt;Version 6.0 von &lt;a href="https://omd.consol.de/docs/plugins/check_nwc_health/"&gt;check_nwc_health&lt;/a&gt; ist erschienen und hat neben Aufräumarbeiten unter der Haube ein paar neue Features zu bieten:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;interface-etherstats&lt;/li&gt;
&lt;li&gt;F5 Wide IPs&lt;/li&gt;
&lt;li&gt;Juniper VSD Memberstatus&lt;/li&gt;
&lt;li&gt;interface-stack-status&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>SNMP-Traps und OMD - Teil 1</title><link>https://omd.consol.de/blog/2017/02/25/snmp-traps-und-omd-teil-1/</link><pubDate>Sat, 25 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/25/snmp-traps-und-omd-teil-1/</guid><description>&lt;p&gt;&lt;span style="float: right"&gt;&lt;img src="switch.png" alt=""&gt;&lt;/span&gt;SNMP-Traps und Nagios ist eins der Themen, um das man bislang gerne einen großen Bogen gemacht hat. Grundsätzlich gibt es seit etlichen Jahren die AddOns SNMPTT und Nagtrap, deren Konfiguration aber ein wenig mühsam ist. In einem Projekt, bei dem es um die Überwachung von mehreren Tausend Storage-Systemen ging, entstand eine Methode, welche ressourcenschonend und einfach automatisierbar ist.
Im ersten Teil dieses Artikels geht es um die entsprechende Vorbereitung eines OMD-Servers. Genauer gesagt darum, wie man dafür sorgt, daß ein eingehender Trap gleichzeitig an mehrere OMD-Sites (Test, Produktion, &amp;hellip;) zugestellt wird.&lt;/p&gt;</description></item><item><title>Using .gitignore the Right Way</title><link>https://omd.consol.de/blog/2017/02/22/using-.gitignore-the-right-way/</link><pubDate>Wed, 22 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/22/using-.gitignore-the-right-way/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="git_logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;Have you ever wondered what kind of patterns &lt;code&gt;.gitignore&lt;/code&gt; allows? Was it &lt;code&gt;**/*/target&lt;/code&gt;, &lt;code&gt;target/*&lt;/code&gt; or &lt;code&gt;*target*&lt;/code&gt;?? Read on and find out!&lt;/p&gt;</description></item><item><title>PNP4Nagios and Grafana</title><link>https://omd.consol.de/blog/2017/02/21/pnp4nagios-and-grafana/</link><pubDate>Tue, 21 Feb 2017 16:00:00 +0200</pubDate><guid>https://omd.consol.de/blog/2017/02/21/pnp4nagios-and-grafana/</guid><description>&lt;p&gt;Many Nagios folks use &lt;a href="http://pnp4nagios.org/"&gt;&lt;strong&gt;PNP4nagios&lt;/strong&gt;&lt;/a&gt; to store performance data and draw graphs.
Nowadays time series databases like Influxdb are quite trendy and have their own pros and cons. But In the end
they visualize the stored metrics with &lt;a href="http://grafana.net/"&gt;&lt;strong&gt;Grafana&lt;/strong&gt;&lt;/a&gt; which comes with a plugable
datasource api, so wouldn&amp;rsquo;t it be nice to use the already collected RRD data in Grafana as well? This
combines the speed of rrd with the more modern graphs from Grafana.&lt;/p&gt;</description></item><item><title>Getting Started with Java 9 Modules</title><link>https://omd.consol.de/blog/2017/02/13/getting-started-with-java-9-modules/</link><pubDate>Mon, 13 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/13/getting-started-with-java-9-modules/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="duke-thinking.jpg" alt=""&gt;&lt;/div&gt;
&lt;p&gt;So, 2017 has arrived - this is the year when Java 9 will finally be released. And with it, the brand new module system called Jigsaw. In January, Marc Reinhold has announced that &lt;a href="https://twitter.com/mreinhold/status/822209640037425154"&gt;JDK 9 is feature complete&lt;/a&gt;, so we have every reason to be optimistic that the final release will actually ready in July. So it is about time to get acquainted with project Jigsaw, also known as Java 9 modules.&lt;/p&gt;</description></item><item><title>Local Kubernetes Development with Minikube</title><link>https://omd.consol.de/blog/2017/02/10/local-kubernetes-development-with-minikube/</link><pubDate>Fri, 10 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/10/local-kubernetes-development-with-minikube/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="minikube_logo.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;Getting started with &lt;a href="https://kubernetes.io"&gt;Kubernetes&lt;/a&gt; can be intimidating at first. Installing Kubernetes is not the easiest of tasks and can get quite frustrating.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; Luckily, there is an out-of-the box distribution called &lt;a href="https://github.com/kubernetes/minikube"&gt;Minikube&lt;/a&gt; which makes toying around with Kubernetes a bliss.&lt;/p&gt;</description></item><item><title>FOSDEM Video: Implementing 'tail -f'</title><link>https://omd.consol.de/blog/2017/02/07/fosdem-video%2358-implementing-tail-f/</link><pubDate>Tue, 07 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/07/fosdem-video%2358-implementing-tail-f/</guid><description>&lt;div style="float: right; margin-left: 1em; margin-bottom: 1em;"&gt;&lt;img src="gopher.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;At this year&amp;rsquo;s &lt;a href="https://fosdem.org"&gt;FOSDEM&lt;/a&gt; conference I did a 20 minutes presentation on how to implement &lt;code&gt;tail -f&lt;/code&gt; in &lt;a href="https://golang.org/"&gt;Go&lt;/a&gt;. The video is available below.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Abstract:&lt;/em&gt; As part of a log file monitoring tool, I implemented a file tailer that keeps reading new lines from log files. This turned out to be much more challenging than I thought, especially because it should run on multiple operating systems and it should be robust against logrotate. In this 20 Minutes talk I will present the lessons learned, the pitfalls and dead-ends I ran into.&lt;/p&gt;</description></item><item><title>Hamcrest - More readable Tests</title><link>https://omd.consol.de/blog/2017/02/07/hamcrest-more-readable-tests/</link><pubDate>Tue, 07 Feb 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/02/07/hamcrest-more-readable-tests/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="hamcrest.jpg" alt=""&gt;&lt;/div&gt;
&lt;p&gt;The probably best written tests are those which can be understood by anyone understanding some English, right?&lt;/p&gt;
&lt;p&gt;&lt;a href="http://hamcrest.org"&gt;Hamcrest&lt;/a&gt; is an anagram of the word &amp;ldquo;Matchers&amp;rdquo; and a paradigm of encapsulating matching logic and corresponding error messages in objects we could use and reuse in the tests. They hide &amp;ldquo;matching&amp;rdquo;-implementation details and get self explanatory names we can seamless integrate in our tests. And of course we are also able to write tests for our matchers!&lt;/p&gt;
&lt;p&gt;Hamcrest itself isn&amp;rsquo;t only intended to be used in the context of tests. It&amp;rsquo;s available for: Java, Python, Ruby, Objective-C, PHP, Erlang, Swift.&lt;/p&gt;</description></item><item><title>Undertow - How to setup a HTTP server</title><link>https://omd.consol.de/blog/2017/01/24/undertow-how-to-setup-a-http-server/</link><pubDate>Tue, 24 Jan 2017 00:00:00 +0000</pubDate><guid>https://omd.consol.de/blog/2017/01/24/undertow-how-to-setup-a-http-server/</guid><description>&lt;div style="position: relative; float: right; margin-right: 1em; margin-bottom: 1em;"&gt;&lt;img src="undertow.png" alt=""&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://undertow.io/"&gt;Undertow&lt;/a&gt; is an open-source lightweight, flexible and performant Java server, they say. I can confirm that it&amp;rsquo;s&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;flexible: always feel free to provide your own implementations or use Undertow helpers to delegate usual server glue code to a more specific implementation you provide&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I didn&amp;rsquo;t check or compare performance. It is the default server implementation of &lt;a href="http://wildfly.org/"&gt;Wildfly Application Server&lt;/a&gt; and sponsored by JBoss.&lt;/p&gt;</description></item></channel></rss>