Seite wählen

NETWAYS Blog

Platz da LConf, der Director kommt!

Lange Zeit war das von NETWAYS entwickelte Tool LConf das Mittel der Wahl wenn ein grafisches Konfigurationsfrontend für Icinga gesucht wurde. Mit Icinga 2 und dem damit einhergehenden geänderten Konfigurationsformat litt jedoch die Kompatibilität, außerdem ist das ursprüngliche Konzept von LConf mit der Zuweisung von Services über Vererbungen eines OpenLDAP-Baumes spätestens mit den vielen Möglichkeiten der Apply Rules von Icinga 2 überholt.
Als eigenes Modul in Icinga Web 2 integriert, ist der Director das einzige Konfigurationstool das eine vollständige Unterstützung für Icinga 2 bietet. Die Kommunikation erfolgt dabei direkt mit der API des Icinga 2 Cores (seit Icinga 2.4). Daher stellt sich also die Frage: Wie lässt sich die Icinga Konfiguration von LConf am Besten auf den Director, respektive von Icinga 1.x auf Icinga 2.x migrieren?
Icinga Web 2 bietet bereits nativ eine Unterstützung für LDAP, diese steht auch den Modulen zur Verfügung. Um LConf nun als Import Source im Director zu verwenden, muss dafür in Web 2 noch eine entsprechende Resource eingerichtet werden.

Host in LConf


Bei der Import Source reicht es dann i.d.R. aus die Objektklasse auf lconfHost einzuschränken, denn mehr als nur Hosts zu importieren, macht in den wenigsten Fällen sind. Services sollten aufgrund von CheckCommands aus der Icinga Template Library (= ITL) sowieso neu gemacht und in dem Zuge auch gleich überdacht werden. Durch die Apply Rules liegt der Fokus auf Host Eigenschaften anhand deren später Services zugewiesen werden können. Neben Standardattributen stehen hier auch sog. Custom Attribute oder Custom Variablen (CustomVars) zur Verfügung, mit denen weitere individuelle Informationen wie beispielsweise Betriebssystem, Rolle oder Standort hinterlegt werden können.
Normalerweise ist es bei Hosts ausreichend cn, lconfAddress, lconfAlias und lconfHostCustomvar zu importieren. Da CustomVars in LConf mit Unterstrich vorm Bezeichner und einem Leerzeichen vor dem eigentlichen Wert angegeben werden müssen, sieht das in der Vorschau der Import Source beispielhaft so aus:

[
„_operatingsystem Linux“,
„_role Webserver“,
„_rack Rack01“
]

Diese Syntax kann vom Director nur schwer weiter verarbeitet werden, daher gibt es dort seit kurzem den Modifier „Transform LConf CustomVars to Hash„, mit dem das Ganze wie folgt transformiert wird:

{
operatingsystem: „Linux“,
rack: „Rack01“,
role: „Webserver“
}

Host im Director


Bei der darauf aufbauenden Sync Rule können dann alle CustomVars mit „All custom variables (vars)“ automatisch umgesetzt werden, dabei spielt es keine Rolle ob die Hosts eine, keine oder mehrere Custom Attribute definiert haben.
Damit ist es sehr einfach die Hosts aus dem bestehenden LConf-Baum bereits im Produktivbetrieb schon auf die künftige Verwendung mit Icinga 2 vorzubereiten und sie dann mit dem Director einmalig oder regelmäßig zu importieren, sodass zumindest ein paar Andenken an den „geliebten“ LConf bleiben…
Wer hier oder auch bei anderen Aufgaben mit Icinga und dem Director noch Unterstützung benötigt, kann aber natürlich auch gerne auf uns zukommen.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

LConf 1.5.0 released

lconf_logoWhile the backend exporter has been overhauled in many places, we’ve also tackled long lasting issues such as missing schema attributes or nasty import bugs. On the other hand, the LConf web interface reflects the schema additions as well fixes annoying bugs with custom variable removal, and also integrates community contributed patches such as a parent host drop down.
Download LConf Backend 1.5.0, LConf Icinga Web 1.5.0 & LConf Standalone Web 1.5.0.
Find the Changelog below.
Cheers, Alex & Michael

LConf Backend 1.5.0

CHANGES

  • Schema: Additional object attributes (see below) requiring update
  • Import: Skip already existing objects, set address to host name if not defined

FEATURES

  • Feature #1432: add inherits_parent attribute for host/service dependency
  • Feature #1480: add first_notification_delay as schema attribute to host/service
  • Feature #1886: contact attributes address1-6 missing
  • Feature #2082: Add ldap_person and allow auxiliary objectClass in ldap schema
  • Feature #2429: Add the attribute „address6“ for ipv6 dual stack to the host-settings
  • Feature #2495: Add attribute contactgroup_members and servicegroup_members
  • Feature #2690: Complete LDAP schema
  • Feature #2889: LConfImport: Skip already existing objects and continue import
  • Feature #2891: LConfImport: Set host address to name if not existing

FIXES

  • Bug #2192: LConfImport.pl doesn’t ignore comments in objects.cache
  • Bug #2240: hostgroup alias/display_name is overridden with cn
  • Bug #2761: Escalations are no longer exported
  • Bug #2857: LConf 1.5.0-rc1: additional hostgroups are exported with a „+“
  • Bug #2859: Default User filter for Icinga2 is too restrictive
  • Bug #2887: str2arr_by_delim_without_excludes() must not return empty array values
  • Bug #2899: customvars with value 0 are not exported

LConf Icinga Web Module 1.5.0

CHANGES

  • Requires LConf Backend 1.5.x!
  • New object attributes (see below)
  • Export checks for unsaved settings
  • Exclude not supported attributes in properties tab

FEATURES

  • Feature #1568: Notify to save last changes before export
  • Feature #1727: Parent settings for Hosts via GUI
  • Feature #2096: connection manager: add the default 389 port and localhost as default
  • Feature #2425: Add „Max check attempts“ to check settings
  • Feature #2517: ServiceEscalationServiceGroups and ServiceEscalationHostGroups dropdown missing
  • Feature #2645: Add an option to define override or add for specific attribute values (groups, contacts, etc)
  • Feature #2875: Add attributes: host address6, {contact,service}group_members, contact address1-6
  • Feature #2877: Add inherits_parents (dependencies 1.x) and first_notification_delay (host/service) attributes

FIXES

  • Bug #2177: Quicklinks from grid to access the hostObject directly in LConf don’t work
  • Bug #2410: delete customvar not possible
  • Bug #2553: Testcheck fails at expanding macros
  • Bug #2643: Contacts can not have an interval
  • Bug #2811: Find a way to hide StructObj attributes in Properties tab
  • Bug #2839: Add property not possible

LConf Standalone Web 1.5.0

Same as Icinga Web Module, and additionally:
FEATURES

  • Feature #2841: Increase Ajax timeout
  • Feature #2871: Add support for Apache 2.4

LConf Backend releases 1.4.4 & 1.5.0-RC1

lconf_logoWe’ve recently released LConf 1.4.3 and the first beta of 1.5.0 including performance improvements. This time, we’ve come around a couple of bugs with the Icinga 2 export and therefore release 1.4.4.

Additionally we’re working on getting things straightened up for the final 1.5.0 release. To get things going aside from performance improvements, there’s a new deployment script capable of Icinga 2 zones.d as well as additional schema changes (icon_image). Keep your fingers crossed, 1.5.0 is scheduled end of Q1. This time it’s 1.5.0-rc1 time.icinga_logo_200x69

Grab them while they’re hot and let us know how much better 1.5.x scales!
 

LConf bugfix releases & performance improvements

lconf_logoThere was definitely too much happening in 2014, and while there is progress to be seen on Icinga 2 and Icinga Web 2, LConf required some attention & love. Acknowledging bugs doesn’t automatically fix them, and we’d also like to have the Icinga 2 migration export for our customers ready to be used preparing the final migration in 2015. Furthermore we’ll definitely need to get better responding to bugs and feature requests on our redmine bug tracker.
Which is why the LConf taskforce was founded, the week before christmas holidays and even in our English speaking week. Four days full of code, drawings, swearing and whatnot. On the long run, we’ve fixed quite a few LConf backend bugs (not only Icinga 2), banged our head on LConf Icinga Web frontend bugs and finally tried to improve the export performance somehow. We’re also aware that the LConf Standalone Web gets more important these days when integrating it into the upcoming Icinga Web 2. Last but not least we’ve reviewed quite a few user contributed patches and integrated them upstream – thanks for that, keep up the good work!
In order to keep your installations safe, all the remaining bugfixes are applied to the existing 1.4.x branches. Which means we’re releasing the following versions today:

The LConf Export performance problem is addressed separately. Since we were required to change large parts of the code, it is released as beta version on top of the released 1.4.x branch, but as 1.5.0-beta (Changelog, Download). We did test and develop it using a rather huge ldap tree at a customer (25 min average export time down to 5 minutes), but it certainly requires your tests & feedback as well.
Merry Christmas from the LConf taskforce!
Achim, Alex, Michael & Markus

Weekly Snap: LConf, Iperf & Icinga 2 Training

weekly snap16 – 20 June brought much ado about monitoring – from an LConf release and training course on Icinga 2, to a guide to SMS alerts and a network performance tool.
Christian began the week by announcing a new webinar on Foreman for OpenNebula, as Silke introduced our new training course on Icinga 2.
Meanwhile, Michael released LConf 1.4.2 and LConf for Icinga Web 1.4.0 with compatibility updates for Icinga 2.
Continuing on the monitoring theme, Georg explained how to set up Icinga / Nagios SMS alerts on Linux systems, and Tobias showed how to assess network performance with Iperf.
Lastly, Lennart came to a Puppet course’s rescue in Paris as a substitute trainer.