Snickasaurus's picture

Starting things off this comes from an old thread I dug up while searching for a solution to monitor all the hardware/software on my network. Having never built a tkl solution before I've been a bit lost as to where to start so I started looking at which software packages out there could be used freely. I was hoping everyone interested could give their experiences with something they may have used in the past or tried out but never got the hang of.

Currently, I have an ELK stack installed on Ubuntu Server 18.04 just messing around. Does anyone have any experience with Elastic Search or Kibana? I will fire up a Debian install and try to set it up the same way until this thread gets active.

Forum: 
Jeremy Davis's picture

I've very familiar with TKLDev and many other TurnKey particularities so please don't hesitate to ask if you have any questions.

To shamelessly plagiarise and/or paraphrase myself: FWIW you can see the all the appliance build code on GitHub.

Whilst on face value, it may seem a little dense, to anyone who knows much about Linux in general (and Debian in particular), actually the build code is pretty straight forward. Essentially all our appliances are based on Core and using the v15.0 WordPress appliance buildcode as an example; on top of that (as a OS chroot), any packages noted in the plan are pre-installed. The Core packages (turnkey/base) come from common (first line of the WP plan) and the LAMP specific ones also come from common (second line of the WP plan).

Then files included in the overlay are overlayed over the chroot filesystem; relative to / of the installed OS. E.g. overlay/etc/some.conf would end up as /etc/some.conf. Common overlays are provided by a COMMON_OVERLAYS = ... line in the Makefile (WP doesn't have any specific ones) and/or by calling additional common makefiles (WP calls turnkey/lamp.mk).

Then finally the configuration scripts in conf.d (WP has 2; conf.d/downloads & conf.d/main) are run within the OS chroot. Again common conf scripts can be called within the Makefile (or via other common makefiles).

The last step is to bundle it all up as an ISO. As a bit of an aside, the other builds are then generated from the ISO via buildtasks (to maintain consistency as much as possible).

Because the above meander a bit, here's the order that the above processing occurs:

  1. root.build - packages are installed (from both local plan and any common plans called)
  2. root.patched - common overlays (declared in Makefile)
  3. root.patched - local overlay
  4. root.patched - common conf scripts (declared in Makefile)
  5. root.patched - local conf script(s)

So for starters you'll need a v15.0 TKLDev. There is a tutorial in the docs that should assist to get you going. Once you've build Core and had a bit of a dig around the build code, hopefully things start to make a bit more sense.

Please do not hesitate to ask if you have any questions at all.

Regarding Syslog-NG, I see that it's packaged in Debian already so my guess is that would be a good place to start. Whilst the Debian packages are sometimes a little dated, they tend to be rock solid stable and have the advantage of always getting auto security updates. Having said that, if there are good reason why they aren't good enough for your purposes (e.g. serious bug(s) that are unfixed, newer high value features missing, etc) then installing from alternate sources is an option.

Add new comment