Auch wenn in der letzten Zeit sehr viel Bewegung in die Monitoring-Szene gekommen ist (#monitoringsucks etc.), werden die Platzhirsche Nagios/Icinga und ihre Standards auf absehbare Zeit nicht verschwinden. Das Nagios-Plugin-API stellt eine sehr weit verbreitete Schnittstelle zur Anbindung einzelner Checks an Monitoring-Systeme dar. Obwohl das API in den Grundzügen sehr einfach ist, ist der Programmieraufwand für vollständig konforme Plugins erstaunlich hoch.
Die nagiosplugin-Bibliothek nimmt dem Entwickler viele Details ab, so dass er sich auf den Inhalt seiner Checks konzentrieren kann. Der Vortrag führt in das Schreiben von Nagios-kompatiblen Plugins ein, zeigt den typischen Aufbau von Nagios-Plugins und das Grundprinzip eigener Plugins. Die Konfiguration und der Betrieb von Monitoring-Systemen im Großen sollen nicht thematisiert werden.
Video: http://pyvideo.org/video/1460/nagiosplugin-eine-python-bibliothek-fur-monitor
Konferenzseite: https://2012.de.pycon.org/programm/schedule/sessions/45/
Projekt-Homepage: https://projects.gocept.com/projects/nagiosplugin/wiki
Nagios Conference 2007 | Monitoring von Logfiles mit check_logfiles by Gerhar...NETWAYS
Viele Fehlerzustände lassen sich nicht durch Kommandos abfragen, sondern werden von den entsprechenden Betriebssystemen/Treibern/Applikationen in Logfiles geschrieben. Solche "Hilferufe" aufzuspüren ist die Aufgabe des Plugins check_logfiles. Auch nach dem Rotieren und Komprimieren von Logfiles entstehen keine Lücken. Check_logfiles lässt keine Zeile ungeprüft. In der Praxis wird das Plugin eingesetzt zur Überwachung von Betriebssystemmeldungen, MySQL, Oracle, SAN-Devices, Hardware-Health, Snort, Cisco-Routern, eben allem, was Meldungen in Logfiles schreibt. --> Zur ConSol* Newsmeldung
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...NETWAYS
Agordamon ist ein Perlmodul zur scriptgesteuerten Konfiguration von Nagios und Icinga. Es erleichtert dem Admin seine Aufgaben, indem es reproduzierbar und somit regelbasiert Konfigurationen auf Basis von verschiedenen Eingangsformaten generieren kann.
Diese Eingangsformate können sowohl Auszüge von Inventarlisten und CMDBs sein als auch Ergebnisslisten des Netzwerkanalysetools nmap. Hauptanwendungsbereich sind große Netzwerke, in denen unbemerkt vom Monitoringteam neue Hardware in Betrieb genommen und überwacht werden können muss. Der Vortrag gibt eine Einführung in Agordamon und erläutert seine Verwendung anhand praktischer Beispiele.
This talk describes how somebody can write his or her own PostgreSQL custom aggregation functions.
Hans also shows, how to run windowing functions and analytics to handle data in PostgreSQL.
Nagios Conference 2007 | Monitoring von Logfiles mit check_logfiles by Gerhar...NETWAYS
Viele Fehlerzustände lassen sich nicht durch Kommandos abfragen, sondern werden von den entsprechenden Betriebssystemen/Treibern/Applikationen in Logfiles geschrieben. Solche "Hilferufe" aufzuspüren ist die Aufgabe des Plugins check_logfiles. Auch nach dem Rotieren und Komprimieren von Logfiles entstehen keine Lücken. Check_logfiles lässt keine Zeile ungeprüft. In der Praxis wird das Plugin eingesetzt zur Überwachung von Betriebssystemmeldungen, MySQL, Oracle, SAN-Devices, Hardware-Health, Snort, Cisco-Routern, eben allem, was Meldungen in Logfiles schreibt. --> Zur ConSol* Newsmeldung
OSMC 2012 | Automatische Konfiguration von Nagios/Icinga mit Agordamon by Chr...NETWAYS
Agordamon ist ein Perlmodul zur scriptgesteuerten Konfiguration von Nagios und Icinga. Es erleichtert dem Admin seine Aufgaben, indem es reproduzierbar und somit regelbasiert Konfigurationen auf Basis von verschiedenen Eingangsformaten generieren kann.
Diese Eingangsformate können sowohl Auszüge von Inventarlisten und CMDBs sein als auch Ergebnisslisten des Netzwerkanalysetools nmap. Hauptanwendungsbereich sind große Netzwerke, in denen unbemerkt vom Monitoringteam neue Hardware in Betrieb genommen und überwacht werden können muss. Der Vortrag gibt eine Einführung in Agordamon und erläutert seine Verwendung anhand praktischer Beispiele.
This talk describes how somebody can write his or her own PostgreSQL custom aggregation functions.
Hans also shows, how to run windowing functions and analytics to handle data in PostgreSQL.
Tipps für schlanke Frauen Beine Ernährung bei CelluliteDaniel Sebbin
Das Thema Cellulite ist ein höchst unerfreuliches und beschäftigt den Großteil aller Frauen. Schon früh kann dieses Thema auch bei Dir in den Vordergrund rücken. Cellulite macht keinen Unterschied, was das Alter angeht. Es gibt viele Frauen, die mit Anfang 30 schon über die sogenannte Orangenhaut klagen. Und je höher das Alter, desto mehr Frauen leiden unter dieser Hauterscheinung. Bis zu 80 oder 90 % aller Frauen tragen im Alter die unliebsame Orangenhaut mit sich herum. Wir zeigen dir was Du dagegen tun kannst.
Psychologies medewerkers van de maand: Annemieke Dubois & Genevieve HeintzBerkeley International
Annemieke Dubois en
Geneviève Heintz geven
als professionele matchmakers
hun visie op de huidige
datingmarkt (p. 76):
‘Swofties, oftewel Single
Women over Fiftie, hebben
een leven lang gemoederd en willen verloren tijd
inhalen. Ze willen hun nieuwe ervaringen graag
delen met een nieuwe partner - een leeftijdsgenoot.
Maar die heeft heel andere verwachtingen
en blijft verlangen naar dat zorgende - hij heeft
tenslotte nooit anders gekend. Probeer die twee
maar eens met elkaar te matchen ... Het gevolg is
een datingmarkt uit balans, al wil dat gelukkig
helemaal niet zeggen dat alle boeiende mannen
verdwenen zouden zijn!’
The document discusses the objectives and activities of the Task Force on Land and Soil. It aims to analyze the current scientific communities dealing with land and soil issues and clarify the debate around the type of platform or partnership needed. The Task Force has conducted analyses of key actors and publications related to land and soil degradation research to understand current approaches. Preliminary findings show a need to strengthen links between soil-focused basic research and land-focused applied research addressing socioeconomic issues.
Erikson’s stages of psychosocial developmenthtenney37
The document outlines Erik Erikson's eight stages of psychosocial development, from infancy to late adulthood. Each stage presents an opportunity for individuals to develop new skills and overcome challenges that shape their identity and relationships. The stages include trust vs. mistrust in infancy, autonomy vs. shame and doubt in early childhood, initiative vs. guilt in preschool years, industry vs. inferiority in school-age children, identity vs. role confusion in adolescence, intimacy vs. isolation in early adulthood, generativity vs. stagnation in middle adulthood, and integrity vs. despair in late adulthood. Successful completion of each stage leads to positive outcomes, while failure can result in negative consequences.
In PostgreSQL kann man sich mit "explain" ansehen, welchen Execution Plan PostgreSQL für eine Query verwendet. Das hilft beim Suchen von Performance Problemen und hilft, den Durchsatz der Database zu steigern.
Mit Java 8 haben endlich Lambdas in den Sprachumfang von Java Einzug gehalten. Mittels Lambdas lassen sich viele Probleme kurz und prägnant ausdrücken. Vorliegende Auskopplung aus Handouts zur Vorlesung Programmieren I führt Lambdas und Streams ein und erläutert den Einsatz an vielen kleineren Beispielen.
Die Programmiersprache C++ gehört immer noch zu den wichtigsten Programmiersprachen überhaupt. Gerade im Embedded Bereich vollzieht sich langsam die Abkehr von C zu C++ und ist dort alternativlos. Es hatte jedoch jahrelang den Anschein, als würde diese Sprache seit Jahren nicht weiterentwickelt und von den Features und Ausdrucksmöglichkeiten hinter neueren Sprachen zurückzufallen. In diesem Vortrag zeige ich an Codebeispielen, welche Revolution tatsächlich seit C++11 stattgefunden hat und dass die Sprache keinesfalls mehr mit der zu vergleichen ist, die man vielleicht vor Jahren kennen (und vielleicht hassen) gelernt hat. Die Umgestaltung der Sprache ist dabei keineswegs abgeschlossen sondern zeigt weitere, vielversprechende Konzepte am Horizont.
Funktionale Programmierung und mehr mit Scalathoherr
Anhand von Beispielen werden einige Konzepte der funktionalen Programmierung im Allgemeinen und die objekt-funktionale Sprache Scala im Besonderen vorgestellt.
Vortrag von 42ways im Rahmen der IT-Weiterbildungsveranstaltungen bei der SwissLife AG, Niederlassung für Deutschland, München.
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin GrauelNETWAYS
Logdatensammlung und -analyse sind aus der heutigen IT-Welt nicht mehr wegzudenken. syslog-ng ist in vielen Bereichen zur sicheren und zuverlässigen Sammlung bzw. Weiterleitung von Logdaten im Einsatz. Darüber hinaus bietet syslog-ng mittels patterndb eine effiziente Möglichkeit des Log-Preprocessings.
Vortragsschwerpunkte:
syslog-"Standards" in syslog-ng
Log-Preprocessing: On-the-fly Log-Klassifizierung und -Tagging mit patterndb
Quo vadis syslog-ng - Aktuelle Entwicklung und Ausblick
Oracle SQL*Plus
Übersicht über das Werkzeug für die Oracle Datenbank
Arbeiten mit SQL*Plus
Quickconnect mit SQL*Plus 10g
Die SQL*Plus-Editier-Befehle
Erweiterte Funktionalität von SQL*Plus
It is obvious that for bulk data processing performance is the key factor. It often means balancing well structured, maintainable, reusable and high-performance code.
Even though there are more features and optimizations that support bulk processing with each release of PL/SQL, the "Pure SQL" approach often leads to better performance.
Best practices, tips and tricks. How do I develop a complex SQL? How can Subquery Factoring help to increase readability? How does this help to test complex SQLs? What is a Row Generator? How do I change the cardinality of the original data set?
Leichtgewichtige Architekturen mit Spring, JPA, Maven und GroovyThorsten Kamann
Gute Software sollte sich an der entsprechenden Fachdomäne orientieren und nicht an der zugrundeliegenden Technologie. Um dies zu erreichen, wird allerdings eine Basis benötigt, die technisch ausgereift ist ohne Einschränkungen für die Entwicklung. Eine solche Basis kann mit dem Springframework geschaffen werden. Die Kombination von Spring, Annotations, Java Persistence (JPA) und Unit-Testing erlaubt eine flexible und modulare Architektur und könnte eine mögliche technische Basis für ein solches Softwaresystem sein.
Dieser Vortrag stellt einen Lösungsansatz anhand eines einfachen Beispiels vor. Die Aufbereitung der Inhalte orientiert sich dabei an einem typischen test-zentrierten Entwicklungsprozess. Folgende Themen werden angesprochen:
* Einleitung Spring und JPA, Maven, Groovy
* Projektstruktur
* Entwicklung der API (der Schnittstellen)
* Test-getriebene Entwicklung der Implementierung
* Spring-unterstützte Integrationstests
Ausblick:
* Spring 2.5 - mehr Annotations; Verwaltung von Entities mit Spring
* Webschicht - Anbindung einer Webanwendung mit Java Server Faces (JSF)
* Spring-Webservices - Contract-First Webservices mit Spring-WS 1.0
Tipps für schlanke Frauen Beine Ernährung bei CelluliteDaniel Sebbin
Das Thema Cellulite ist ein höchst unerfreuliches und beschäftigt den Großteil aller Frauen. Schon früh kann dieses Thema auch bei Dir in den Vordergrund rücken. Cellulite macht keinen Unterschied, was das Alter angeht. Es gibt viele Frauen, die mit Anfang 30 schon über die sogenannte Orangenhaut klagen. Und je höher das Alter, desto mehr Frauen leiden unter dieser Hauterscheinung. Bis zu 80 oder 90 % aller Frauen tragen im Alter die unliebsame Orangenhaut mit sich herum. Wir zeigen dir was Du dagegen tun kannst.
Psychologies medewerkers van de maand: Annemieke Dubois & Genevieve HeintzBerkeley International
Annemieke Dubois en
Geneviève Heintz geven
als professionele matchmakers
hun visie op de huidige
datingmarkt (p. 76):
‘Swofties, oftewel Single
Women over Fiftie, hebben
een leven lang gemoederd en willen verloren tijd
inhalen. Ze willen hun nieuwe ervaringen graag
delen met een nieuwe partner - een leeftijdsgenoot.
Maar die heeft heel andere verwachtingen
en blijft verlangen naar dat zorgende - hij heeft
tenslotte nooit anders gekend. Probeer die twee
maar eens met elkaar te matchen ... Het gevolg is
een datingmarkt uit balans, al wil dat gelukkig
helemaal niet zeggen dat alle boeiende mannen
verdwenen zouden zijn!’
The document discusses the objectives and activities of the Task Force on Land and Soil. It aims to analyze the current scientific communities dealing with land and soil issues and clarify the debate around the type of platform or partnership needed. The Task Force has conducted analyses of key actors and publications related to land and soil degradation research to understand current approaches. Preliminary findings show a need to strengthen links between soil-focused basic research and land-focused applied research addressing socioeconomic issues.
Erikson’s stages of psychosocial developmenthtenney37
The document outlines Erik Erikson's eight stages of psychosocial development, from infancy to late adulthood. Each stage presents an opportunity for individuals to develop new skills and overcome challenges that shape their identity and relationships. The stages include trust vs. mistrust in infancy, autonomy vs. shame and doubt in early childhood, initiative vs. guilt in preschool years, industry vs. inferiority in school-age children, identity vs. role confusion in adolescence, intimacy vs. isolation in early adulthood, generativity vs. stagnation in middle adulthood, and integrity vs. despair in late adulthood. Successful completion of each stage leads to positive outcomes, while failure can result in negative consequences.
In PostgreSQL kann man sich mit "explain" ansehen, welchen Execution Plan PostgreSQL für eine Query verwendet. Das hilft beim Suchen von Performance Problemen und hilft, den Durchsatz der Database zu steigern.
Mit Java 8 haben endlich Lambdas in den Sprachumfang von Java Einzug gehalten. Mittels Lambdas lassen sich viele Probleme kurz und prägnant ausdrücken. Vorliegende Auskopplung aus Handouts zur Vorlesung Programmieren I führt Lambdas und Streams ein und erläutert den Einsatz an vielen kleineren Beispielen.
Die Programmiersprache C++ gehört immer noch zu den wichtigsten Programmiersprachen überhaupt. Gerade im Embedded Bereich vollzieht sich langsam die Abkehr von C zu C++ und ist dort alternativlos. Es hatte jedoch jahrelang den Anschein, als würde diese Sprache seit Jahren nicht weiterentwickelt und von den Features und Ausdrucksmöglichkeiten hinter neueren Sprachen zurückzufallen. In diesem Vortrag zeige ich an Codebeispielen, welche Revolution tatsächlich seit C++11 stattgefunden hat und dass die Sprache keinesfalls mehr mit der zu vergleichen ist, die man vielleicht vor Jahren kennen (und vielleicht hassen) gelernt hat. Die Umgestaltung der Sprache ist dabei keineswegs abgeschlossen sondern zeigt weitere, vielversprechende Konzepte am Horizont.
Funktionale Programmierung und mehr mit Scalathoherr
Anhand von Beispielen werden einige Konzepte der funktionalen Programmierung im Allgemeinen und die objekt-funktionale Sprache Scala im Besonderen vorgestellt.
Vortrag von 42ways im Rahmen der IT-Weiterbildungsveranstaltungen bei der SwissLife AG, Niederlassung für Deutschland, München.
OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin GrauelNETWAYS
Logdatensammlung und -analyse sind aus der heutigen IT-Welt nicht mehr wegzudenken. syslog-ng ist in vielen Bereichen zur sicheren und zuverlässigen Sammlung bzw. Weiterleitung von Logdaten im Einsatz. Darüber hinaus bietet syslog-ng mittels patterndb eine effiziente Möglichkeit des Log-Preprocessings.
Vortragsschwerpunkte:
syslog-"Standards" in syslog-ng
Log-Preprocessing: On-the-fly Log-Klassifizierung und -Tagging mit patterndb
Quo vadis syslog-ng - Aktuelle Entwicklung und Ausblick
Oracle SQL*Plus
Übersicht über das Werkzeug für die Oracle Datenbank
Arbeiten mit SQL*Plus
Quickconnect mit SQL*Plus 10g
Die SQL*Plus-Editier-Befehle
Erweiterte Funktionalität von SQL*Plus
It is obvious that for bulk data processing performance is the key factor. It often means balancing well structured, maintainable, reusable and high-performance code.
Even though there are more features and optimizations that support bulk processing with each release of PL/SQL, the "Pure SQL" approach often leads to better performance.
Best practices, tips and tricks. How do I develop a complex SQL? How can Subquery Factoring help to increase readability? How does this help to test complex SQLs? What is a Row Generator? How do I change the cardinality of the original data set?
Leichtgewichtige Architekturen mit Spring, JPA, Maven und GroovyThorsten Kamann
Gute Software sollte sich an der entsprechenden Fachdomäne orientieren und nicht an der zugrundeliegenden Technologie. Um dies zu erreichen, wird allerdings eine Basis benötigt, die technisch ausgereift ist ohne Einschränkungen für die Entwicklung. Eine solche Basis kann mit dem Springframework geschaffen werden. Die Kombination von Spring, Annotations, Java Persistence (JPA) und Unit-Testing erlaubt eine flexible und modulare Architektur und könnte eine mögliche technische Basis für ein solches Softwaresystem sein.
Dieser Vortrag stellt einen Lösungsansatz anhand eines einfachen Beispiels vor. Die Aufbereitung der Inhalte orientiert sich dabei an einem typischen test-zentrierten Entwicklungsprozess. Folgende Themen werden angesprochen:
* Einleitung Spring und JPA, Maven, Groovy
* Projektstruktur
* Entwicklung der API (der Schnittstellen)
* Test-getriebene Entwicklung der Implementierung
* Spring-unterstützte Integrationstests
Ausblick:
* Spring 2.5 - mehr Annotations; Verwaltung von Entities mit Spring
* Webschicht - Anbindung einer Webanwendung mit Java Server Faces (JSF)
* Spring-Webservices - Contract-First Webservices mit Spring-WS 1.0
Performance Tuning muss in PostgreSQL nicht schwer sein. Oft reichen einige einfache Veränderung, um die Datenbank massiv zu beschleunigen.
VIele Performance Probleme sind einfach zu lösen. Diese Präsentation zeigt die gängigsten Methoden, um einfache Probleme schnell und effizient zu beseitigen
www.opitz-consulting.com
Nicht immer stehen einem DBA GUI-basierte (und oftmals teure) Tools zur Verfügung, um ein Performance-Problem in der Datenbank zu analysieren. Mit den vorhandenen "Bordmitteln" der Datenbank und einigen, kostenfreien Tools kann man jedoch auch eine gute Diagnose stellen. Dieser Vortrag widmet sich einer Auswahl dieser Werkzeuge und legt einen Schwerpunkt auf die Möglichkeiten, die einem ohne Diagnostics Pack oder in der Standard Edition zur Verfügung stehen. Außerdem gibt es einen Ausblick auf frei verfügbare, externe Tools.
Betrachtet werden unter anderem:
- amon: Ein "top" für die Datenbank
- Statspack in Kombination mit SQL Developer
- Verarbeiten von SQL Traces mit OraSRP
- SQLT und sqlhc, um SQL zu "durchleuchten"
Diesen Vortrag präsentierte unser Datenbankexperte Uwe Küchler bei der DOAG Konferenz 2017.
5. BEIPACKZETTEL
DIESER VORTRAG ENTHÄLT
Einführung in n g o p u i
aislgn
viele Code-Beispiele
Live-Demos
DIESER VORTRAG ENTHÄLT NICHT
die gesamte n g o p u i -API
aislgn
Konfiguration von Nagios/Icinga-Servern
6. INTRO
Plugins sind primäre Methode der
Informationsgewinnung bei Nagios/Icinga
Input: Kommandozeile
Output: Text auf stdout, Exit-Code
Plugin API:
http://nagios.sourceforge.net/docs/3_0/pluginapi.html
Plugin Development Guidelines:
http://nagiosplug.sourceforge.net/developer-
guidelines.html
7. PLUGIN SCHREIBEN? IST DOCH EASY!
#/i/h
!bns
#311ds pui cdz
13 ik lgn oe
#()19,0420,01b wrzu
C 9920-0621 y AEGY
#i yudntudrtn ti g aa
f o o' nesad hs o wy
eh "AEGYskw ds pui i rnig!"
co wrzu' el ik lgn s unn!!
d /r/p0/aa|ge '/ |ak' pit$ } |
f svap1dt rp ^' w { rn 3 '
ge '15... | {
rp [-]..' |
eh "M!!**ds i srwd!" ei 2
co OG! * ik s cee!!; xt
}
eh "iki o"
co ds s k
ei 0
xt
#XXsol nvrrahti
X hud ee ec hs
8. NAGIOS PLUGIN API
timeout standard options output spec
exit codes range syntax
performance data multi-threshold status line
long output
11. NAGIOSPLUGIN IST...
Python-Klassenbibliothek
Open Source (ZPL-Lizenz)
entstanden aus gocept -Eigenbedarf
seit 2010 kontinuierlich weiterentwickelt
Python 3-kompatibel
Release-Stand:
alte 0.4.x API wird nicht mehr weiterentwickelt
Inhalt des Vortrags neue 1.0 API
16. RESOURCE
Domain Model
Subklasse von R s u c
eore
p o e )erzeugt Metriken
rb(
casRsuc:
ls eore
@rpry
poet
dfnm(ef:
e aesl)
rtr sl._ls_._ae_
eun ef_cas__nm_
dfpoesl)
e rb(ef:
rtr [
eun ]
17. BEISPIEL: CHECK_WORLD
ipr ngopui
mot aislgn
casWrdngopui.eore:
ls ol(aislgnRsuc)
dfpoesl)
e rb(ef:
rtr [
eun
ngopui.erc'ol' Tu,cnet'ul)
aislgnMti(wrd, re otx=nl'
]
dfmi(:
e an)
cek=ngopui.hc(ol()
hc aislgnCekWrd)
cekmi(
hc.an)
i _nm_ = '_an_:
f _ae_ = _mi_'
mi(
an)
18. METRIC
Strukturiertes Value-Objekt für einzelnen Datenpunkt
casMti:
ls erc
df_ii_(ef nm,vle umNn,mnNn,mxNn,
e _nt_sl, ae au, o=oe i=oe a=oe
cnetNn)
otx=oe:
..
.
19. BEISPIEL: CHECK_LOAD
casLa(aislgnRsuc)
ls odngopui.eore:
df_ii_(ef prp=as)
e _nt_sl, ecuFle:
sl.ecu=prp
efprp ecu
dfcu(ef:
e pssl)
rtr itsbrcs.hc_upt[nrc])
eun n(upoescekotu('po')
dfpoesl)
e rb(ef:
wt oe(/rclaag)a laag
ih pn'po/odv' s odv:
la =laagraln(.pi([:]
od odv.edie)slt)03
cu =sl.ps)i sl.ecues 1
ps efcu( f efprp le
la =[la()/cu frli la]
od fotl ps o n od
fri pro i eueae[,5 1]:
o , eid n nmrt(1 , 5)
yedngopui.erc'odd %pro,la[]
il aislgnMti(la%' eid odi,
mn0 cnet'eal'
i=, otx=dfut)
21. CONTEXT
erzeugt R s l aus M t i und R s u c
eut erc eore
erzeugt Performance Data
erzeugt Klartext-Beschreibung
casCnet
ls otx:
df_ii_(ef nm,..:
e _nt_sl, ae .)
..
.
dfeaut(ef mti,rsuc)
e vlaesl, erc eore:
rtr Rsl(.)
eun eut..
dfpromnesl,mti,rsuc)
e efrac(ef erc eore:
rtr Promne..
eun efrac(.)
dfdsrb(ef mti)
e eciesl, erc:
rtr '.'
eun ..
22. SCALARCONTEXT
Häufig gebrauchter Spezialfall
warning und critical Ranges
casSaaCnetCnet:
ls clrotx(otx)
df_ii_(ef nm,wrig ciia,..:
e _nt_sl, ae ann, rtcl .)
..
.
Verwendung direkt in Check-Initialisierung:
cek=ngopui.hc(
hc aislgnCek
ngopui.clrotx(la' ag.ann,
aislgnSaaCnet'od, rswrig
ag.rtcl,..
rsciia) .)
23. ZUORDNUNG METRIC/CONTEXT
Jede M t i benennt den zuständigen C n e t
erc otx
#La.rb(
odpoe)
frpro,ii zp[,5 1] ietoscut):
o eid n i(1 , 5, trol.on()
yedngopui.erc'odd %pro,la[]
il aislgnMti(la%' eid odi,
mn0 cnet'od)
i=, otx=la'
#mi(
an)
cek=ngopui.hc(
hc aislgnCek
La(,
od)
ngopui.clrotx(la' ag.ann,
aislgnSaaCnet'od, rswrig
ag.rtcl,..
rsciia) .)
Standard-Contexts:
n l - tut gar nichts
ul
d f u t- gibt Performance-Daten aus
eal
25. SUMMARY
Statuszeile ist wichtig!
erscheint in Mails, in SMS, auf Pager
in 80-140 Zeichen die „Message“ herüberbringen
muss nachts 3:30 Uhr verständlich sein
27. SUMMARY – STANDARDIMPLEMENTIERUNG
casSmay
ls umr:
dfo(ef rsls:
e ksl, eut)
rtr srrsls0)
eun t(eut[]
dfpolmsl,rsls:
e rbe(ef eut)
ty
r:
rtr srrslsfrtsgiiat
eun t(eut.is_infcn)
ecp Idxro:
xet neErr
rtr 'ocekrsls
eun n hc eut'
dfvroesl,rsls:
e ebs(ef eut)
mg =[
ss ]
frrsl i rsls
o eut n eut:
i rsl.tt = O:
f eutsae = k
cniu
otne
mg.ped'} {'fra(eutsae rsl)
ssapn({: }.omtrsl.tt, eut)
rtr mg
eun ss
28. BEISPIEL: CHECK_LOAD
casLaSmayngopui.umr)
ls odumr(aislgnSmay:
df_ii_(ef prp)
e _nt_sl, ecu:
sl.ecu=prp
efprp ecu
dfo(ef rsls:
e ksl, eut)
i sl.ecu
f efprp:
wa ='odv prcu
ht laag e p'
es:
le
wa ='odv'
ht laag
rtr '}i {'fra(ht ' 'ji(
eun { s }.omtwa, , .on
srrslsr.erc
t(eut[]mti)
frri [la1,'od' 'od5])
o n 'od' la5, la1')
29. ADVANCED #1: LOGGING & OUTPUT
Setup:
dfmi(:
e an)
..
.
ag.d_ruet'v,'-ebs' ato=cut,
rpadagmn(-' -vroe, cin'on'
dfut0 hl=ices vroiy)
eal=, ep'nrae ebst'
..
.
cekmi(ebs=rsvroe
hc.anvroeag.ebs)
Logging:
dfls_sr(ef:
e ituessl)
lgigif(qeyn ueswt "s cmad,
ogn.no'urig sr ih %" omn'
sl.h_m)
efwocd
ues=[
sr ]
..
.
30. VERBOSE=0
Status und Perfdata auf einer Zeile
Loglevel warning und höher
Summary.verbose() wird nicht angezeigt
$cekues
hc_sr
UESO -4ueslge i |ttl4;0uiu=;;
SR K sr ogd n oa=;; nqe1;0
31. VERBOSE=1
mehrzeilige Ausgabe
sollte Standard sein für Server, die long output
verarbeiten
Loglevel warning und höher
Summary.verbose() wird angezeigt
$cekues-
hc_sr v
UESO -4ueslge i
SR K sr ogd n
ues cahu,cahu,cahu,cahu
sr: kuas kuas kuas kuas
|ttl4;0uiu=;;
oa=;; nqe1;0
32. VERBOSE=2
Konfigurationsinformationen zum Plugin
z.B. Commandlines externer Aufrufe
Loglevel info und höher
$cekuesp -v
hc_sr.y v
UESO -4ueslge i
SR K sr ogd n
ues cahu,cahu,cahu,cahu
sr: kuas kuas kuas kuas
qeyn ueswt "h"cmad(hc_sr.y3)
urig sr ih wo omn cekuesp:4
|ttl4;0uiu=;;
oa=;; nqe1;0
33. VERBOSE=3
Debugging-Informationen
z.B. Zwischenergebnisse
Loglevel debug und höher
$cekuesp -v
hc_sr.y vv
UESO -4ueslge i
SR K sr ogd n
ues cahu,cahu,cahu,cahu
sr: kuas kuas kuas kuas
qeyn ueswt "h"cmad(hc_sr.y3)
urig sr ih wo omn cekuesp:4
wootu:bcahu ty 21-02 1:6 (hc_sr.y3)
h upt 'kuas t1 021-9 23' cekuesp:8
..
.
|ttl4;0uiu=;;
oa=;; nqe1;0
34. FORMATIERUNG VON METRIKEN
C n e tist für „seine“ Metriken zuständig
otx
Variante 1: String-Template
Cnet.. ftmti={ae i {auui})
otx(., m_erc'nm} s vlent'
Variante 2: Callable
dffra_sron(erc cnet:
e omtuecutmti, otx)
rtr '.'
eun ..
Cnet.. ftmti=omtuecut
otx(., m_ercfra_sron)
36. COOKIE
persistentes d c
it
Serialisierung mit JSON
Locking
wt ngopui.okesl.ttfl)a coi:
ih aislgnCoi(efsaeie s oke
sl.ietm =coi.e(ls_en,')
eftmsap okegt'atse' '
mtis=sl.osmtig)
erc efd_oehn(
coi[ls_en]=sl.ietm
oke'atse' eftmsap
Inhalt von statefile:
{
"atse" "021-81:82"
ls_en: 21-02 20:5
}
37. LOGTAIL
Inkrementelles Lesen von wachsenden Logfiles
baut auf C o i auf
oke
erkennt Log-Rotation
Wiederaufsetzen nach Exceptions
dfprelgsl)
e as_o(ef:
coi =ngopui.okesl.ttfl)
oke aislgnCoi(efsaeie
wt ngopui.oTi(eflgie coi)a l:
ih aislgnLgalsl.ofl, oke s f
frln i l:
o ie n f
..
.
38. ADVANCED #3: FEHLERBEHANDLUNG
Was ist, wenn es nicht so läuft wie geplant?
Wichtige Fehlerklassen:
Resource nicht da/nicht abfragbar
Fehlerhafte Kommandozeilen-Parameter
Umgebungsfehler
Programmierfehler
39. @NAGIOSPLUGIN.GUARDED
Schützt die main()-Funktion bei Exceptions:
Exit-Status 3
API-konforme Ausgabe
Traceback bei verbose ≥ 1
@aislgngadd
ngopui.ure
dfmi(:
e an)
ag =agas.ruetasr)
rp rpreAgmnPre(
ag.d_ruet..
rpadagmn(.)
ag =ag.as_rs)
rs rppreag(
cek=ngopui.hc(odag.ecu,..
hc aislgnCekLa(rsprp) .)
cekmi(
hc.an)
40. BEISPIEL: EXCEPTION IN PROBE()
casFi(aislgnRsuc)
ls alngopui.eore:
dfpoesl)
e rb(ef:
rieRniero(Imfeigbd)
as utmErr"' eln a"
@aislgngadd
ngopui.ure
dfmi(:
e an)
ag =agas.ruetasr)
rp rpreAgmnPre(
ag.d_ruet'v,ato=cut,dfut0
rpadagmn(-' cin'on' eal=)
ag =ag.as_rs)
rs rppreag(
cek=ngopui.hc(al)
hc aislgnCekFi()
cekmi(rsvroe
hc.anag.ebs)
Ausgabe (verbose=0):
$cekfi.y
hc_alp
FI UKON Rniero:Imfeigbd
AL NNW: utmErr ' eln a
#ei 3
xt
41. FAZIT
Mit n g o p u i macht das
aislgn
Schreiben von Plugins beinahe Spaß. ;-)
Trennung der Verantwortlichkeiten
wartbarer, objekt-orientierter Code
volle Unterstützung der Plugin-API
kleine Helfer
robustes Verhalten im Fehlerfall
42. USE THE SOURCE, LUKE
Download:
http://pypi.python.org/pypi/nagiosplugin
Code:
https://bitbucket.org/gocept/nagiosplugin
Wiki/Tracker/Forum:
https://projects.gocept.com/projects/nagiosplugin/wiki