perl / local cpan without root

Installing  perl modules on systems where you don’t have root privileges can be a real pain.  The easiest way to get it working, is what I found on stackoverflow below.

wget -O- | perl - -l ~/perl5 App::cpanminus local::lib
eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.bash_profile
echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.bash_profile

Then use it like so:

cpanm Module::Name

Lego and rubik’s cube. Solved.

Lego has always been cool.  Sure, you can follow the build plan, but there’s so much more you can build.  My 10yr old son and 9yr old daughter have been into scratch for a while and wanted to start writing code in python and javascript/html/css.  More on the latter later.  Did you know that Lego Mindstorms works much like a raspberry pi?  You can boot off of an sd card, without touching the firmware, and control all the mindstorms components from python!  Check out the site for more on the subject!
We have to use python since LabView does not run on linux (yes it does, but not without the usual little headaches).

My son found the build plans and built it together with his sister.  We then first got to boot the thing in ev3dev and started with little routines to get the arm and cube platform to move, identify colors etc..

Some time later, after a few build corrections and code updates, this is the result.

ansible meets xymon

Ansible can do many things many times.

As a huge fan of lightweight software, it’s hard to ignore ansible for automation tasks.  If you want to centralize xymon client management another step further, why not go agentless and have ansible manage that for you? Another benefit is that you also encrypt the data at the same time sending it over the network.  The xymon client can be configured to do that too, but keeping it simple is easier with ansible.

I’ll post some sample playbooks on the git repo.

Also working on an ansible xymon module.

revamping xymon continued..

For starters, the menu is built from the xymonmenu.cfg template in the server’s etc folder.

Then, the header and footer files are in the server’s web folder: stdnormal_header and stdnormal_footer.  There’s lots of others as well, and they have a lot in common, so you could optimize the pagegen code a little (but don’t, better to redo the whole presentation thing all together then, which I may end up doing later..)

Finally, the body is generated by the xymongen pagegen code.  And even though to me and most text based OS users/admins that’s ok, for the graphical OS community, it’s crap. Period.

So, that’s how I ended up going the rest api route.

Nothing fancy, but a little less painful to the eye (fonts also changed in the meantime):

revamping xymon’s pages with bootstrap

So, if you still want to work on xymon’s pages themes, it’s not that difficult.  I mean, it is design-wise, but technically it’s not.

There are different kinds of pages (status, log, info, history, …) but they all have a common menu and each page consists of a header, a footer, the common menu and a generated body with the status, data, report, history, etc..

I first started adding the bootstrap 4, jquery and a few other javascript files in the footer, an extra css file and a few modifications on the colors to make it a more flat look ‘n’ feel.

Some things are hardcoded, but this is open source, so you can change the body generation too, if you want.

more on that later …


Xymon Monitoring awesomeness

Xymon isn’t the most contemporary of monitoring tools around, but it is extremely light weight, fast (Do consider nginx instead of the default apache!), and flexible.  What’s even more, its modular design brings it back to the more modern days.


-> no client needed, as easy as writing a message to an ipaddress:tcp port

-> integrates well with other tools

-> no programming skills needed

-> open source


Right, it’s php cgi rendered pages with a page refresh rate of 60s – not to mention the eighties look and feel – don’t do it justice.

have a look at the admin guide here

Also, here’s the official sourceforge page and a cool demo site.

Since most of the xymon users tend to be unix sys admins, there hasn’t been much effort in improving its appearance.  Config, set and use.  Does what it needs to do, right?

However, I’ll walk you through a couple of ways to integrate it into your infrastructure, provide some tips and tricks like agentless monitoring with ansible and how to use nginx with fastcgi support instead of apache and multiple ways to interface with it. Not just from any *nix box, but how about powershell on windows (or linux – actually built the .NET sockets interface with powershell on ubuntu)? Works like a charm.

I’m not a frontend developer, and that’s an understatement. Colors, fonts, tables, buttons, .. Just not my best friends.  Instead I wrote a light node.js restful api interface to query xymond(x)board to make it available to any system.  Or you plug into xymon’s status channel and store the data into a modern time series database like opensdb or influxdb and builld beautiful graphs with grafana.

I’ll be updating  my public github repo on the subject.