Folien zum Vortrag Naemon & Thruk auf dem Berliner Monitoring Workshop 2014. Es wird Naemon als Alternative zu Nagios vorgestellt und Neugigkeiten für Thruk mit Business Prozessen und Dashboards.
7. Seite05/13/14 www.consol.de
Naemon - Core
– Query-Handler
– Schnittstelle zwischen dem Core und den Workern
– Schnittstelle für Spezialworker, zb.:
@wproc register name=foobar;plugin=check_snmp;plugin=check_bar0
oder
./naemon-qh.rb -c "wproc wpstats”
oder
./naemon-qh.rb
qh> core loadctl
jobs_max=7829;jobs_min=50;jobs_running=0;jobs_limit=7829;load=0.00;
backoff_limit=5.00;backoff_change=2348;rampup_limit=1.60;rampup_cha
nge=587;nproc_limit=7929;nofile_limit=4096;options=0;changes=0;
qh>
7
8. Seite05/13/14 www.consol.de
Naemon - Livestatus
– Livestatus wird als Standardschnittstelle angeboten
– Incl. Erweiterungen zum Original-livestatus:
• Sort: <column name> <asc/desc>
• Offset: <number of lines>
• OutputFormat: wrapped_json
8
9. Seite05/13/14 www.consol.de
Naemon - Shadownaemon
– Spiegelt Remote Instanz per Livestatus
– nahezu live
– Reduziert verwendete Bandbreite und Latenz
9
Core
LivestatusShadow
NaemonThruk
Livestatus
10. Seite05/13/14 www.consol.de
Naemon - Thruk
– CGIs wurden durch Thruk ersetzt
– Die Schnittstelle ist Livestatus
– Es werden die Standard(thruk)plugins mitgeliefert:
• Reports
• Business Process
• Config Tool
• Panorama Dashboard
• Mine Map
• …
– Form Based Login as Default aktiviert
10
11. Seite05/13/14 www.consol.de
Naemon - Addons
– Merlin
– Livestatus
– Mod-Gearman
– PNP (Patch verfügbar für npcdmod)
– Alles was mit Nagios 4 auch läuft
11
12. Seite05/13/14 www.consol.de
Naemon - Roadmap
– Dropdir support (conf.d)
– Dynamic thresholds
– Dynamic creation of objects
– Distributed und load balancing build-in
– Smart Agent
– Gruppierung von Services in "Kategorien"
12
22. Seite05/13/14 www.consol.de
Thruk - Business Process
– Benutzer definierte Funktionen sind möglich in ~/etc/thruk/bp/*.pm
# echofunction:
#
# This function just echoes the
# provided text sample and optionally
# reverses the text.
#
# Arguments:
# arg1: Text; text; text that should be echoed
# arg2: Reverse; checkbox; yes; no
# arg3: Uppercase; select; yes; no
sub echofunction {
my($c, $bp, $n, $args, $livedata) = @_;
my($text, $reverse, $upper) = @{$args};
$text = scalar reverse $text if $reverse eq 'yes';
$text = uc $text if $upper eq 'yes';
return(0, $text, $text, {});
}
22