coredump I/O

The adventures of a sysadmin in search for the perfect uptime.

buildlogs and static stuff

So, turns out that my old blog generator was complicated and it’s mostly dead now. Decided to do some tests this saturday with Hugo. Such nice and fast tool. Migrating from octopress wasn’t even THAT hard since both use markdown for posts. Also used mkdocs to create a new session on my site: Build logs. I do a lot of DIY stuff and I think it would be interesting to have those things described in documentation format.

Making tools that aren't a hammer

There’s a famous saying about hammers and problems. I think it goes like if all you have is a hammer, everything looks like a nail. That’s a common thing to happen on the devops/sysadmin trade and goes completely against the UNIX Philosophy of small tools getting together to achieve big things. Sometimes we will essentially try to fit the problem to the tool, just because we have all this variety of do everything tools.

One old weird trick to speed SSH

SSH is awesome, it’s perhaps into the top 10 most important tools for the sysadmin job and still surprises me sometimes with cool features. Doing some reading about cluster administration using SSH I stumbled into this: Host * ControlMaster auto ControlPath /tmp/ssh_mux_%h_%p_%r ControlPersist 4h What witchery is that, you ask? Has science gone too far? Well, no, that’s actually pretty old and I should be probably ashamed of only discovering it so recently.

GnuPG for people that don't like GnuPG

So for some reason you have to use GnuPG (GPG for shorts). It may because you work somewhere with minimal privacy/security conscience, or just because you are on a project that decided to sign commits using a GPG/PGP key (I will use PGP/GPG key interchangeably here). The problem is, you have no idea of what you should be doing. Fear not, you can totally fake it until you make it with a few easy commands.

Learning Go(lang)

One of the things I really like to do is learning new languages. So after leaving it on the back burner for almost a year I decided to really concentrate on the Mark Summerfield’s Programming Go book that I had since before printing (I had like 4 different rough cuts that I never started reading for serious). The book is very good, and is doing a fantastic job on giving me the basics on the language, and I am starting the more advanced chapters and not feeling totally lost.

Why I stop

Seems that every post I create is about changes, that can get annoying but I think that discussing the reasons behind those changes is important, interesting, or something like that. I don’t really care. Why I stopped using Ubuntu tl;dr: Canonical crap. I am using Arch Linux. Debian is great. There’s nothing better than apt in the planet to manage packages. Debian Project’s commitment to free software is also great. The thing is that you end having to use Debian testing or unstable to have access to software on a timely manner.

Ch-ch-ch-changes

So, since last post some changes happened, most people that follow me on twitter/G+/Facebook or Linkedin are probably aware of them but well, I needed to post something :) From bash to zsh I changed my shell after years using bash. zsh makes for a somewhat better experience and has some options that really help. I tried to use fish some years ago but it let me down, so I was a little scared of changing shells again but now after almost two weeks using zsh I am comfortable to say that it was a good choice.

Debugging segfaults from logs to gdb

So this week after a version upgrade on GraphicsMagick we got some segfaults on our servers. Nothing terrible, twelve segfaults or close to that on a 24 hour period. The only information was a line on /var/log/kernel.log:

Feb 22 13:28:27 serverXX kernel: [1953364.275653] gm[16356]: segfault at 0 ip 00007fd137bd41e0 sp 00007fff5770dcd0 error 6 in libGraphicsMagick.so.3.7.0[7fd1379b9000+29d000]

No core dumps since ulimit -c is zeroed. What to do to at least have an idea of what is happening?

HoardD javascript support (and #monitoringsucks)

First things first: the latest revision of HoardD on github already supports scripts written in pure javascript. Really it was easy to make it work but I kinda overlooked it on the first version. The README.md is already updated. Second: most of you probably know the #monitoringsucks movement/hashtag/discussions. I totally agree that the current monitoring tools only do part of the job and getting them to work together is horrible. I have some ideas on how to solve the problem, but the path from idea to code is a long one.

Announcing HoardD

Getting back to work as a full time sysadmin was great, I got back to speed on scalability, updated my toolbox and learnt about other fantastic tools, like Graphite. Graphite is a graphing tool, extremely configurable and scalable. One thing, though, bothered me: the lack of good tools to send server metrics to it. I tried collectd graphite plugins and none did what I wanted the way I wanted.

So I decided to flex my node.js dev muscles and here is HoardD. This is a node.js app written in coffee-script that basically runs scripts and tools to get information about a server and sends it to carbon (Graphite’s storage backend). It’s easily expansible to include more metrics and very very fast and small (11MB or so, depending on scripts loaded, most of it is node).