Chemnitzer Linuxtage 2012

As announced 3 weeks ago, the Debian project was present at Chemnitzer Linuxtage. Several talks and workshops where held by people related to the Debian project. At the booth we had talks and discussions with exhibitors and visitors, unfortunately I didn’t had much time to visit more than small parts of two lectures.

Unfortunately (for the visitors) we didn’t had any merchandising on board, while we received several requests. On Sunday Axel surprised us with some leftovers from fosdem of debian.ch merch.

At the booth we had a demo machine running Babelbox and xpenguins, which attracted visitors very well.

Booth Babelbox

We received also more than one “Just thank you … ” by satisfied users. :)

Four different talks and one workshop were held by Debian people, but they were not specific to the Debian. The workshop was about OpenStreetMap, lectures was about commandline helpers, grep everything, quality analyzing and team management in opensource projects and Conkeror and other keyboard based webbrowsers.

Many thanks to Jan Dittberner, Andreas Tille, Christian Hoffmann, Florian Baumann, Christoph Egger, Axel Beckert, Adam Schmalhofer, Markus Schnalke, Sebastian Harl and Patrick Matthäi for running the booth, answering a wide range of questions or just chatting with visitors. A special thank to TMT GmbH & Co. KG for providing the complete equipment and sponsoring it’s transportation.

At the end we have to send a big thank to the organizing team of the Chemnitzer Linuxtage. It was fun and a pleasure to find new friends and meet old ones of the Free Software community.

A small sidenote … was anybody aware that OpenSuSE Package search is using screenshots.debian.net?

Is using Octopress a good idea?

Octopress seems to become more popular these days. As it looks great at a first view, I see two problems.

Ruby 1.9.2

All documentations and howtos requires to install ruby 1.9.2 via rvm. Maybe anybody can tell me, why I could not just install the ruby1.9.1 package which is in fact 1.9.2.0?

Comments

Optopress doesn’t support comments itself. I found 2 solutions for this problem. The most used is just to use Disqus, the other one to live without comments.

I dislike the idea to embed external resources for privacy reasons and to rely on stuff I don’t have under my own control. Is there any alternative solution beside disqus which isn’t hosted offside?

Monitoring dualstacked service with Icinga

Having monitoring for dualstack connectivity in place helps a lot. Unfortunately in most cases we are running also services we want to offer dualstacked. In the past we just monitored in those cases IPv4 only or created a separate check for the same service on IPv6. This is a bit messy and I was looking for something to check services via IPv4 and IPv6. Digging my most boring search engine doesn’t help much here. So I was talking with some people more involved into the core Icinga/Nagios stuff. Seems there is actually the best solution to use check_multi.

As we have the command definition for “check_multi_icinga” already in place, I created a check_smtp_dualstack.cmd for monitoring a dualstacked SMTP service

command[ IPv4 ] = check_smtp -4 -H “$HOSTADDRESS$”
command[ IPv6 ] = check_smtp -6 -H “$HOSTADDRESS6$”
state [ CRITICAL ] = COUNT(CRITICAL) > 1
state [ WARNING ] = COUNT(WARNING) > 0 || COUNT(CRITICAL) > 0
state [ UNKNOWN ] = COUNT(UNKNOWN) > 1

A simple SMTP service definition does the trick (don’t forget ‘address6′ in host definition)

define service{
use generic-service ; Name of service template to use
host_name localhost
service_description SMTP
check_command check_multi_icinga!’check_smtp_dualstack.cmd’!'-r 1+2+4+8′
}

Okay .. that looks nice, but only at the first view. Imagining what we are actually running as service checks, it seems we just need for every unique service check a new cmd-file for check_multi as I didn’t found a way to generalize the whole stuff yet.

Does anybody know a way to  pass commands for check_multi via service definitions? Something like:

define service{
[...]
check_command                   check_multi_icinga!’check_general_dualstack.cmd’!'check_smtp -p 666′!’-r 1+2+4+8′
[...]
}

Monitoring dualstacked systems with Icinga

Since some ages we are deploying IPv6 in our network and also for some selected services. Some days ago we discovered, that anybody has enabled accidentally a router advertisement daemon in a network where this shouldn’t happen. As result of this, IPv6 enabled systems got (additional) IPv6 adresses and some services where using this new learned addresses as source address when sending out replies.

Maybe this doesn’t sound so harmful on the first view. But some services rely on a correct source address when getting a reply for a request (for example dns resolver library).

To be aware of the issue, that a service maybe available via IPv4 but not via IPv6 or vica versa, a dualstacked monitoring needs to be in place for dualstacked services. Looking into the issue, I stumbled upon Michael Friedrichs HowTo about Dualstacked monitoring with Icinga.

Luckily we have the full software stack in place on Squeeze (with squeeze-backport). As icinga and nagios-plugins was in installed already, I just needed to fetch check_multi.

aptitude install -t squeeze-backports nagios-plugin-check-multi

Now a new check command is needed, I created the following:

define command {
command_name check_multi_icinga
command_line /usr/lib/nagios/plugins/check_multi \
-f /etc/check_multi/$ARG1$ $ARG2$ $ARG3$ $ARG4$ \
-s objects_cache=/var/cache/icinga/objects.cache \
-s status_dat=/var/cache/icinga/status.dat \
-s HOSTADDRESS=$HOSTADDRESS$ -s HOSTADDRESS6=$HOSTADDRESS6$
}

For monitoring connectivity I created check_host_alive_dualstack.cmd

command[ IPv4 ] = check_ping -4 -H “$HOSTADDRESS$” -w 5000.0,100% -c 5000.0,100% -p 5
command[ IPv6 ] = check_ping -6 -H “$HOSTADDRESS6$” -w 5000.0,100% -c 5000.0,100% -p 5
state [ CRITICAL ] = COUNT(CRITICAL) > 1
state [ WARNING ] = COUNT(WARNING) > 0 || COUNT(CRITICAL) > 0
state [ UNKNOWN ] = COUNT(UNKNOWN) > 1

Now we just need to replace the check-host-alive command and add a value for  ”address6″ on the host as the following

define host{
use generic-host ; Name of host template to use
host_name localhost
alias localhost
address 127.0.0.1
address6 ::1
check_command check_multi_icinga!’check_host_alive_dualstack.cmd’!'-r 1+2+4+8′
}

Reloading icinga should you show something like this:

Now we have general connectivity of our dualstacked systems monitored.


Too Cool for Internet Explorer