• Centralized Logging with journald and Standard Linux Tools

    Every modern Linux distribution ships with journald as its logging system. It captures logs from system services, the kernel, and applications in a structured, indexed format. Rather than fighting this or replacing it with something else, I decided to embrace journald as the foundation of my centralized logging architecture. The...


  • Designing wall mounts for the Odroid HC2

    When I purchased Hard Kernel's Odroid HC2, I assumed I would find a tidy way to mount the device along side my other computer and network gear. I considered building a mount or shelf from wood; I also considered drilling holes in the heatsink to hang the device from a...


  • Testing Github Pull Requests Using git Patches

    Did you know that Github can provide a patch file for any pull request (PR)? Appending .patch to any pull request URL will get you a patch file for the PR. If you want to locally test the changes provided in the PR then applying the patch to your local...


  • Parsing User Agent strings from Packetbeat

    Packetbeat is a open source tool from Elastic (the makers of Elasticsearch) that analyzes network traffic in real-time and stores the data in Elasticsearch. You can collect some interesting data if you install Packetbeat in a location where it can see all the traffic between your network and the Internet....


  • Managing a Firewall with Puppet when using Docker

    The problem with using Docker and managing your firewall with Puppet is that you have two competing tools trying to manage the rules in the firewall. The puppetlabs-firewall module allows you purge all unmanaged firewall chains and rules, and if configured to do so, puppet will purge the rules added...