SlideShare a Scribd company logo
1 of 23
Iapetos - ein Nagios / Naemon -
Exporter für Prometheus
Philip Griesbacher
Düsseldorf, 12.09.2017
Monitoring
Workshop
2017
Seite
Inhalt
• Ziel
• Vorstellung von
– Nagios
– Prometheus
• Realisierung
• Demo
• Fazit
12.09.2017 Philip Griesbacher - www.consol.de2
Seite
Ziel
• Nagios / Naemon in Prometheus integrieren
• Überwachung von Nagios / Naemon
• Monitoring-Administratoren die Möglichkeit zum Testen von Prometheus geben
12.09.2017 Philip Griesbacher - www.consol.de3
Seite
Nagios ≈ Naemon
12.09.2017 Philip Griesbacher - www.consol.de4
[1]
Seite
Realisierung – NEB Module
• C Schnittstelle im Nagios-Core
• Bekannteste Beispiele:
– MK-Livestatus
– ModGearman
12.09.2017 Philip Griesbacher - www.consol.de5
Seite
Prometheus
12.09.2017 Philip Griesbacher - www.consol.de6
[2]
Seite
Prometheus Check-Pendant
• Direkte Integration
– Offizielle Bibliotheken:
• Go
• Java
• Python
• Ruby
• Exporter ≈ Mittelsmänner
– Z.B. Nodeexporter
12.09.2017 Philip Griesbacher - www.consol.de7
Seite
Realisierung – Komponenten
12.09.2017 Philip Griesbacher - www.consol.de8
Seite
Realisierung – Go NEB Wrapper
• Warum Go?
• Alternativen:
– C
– C++
• → CGo Bibliothek
• NEB C Schnittstelle ↔ Go Interface
12.09.2017 Philip Griesbacher - www.consol.de9
Seite
Realisierung – Go NEB Wrapper
• Abbildung von Konstanten
• Aufrufen von C Methoden aus Go und umgekehrt
• Eigenes Callback-Handling
• Konvertieren von C void Pointer in Go Objekte
12.09.2017 Philip Griesbacher - www.consol.de10
Seite
Demo – Iapetos
12.09.2017 Philip Griesbacher - www.consol.de11
[3]
Seite
Fazit
• Bestehende Monitoring Umgebungen können nahtlos in Prometheus zu
integrieren, ohne sie in ihrer bisherigen Funktionsweise einzuschränken.
• Der Exporter wird nun offiziell von Prometheus unterstützt, indem er auf ihrer
Webseite Prometheus.io hinterlegt wurde.
• Unterstützte Cores:
– Nagios 3 / Icinga ohne Daemon-Mode
– Nagios 4
– Naemon
• Projekt: https://github.com/Griesbacher/Iapetos
12.09.2017 Philip Griesbacher - www.consol.de16
17Seite
Danke!
12.09.2017 Philip Griesbacher - www.consol.de
Seite
Quellen
• [1] basierend auf:
https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/integratio
n.html
• [2] basierend auf: https://prometheus.io/docs/introduction/overview/
• [3]: https://cdn-images-
1.medium.com/max/800/1*QrP3uWcGAZfNWFDCwZOdmQ.jpeg
12.09.2017 Philip Griesbacher - www.consol.de18
19Seite
Fragen?
12.09.2017 Philip Griesbacher - www.consol.de
20Seite Philip Griesbacher - www.consol.de
ConSol* Software GmbH
Franziskanerstraße 38
D-81669 München
Tel: +49-89-45841-100
Fax: +49-89-45841-111
info@consol.de
www.consol.de
12.09.2017
Seite
Realisierung - Abbildung von Konstanten
import "C"
const (
ProcessData = C.NEBCALLBACK_PROCESS_DATA
...
)
var callbackTypeMapping = map[int]string{
ProcessData: "ProcessData",
…
}
func CallbackTypeToString(callbackType int) string {…}
12.09.2017 Philip Griesbacher - www.consol.de21
Seite
Realisierung - Abbildung von Konstanten
switch neb.GetCoreType() {
case neb.CoreNagios3:
Active = C.SERVICE_CHECK_ACTIVE
Passive = C.SERVICE_CHECK_PASSIVE
...
case neb.CoreNaemon, neb.CoreNagios4:
Active = 0
Passive = 1
...
}
12.09.2017 Philip Griesbacher - www.consol.de22
Seite
Realisierung - Abbildung von Konstanten
• neb.CoreNaemon, neb.CoreNagios3, neb.CoreNagios4 ???
• go build -tags nagios3
• #cgo nagios3 CFLAGS: -DNAGIOS3 -I. -I${SRCDIR}/../libs
int nebmodule_init( int flags, char *args, nebmodule *handle ) {
//This is used to tell the Go code for which core its been compiled
#if defined(NAGIOS3)
CORE_TYPE = CORE_NAGIOS3;
…
12.09.2017 Philip Griesbacher - www.consol.de23
Seite
Realisierung - Aufruf von C Methoden aus Go
/*
#if defined(NAGIOS3)
void Log(int lvl, char* data) { write_to_all_logs(data, lvl); }
#elif defined(NAGIOS4)
void Log(int lvl, char* data) { write_to_all_logs(data, lvl); }
#elif defined(NAEMON)
void Log(int lvl, char* data) { nm_log(lvl, data); }
#endif
*/
import "C"
func log(lvl int64, data string) {
cs := C.CString(data)
defer C.free(unsafe.Pointer(cs))
C.Log(C.int(lvl), cs)
}
12.09.2017 Philip Griesbacher - www.consol.de24
Seite
Realisierung - Aufruf von Go Methoden aus C
//export GoNebModuleInit
func GoNebModuleInit(flags int, args *C.char) C.int {
...
}
int nebmodule_init( int flags, char *args, nebmodule *handle ) {
...
return(GoNebModuleInit(flags, args));
}
12.09.2017 Philip Griesbacher - www.consol.de25
Seite
Realisierung - Callback-Handling
• User soll keinen C Kontakt haben
• Laufzeitfehler abfangen
• Laufzeitmessung
• Laufzeitüberschreitung erkennen
12.09.2017 Philip Griesbacher - www.consol.de26
Seite
Realisierung - Konvertieren von C void Pointer in
Go Objekte
C void Pointer - 😓 → Go Objekte - 😀
12.09.2017 Philip Griesbacher - www.consol.de27

More Related Content

What's hot

FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...
FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...
FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...Verein FM Konferenz
 
FMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusFMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusVerein FM Konferenz
 
FMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen BauerFMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen BauerVerein FM Konferenz
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...Verein FM Konferenz
 
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comFMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comVerein FM Konferenz
 
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzFMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzVerein FM Konferenz
 
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 -  Tools für FileMaker Entwickler by Alexis GehrtFMK2017 -  Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 - Tools für FileMaker Entwickler by Alexis GehrtVerein FM Konferenz
 
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...Verein FM Konferenz
 
FMK2018- Datenmodelle/Normalisierung Heike Landschulz
FMK2018- Datenmodelle/Normalisierung Heike LandschulzFMK2018- Datenmodelle/Normalisierung Heike Landschulz
FMK2018- Datenmodelle/Normalisierung Heike LandschulzVerein FM Konferenz
 
FMK2018 Screencasts - Thomas Hirt LightningTalk
FMK2018 Screencasts - Thomas Hirt LightningTalkFMK2018 Screencasts - Thomas Hirt LightningTalk
FMK2018 Screencasts - Thomas Hirt LightningTalkVerein FM Konferenz
 
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinFMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinVerein FM Konferenz
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzVerein FM Konferenz
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...Verein FM Konferenz
 
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinFMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinVerein FM Konferenz
 
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...Verein FM Konferenz
 
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...Verein FM Konferenz
 
FMK2018- Audit Log Arnold Kegebein
FMK2018- Audit Log Arnold KegebeinFMK2018- Audit Log Arnold Kegebein
FMK2018- Audit Log Arnold KegebeinVerein FM Konferenz
 
FMK2018- Neues im MBS FileMaker Plugin Christian Schmitz
FMK2018- Neues im MBS FileMaker Plugin Christian SchmitzFMK2018- Neues im MBS FileMaker Plugin Christian Schmitz
FMK2018- Neues im MBS FileMaker Plugin Christian SchmitzVerein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinVerein FM Konferenz
 
Aktuelle "Baustellen" und Fragen - Goobi an der Stabi Hamburg
Aktuelle "Baustellen" und Fragen - Goobi an der Stabi HamburgAktuelle "Baustellen" und Fragen - Goobi an der Stabi Hamburg
Aktuelle "Baustellen" und Fragen - Goobi an der Stabi Hamburggoobi_org
 

What's hot (20)

FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...
FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...
FMK2018- Das neue Migrationstool/… per Hand oder geht das doch bequemer? Phil...
 
FMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger DarjusFMK2018-Migration und Synchronisation Holger Darjus
FMK2018-Migration und Synchronisation Holger Darjus
 
FMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen BauerFMK2018 Arbeiten mit Layouts by Swen Bauer
FMK2018 Arbeiten mit Layouts by Swen Bauer
 
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
 
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.comFMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
FMK2018-FileMaker und JSON/REST by Bernhard Schulz schubec.com
 
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian SchmitzFMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
FMK2018- FileMaker und Linux mit SSH zusammenführen Christian Schmitz
 
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 -  Tools für FileMaker Entwickler by Alexis GehrtFMK2017 -  Tools für FileMaker Entwickler by Alexis Gehrt
FMK2017 - Tools für FileMaker Entwickler by Alexis Gehrt
 
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
FMK2018 Mein erster FileMaker Server Was ist das? Was kann der Server? Brauch...
 
FMK2018- Datenmodelle/Normalisierung Heike Landschulz
FMK2018- Datenmodelle/Normalisierung Heike LandschulzFMK2018- Datenmodelle/Normalisierung Heike Landschulz
FMK2018- Datenmodelle/Normalisierung Heike Landschulz
 
FMK2018 Screencasts - Thomas Hirt LightningTalk
FMK2018 Screencasts - Thomas Hirt LightningTalkFMK2018 Screencasts - Thomas Hirt LightningTalk
FMK2018 Screencasts - Thomas Hirt LightningTalk
 
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold KegebeinFMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
FMK2017 - Zeit und Datum in FileMaker by Arnold Kegebein
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
 
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
 
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael ValentinFMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
FMK2017 - Was ist neu in FileMaker 16 by Michael Valentin
 
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...
FMK2018 Unbegrenzte Hierarchien in FileMaker Philosophie’, Grundkonstruktione...
 
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
FMK2019 PSoS - Perform Script on Server Wie einsetzen und wie entwickeln? by ...
 
FMK2018- Audit Log Arnold Kegebein
FMK2018- Audit Log Arnold KegebeinFMK2018- Audit Log Arnold Kegebein
FMK2018- Audit Log Arnold Kegebein
 
FMK2018- Neues im MBS FileMaker Plugin Christian Schmitz
FMK2018- Neues im MBS FileMaker Plugin Christian SchmitzFMK2018- Neues im MBS FileMaker Plugin Christian Schmitz
FMK2018- Neues im MBS FileMaker Plugin Christian Schmitz
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
 
Aktuelle "Baustellen" und Fragen - Goobi an der Stabi Hamburg
Aktuelle "Baustellen" und Fragen - Goobi an der Stabi HamburgAktuelle "Baustellen" und Fragen - Goobi an der Stabi Hamburg
Aktuelle "Baustellen" und Fragen - Goobi an der Stabi Hamburg
 

Similar to Monitoring Workshop 2017 - Philip Griesbacher - Iapetos

EduGraph + CMS Extension Studyfinder@JSON-LD
EduGraph + CMS Extension Studyfinder@JSON-LDEduGraph + CMS Extension Studyfinder@JSON-LD
EduGraph + CMS Extension Studyfinder@JSON-LDVera G. Meister
 
SplunkLive! Frankfurt 2018 - Customer Presentation: Porsche
SplunkLive! Frankfurt 2018 - Customer Presentation: PorscheSplunkLive! Frankfurt 2018 - Customer Presentation: Porsche
SplunkLive! Frankfurt 2018 - Customer Presentation: PorscheSplunk
 
Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)
Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)
Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)simmerl121
 
4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017
4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017 4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017
4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017 SQL Projekt AG
 
FMK2017 - iBeacons und FileMaker by Alexis Gehrt
FMK2017 -  iBeacons und FileMaker by Alexis GehrtFMK2017 -  iBeacons und FileMaker by Alexis Gehrt
FMK2017 - iBeacons und FileMaker by Alexis GehrtVerein FM Konferenz
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudAndreas Günzel
 
Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführungdie.agilen GmbH
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenGunther Pippèrr
 
Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]
Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]
Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]Marcel Schöne
 
OSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd Strößenreuther
OSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd StrößenreutherOSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd Strößenreuther
OSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd StrößenreutherNETWAYS
 
OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...
OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...
OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...NETWAYS
 

Similar to Monitoring Workshop 2017 - Philip Griesbacher - Iapetos (14)

EduGraph + CMS Extension Studyfinder@JSON-LD
EduGraph + CMS Extension Studyfinder@JSON-LDEduGraph + CMS Extension Studyfinder@JSON-LD
EduGraph + CMS Extension Studyfinder@JSON-LD
 
SplunkLive! Frankfurt 2018 - Customer Presentation: Porsche
SplunkLive! Frankfurt 2018 - Customer Presentation: PorscheSplunkLive! Frankfurt 2018 - Customer Presentation: Porsche
SplunkLive! Frankfurt 2018 - Customer Presentation: Porsche
 
Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)
Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)
Sakuli - Skalierungsmöglichkeiten (Windows / OpenShift / Kubernetes)
 
4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017
4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017 4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017
4) Innovationen hinterm Tellerrand - TRANSCONNECT-Tag 2017
 
FMK2017 - iBeacons und FileMaker by Alexis Gehrt
FMK2017 -  iBeacons und FileMaker by Alexis GehrtFMK2017 -  iBeacons und FileMaker by Alexis Gehrt
FMK2017 - iBeacons und FileMaker by Alexis Gehrt
 
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloudGünzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
Günzel/Griesbaum -OpenShift und GitLab: Continuous delivery in der cloud
 
Domain-driven design - eine Einführung
Domain-driven design - eine EinführungDomain-driven design - eine Einführung
Domain-driven design - eine Einführung
 
[DE] ECM 2.0 - die Zukunft dokumentbezogener Technologien | Ulrich Kampffmeye...
[DE] ECM 2.0 - die Zukunft dokumentbezogener Technologien | Ulrich Kampffmeye...[DE] ECM 2.0 - die Zukunft dokumentbezogener Technologien | Ulrich Kampffmeye...
[DE] ECM 2.0 - die Zukunft dokumentbezogener Technologien | Ulrich Kampffmeye...
 
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysierenDBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
DBSAT – Die Oracle DATENBANK bzgl. PII Daten analysieren
 
Go to the Cloud
Go to the CloudGo to the Cloud
Go to the Cloud
 
[DE] Cloud-Strategien für Komponenten des Information Management | Dr. Joachi...
[DE] Cloud-Strategien für Komponenten des Information Management | Dr. Joachi...[DE] Cloud-Strategien für Komponenten des Information Management | Dr. Joachi...
[DE] Cloud-Strategien für Komponenten des Information Management | Dr. Joachi...
 
Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]
Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]
Medienkonvergenz von Zeitschrift und mobilem Internet [Präsentation]
 
OSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd Strößenreuther
OSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd StrößenreutherOSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd Strößenreuther
OSMC 2010 | Neues bei den Nagios Business Process AddOns by Bernd Strößenreuther
 
OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...
OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...
OSMC 2017 | Hochautomatisiertes Warenlogistik - Monitoring bei Europas größte...
 

Monitoring Workshop 2017 - Philip Griesbacher - Iapetos

  • 1. Iapetos - ein Nagios / Naemon - Exporter für Prometheus Philip Griesbacher Düsseldorf, 12.09.2017 Monitoring Workshop 2017
  • 2. Seite Inhalt • Ziel • Vorstellung von – Nagios – Prometheus • Realisierung • Demo • Fazit 12.09.2017 Philip Griesbacher - www.consol.de2
  • 3. Seite Ziel • Nagios / Naemon in Prometheus integrieren • Überwachung von Nagios / Naemon • Monitoring-Administratoren die Möglichkeit zum Testen von Prometheus geben 12.09.2017 Philip Griesbacher - www.consol.de3
  • 4. Seite Nagios ≈ Naemon 12.09.2017 Philip Griesbacher - www.consol.de4 [1]
  • 5. Seite Realisierung – NEB Module • C Schnittstelle im Nagios-Core • Bekannteste Beispiele: – MK-Livestatus – ModGearman 12.09.2017 Philip Griesbacher - www.consol.de5
  • 7. Seite Prometheus Check-Pendant • Direkte Integration – Offizielle Bibliotheken: • Go • Java • Python • Ruby • Exporter ≈ Mittelsmänner – Z.B. Nodeexporter 12.09.2017 Philip Griesbacher - www.consol.de7
  • 8. Seite Realisierung – Komponenten 12.09.2017 Philip Griesbacher - www.consol.de8
  • 9. Seite Realisierung – Go NEB Wrapper • Warum Go? • Alternativen: – C – C++ • → CGo Bibliothek • NEB C Schnittstelle ↔ Go Interface 12.09.2017 Philip Griesbacher - www.consol.de9
  • 10. Seite Realisierung – Go NEB Wrapper • Abbildung von Konstanten • Aufrufen von C Methoden aus Go und umgekehrt • Eigenes Callback-Handling • Konvertieren von C void Pointer in Go Objekte 12.09.2017 Philip Griesbacher - www.consol.de10
  • 11. Seite Demo – Iapetos 12.09.2017 Philip Griesbacher - www.consol.de11 [3]
  • 12. Seite Fazit • Bestehende Monitoring Umgebungen können nahtlos in Prometheus zu integrieren, ohne sie in ihrer bisherigen Funktionsweise einzuschränken. • Der Exporter wird nun offiziell von Prometheus unterstützt, indem er auf ihrer Webseite Prometheus.io hinterlegt wurde. • Unterstützte Cores: – Nagios 3 / Icinga ohne Daemon-Mode – Nagios 4 – Naemon • Projekt: https://github.com/Griesbacher/Iapetos 12.09.2017 Philip Griesbacher - www.consol.de16
  • 14. Seite Quellen • [1] basierend auf: https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/integratio n.html • [2] basierend auf: https://prometheus.io/docs/introduction/overview/ • [3]: https://cdn-images- 1.medium.com/max/800/1*QrP3uWcGAZfNWFDCwZOdmQ.jpeg 12.09.2017 Philip Griesbacher - www.consol.de18
  • 16. 20Seite Philip Griesbacher - www.consol.de ConSol* Software GmbH Franziskanerstraße 38 D-81669 München Tel: +49-89-45841-100 Fax: +49-89-45841-111 info@consol.de www.consol.de 12.09.2017
  • 17. Seite Realisierung - Abbildung von Konstanten import "C" const ( ProcessData = C.NEBCALLBACK_PROCESS_DATA ... ) var callbackTypeMapping = map[int]string{ ProcessData: "ProcessData", … } func CallbackTypeToString(callbackType int) string {…} 12.09.2017 Philip Griesbacher - www.consol.de21
  • 18. Seite Realisierung - Abbildung von Konstanten switch neb.GetCoreType() { case neb.CoreNagios3: Active = C.SERVICE_CHECK_ACTIVE Passive = C.SERVICE_CHECK_PASSIVE ... case neb.CoreNaemon, neb.CoreNagios4: Active = 0 Passive = 1 ... } 12.09.2017 Philip Griesbacher - www.consol.de22
  • 19. Seite Realisierung - Abbildung von Konstanten • neb.CoreNaemon, neb.CoreNagios3, neb.CoreNagios4 ??? • go build -tags nagios3 • #cgo nagios3 CFLAGS: -DNAGIOS3 -I. -I${SRCDIR}/../libs int nebmodule_init( int flags, char *args, nebmodule *handle ) { //This is used to tell the Go code for which core its been compiled #if defined(NAGIOS3) CORE_TYPE = CORE_NAGIOS3; … 12.09.2017 Philip Griesbacher - www.consol.de23
  • 20. Seite Realisierung - Aufruf von C Methoden aus Go /* #if defined(NAGIOS3) void Log(int lvl, char* data) { write_to_all_logs(data, lvl); } #elif defined(NAGIOS4) void Log(int lvl, char* data) { write_to_all_logs(data, lvl); } #elif defined(NAEMON) void Log(int lvl, char* data) { nm_log(lvl, data); } #endif */ import "C" func log(lvl int64, data string) { cs := C.CString(data) defer C.free(unsafe.Pointer(cs)) C.Log(C.int(lvl), cs) } 12.09.2017 Philip Griesbacher - www.consol.de24
  • 21. Seite Realisierung - Aufruf von Go Methoden aus C //export GoNebModuleInit func GoNebModuleInit(flags int, args *C.char) C.int { ... } int nebmodule_init( int flags, char *args, nebmodule *handle ) { ... return(GoNebModuleInit(flags, args)); } 12.09.2017 Philip Griesbacher - www.consol.de25
  • 22. Seite Realisierung - Callback-Handling • User soll keinen C Kontakt haben • Laufzeitfehler abfangen • Laufzeitmessung • Laufzeitüberschreitung erkennen 12.09.2017 Philip Griesbacher - www.consol.de26
  • 23. Seite Realisierung - Konvertieren von C void Pointer in Go Objekte C void Pointer - 😓 → Go Objekte - 😀 12.09.2017 Philip Griesbacher - www.consol.de27