SlideShare a Scribd company logo
1 of 11
Download to read offline
BOF:
Nagios Plugins
New Threshold
Specification Syntax
Comments to :
nagiosplug-devel@lists.sourceforge.net
October 1, 2013 Saint Paul, MN
2
Current State of Nagios Plugins Syntax
There is Nagios Threshold Specification as part of Nagios
Plugins Development Guidelines:
https://www.nagios-plugins.org/doc/guidelines.html
This is supported by most core plugins and followed by
many other plugin authors. However:
The range syntax is confusing and quite limited. People
think the @a:b syntax for checking if something is within
the range is unnatural and difficult to understand.
Many (most!) plugins have multiple metrics that can be
checked, yet nagios development guidelines call for
threshold to be specified in one set of –warn (-w) and
–critical (-c) options.
The syntax is not extendable for adding additional
parameters related to checking of specific metric. Many
plugins end up with a ton of options which becomes even
more confusing for the users
3
History of the proposal
To encourage discussion on how to deal with these issues a draft
proposal called “New Threshold Syntax” was written by Ton Voon
five years ago. It used to be available at nagiosplugins.org
The Plugins Development Team discussed this internally, but didn't
reach a consensus on how to proceed, so this was never
implemented by any core plugin. Ton is no longer involved in
Nagios-Plugins project either.
However some 3rd-party plugin authors liked this proposal and
moved forward to partially implement it in their own libraries and
plugins. Current libraries that partially support this or something
similar are: Pynag (http://pynag.org/),
JNRPE (http://jnrpe.sourceforge.net/),
Naglio (https://github.com/willixix/WL-NagiosPlugins)
Current proposal is an extension of original with some additions
from Naglio.pm plus ideas proposed at nagios-plugins mail list
discussion. Current text is at:
https://github.com/willixix/nagios-plugins/wiki/New-Threshold-Syntax
4
Proposal: New Threshold Option
https://github.com/willixix/nagios-plugins/wiki/New-Threshold-Syntax
New single Threshold option that can be repeated:
--threshold={threshold definition} --th={threshold definition}
The threshold definition is a subgetopt format with a list of
keywords followed by '=' or ':' and then data.
--threshold metric={metric},name={name},label={label},ok={range},
warn={range},crit={range},absent=critical|warning|ok|unknown,
display=yes|no,perf=yes|no,unit={unit},prefix={SI prefix}
OR
--threshold=metric:{metric},name:{name},label:{label},ok:{range},warn:
{range},crit:{range},absent:critical|warning|ok|unknown,display:yes|no,
perf:yes|no,unit:{unit},prefix:{SI prefix}
5
Examples
To check httpd processes are OK if the virtual size is under 8096
bytes. Warn until they reach 16182, but bigger than that is CRITICAL.
old: check_procs -w 8096 -c 16182 -C httpd --metric VSZ
new: check_procs -C httpd –th
metric=vsize,ok=0..8096,warn=8097..16182
There should always be one and only one 'tnslsnr' process.
Otherwise critical.
old: check_procs -w 1:1 -c 1:1 -C tnslsnr
new: check_procs -C tnslsnr --th metric=count,ok=1..1
Load averages (1,5,15 minute) should be within reasonable ranges.
old: check_load -w 1.0,0.8,0.7 -c 1.5,1.3,1.0
new: check_load --th metric=1min,ok=0..1.0,warn=1.0..1.5 --th
metric=5min,ok=0..0.8,warn=0.8..1.3 --th
metric=15min,ok=0..0.7,warn=0.7..1.0
6
Proposal: New Range Syntax
New “natural” format for range. Simple ranges have format:
start..end (such as “warn=0..20”)
- start and end are numeric or “inf”. require start ≤ end
- if start = "inf" or “-inf”, this is negative infinity.
- if end = "inf", this is positive infinity
- alert is raised if value is inside start and end range
Complex ranges have the following additions:
addition of () and [] brackets which are used in math for interval notation
() is open interval, means end points are not included
[] is closed interval, means end points are included
addition of ^ used to negate interval, preferably this is followed by () or []
Examples (“current range format” → “new range format”):
10 → 10 or ^[0..10] - alert if < 0 or > 10, (outside of {0 .. 10})
10: → ^[10..inf] - alert if < 10, (outside of {10 .. ∞})
~:10 → ^[-inf..10] - alert if > 10, (outside of {-∞ .. 10})
10:20 → ^[10..20] - alert if < 10 or > 20, (outside of {10 .. 20})
@10:20 → 10..20 - alert if ≥ 10 and ≤ 20, (inside of {10 .. 20})
7
Proposal: 'warn', 'crit', 'ok' levels
“ok”, “warn”, “crit” are level specification keywords. Basic syntax:
ok:{range},warn:{range},crit:{range} OR
ok={range},warn={range},crit={range}
Ranges are used with warn, crit, ok keywords which combined
specify when and what type of alert is to be issued:
- if no levels are specified, return OK
- If an ok level is specified and value is within range, return OK
- If a critical level is specified and value is within range, return CRITICAL
- If a warning level is specified and value is within range, return WARNING
- If an ok level is specified, return CRITICAL
- Otherwise return OK
These keywords maybe repeated more than once to specify complex
non-continuous range. The ranges are combined as a logical “OR”.
A proposed extension is to also have “awarn”, “aok”, “acrit” keywords
which allow levels to be combined with a logical AND. The primary
use of this is with multiple metrics specifying that alert is to be issued
when values for both metrics are within specified ranges.
8
Proposal: 'metric', 'name', 'regex', 'label' keywords
metric={name} OR metric:{name}
This keyword specifies alphanumeric name of the metric being checked
by the plugin (name has meaning for plugin itself).This is usually first
keyword in threshold option line
name={name} OR name:{name}
This is used with plugins that can get data on multiple named data
values (attributes) and where different metric to be checked are
available for these named attributes. Examples of this are:
- process name, where process memory and cpu use are metrics.
- network interface name, where bytes_in and bytes_out are metrics.
regex='yes|no' OR regex:'yes|no'
Enables or disables regex matching of {name} in 'name' and 'metric'
label={name}' OR label:{name}
perf_label={name} OR perf_label:{name}
These are used re-label 'name' or 'metric' for status line and perf output,
usually to make long name shorter.
9
Proposal: other keywords
absent='warn|critical|ok|unknown'
Nagios exit status and alert if specified named value or metric are not
available. This overrides default 'unknown' many plugins use.
display='yes|no' OR display:'yes|no'
Specifies if metric info & value should be included in status line output
perf='yes|no' OR perf:'yes|no'
Specifies if metric value should be included in perf output
prefix={prefix} OR prefix:{prefix}
The prefix is used to multiply the input range for display of data in status
output. Allowed {prefix} values are slight expansion of those defined by
NIST at http://physics.nist.gov/cuu/Units/prefixes.html:
unit={unit} OR uom={unit} OR unit:{unit} OR uom:{unit}
{unit} is a single symbol or string that specify the Unit of Measurement
(UOM) for plugins that do not know about the type of value returned.
Base UOMs are: '%' for percent and 'c' for performance counters..
Custom UOMs may include one-letter prefix followed by abbreviation or
full NIST prefix followed by '-' and then label. For example:
kb = kilo-b = kilo-bits
10
Discussion
Is this good proposal base or are there serious issues?
The proposal currently does mention how to output new
complex ranges for use by performance graphing utilities.
Any suggestions on how to best handle this?
It may take some time for official plugin developers to
implement especially since Ton Voon is no longer
involved. Should we ask them to do it?
Do we want to move forward and and finalize this as
standard?
Any other suggestions for plugin standardization?
11
Extra: XML spec for describing plugins?
Separate issue how to provide information on how to configure
various plugins for web user interface that various nagios
packages have.
One proposal could be to write an XML spec that could be used
to describe options that plugins have. This can be thought of as
structured help (and in fact such XML can be converted into
manual page or help). This would be something like:
<plugin name=”check_snmp_..”>
<options>
<option name=”SNMP_Auth_Protocols”>
<option_lines><line>L</line><line>authprotocols</line></option_lines>
<accepted_values_list>
<value id=1>md5</value><value id=2>sha1</value>
</accepted_values_list>
</option>
</options>
</plugin>
For any Nagios package vendors are here - would this be of any
interest to you?

More Related Content

What's hot

SQL Server Select Topics
SQL Server Select TopicsSQL Server Select Topics
SQL Server Select TopicsJay Coskey
 
From object oriented to functional domain modeling
From object oriented to functional domain modelingFrom object oriented to functional domain modeling
From object oriented to functional domain modelingMario Fusco
 
OOP and FP - Become a Better Programmer
OOP and FP - Become a Better ProgrammerOOP and FP - Become a Better Programmer
OOP and FP - Become a Better ProgrammerMario Fusco
 
Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017Martin Chapman
 
1.Buffer Overflows
1.Buffer Overflows1.Buffer Overflows
1.Buffer Overflowsphanleson
 
C interview-questions-techpreparation
C interview-questions-techpreparationC interview-questions-techpreparation
C interview-questions-techpreparationKushaal Singla
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkHendy Irawan
 
Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...Simplilearn
 
Python programing
Python programingPython programing
Python programinghamzagame
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoJoel Falcou
 
C++ questions And Answer
C++ questions And AnswerC++ questions And Answer
C++ questions And Answerlavparmar007
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythonMarian Marinov
 
CS225_Prelecture_Notes 2nd
CS225_Prelecture_Notes 2ndCS225_Prelecture_Notes 2nd
CS225_Prelecture_Notes 2ndEdward Chen
 

What's hot (20)

SQL Server Select Topics
SQL Server Select TopicsSQL Server Select Topics
SQL Server Select Topics
 
From object oriented to functional domain modeling
From object oriented to functional domain modelingFrom object oriented to functional domain modeling
From object oriented to functional domain modeling
 
OOP and FP - Become a Better Programmer
OOP and FP - Become a Better ProgrammerOOP and FP - Become a Better Programmer
OOP and FP - Become a Better Programmer
 
Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017Martin Chapman: Research Overview, 2017
Martin Chapman: Research Overview, 2017
 
1.Buffer Overflows
1.Buffer Overflows1.Buffer Overflows
1.Buffer Overflows
 
Functional Programming in Java - Lessons Learned by GridGain
Functional Programming in Java - Lessons Learned by GridGainFunctional Programming in Java - Lessons Learned by GridGain
Functional Programming in Java - Lessons Learned by GridGain
 
C interview-questions-techpreparation
C interview-questions-techpreparationC interview-questions-techpreparation
C interview-questions-techpreparation
 
Composing method
Composing methodComposing method
Composing method
 
Programming Assignment Help
Programming Assignment HelpProgramming Assignment Help
Programming Assignment Help
 
Animate
AnimateAnimate
Animate
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
Twitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian NetworkTwitter Author Prediction from Tweets using Bayesian Network
Twitter Author Prediction from Tweets using Bayesian Network
 
Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...Python Interview Questions | Python Interview Questions And Answers | Python ...
Python Interview Questions | Python Interview Questions And Answers | Python ...
 
Python programing
Python programingPython programing
Python programing
 
Rx workshop
Rx workshopRx workshop
Rx workshop
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.Proto
 
C++ questions And Answer
C++ questions And AnswerC++ questions And Answer
C++ questions And Answer
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
Monadic Java
Monadic JavaMonadic Java
Monadic Java
 
CS225_Prelecture_Notes 2nd
CS225_Prelecture_Notes 2ndCS225_Prelecture_Notes 2nd
CS225_Prelecture_Notes 2nd
 

Viewers also liked

Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...
Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...
Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...Nagios
 
Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...
Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...
Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...Nagios
 
Nagios Conference 2012 - John Sellens - Non-Obvious Nagios
Nagios Conference 2012 - John Sellens - Non-Obvious NagiosNagios Conference 2012 - John Sellens - Non-Obvious Nagios
Nagios Conference 2012 - John Sellens - Non-Obvious NagiosNagios
 
Nagios Conference 2012 - Todd Groten - Monitoring Call of Duty: Elite
Nagios Conference 2012 - Todd Groten - Monitoring Call of Duty: EliteNagios Conference 2012 - Todd Groten - Monitoring Call of Duty: Elite
Nagios Conference 2012 - Todd Groten - Monitoring Call of Duty: EliteNagios
 
Nagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your Business
Nagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your BusinessNagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your Business
Nagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your BusinessNagios
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios
 
Nagios Conference 2012 - Ethan Galstad - Keynote
Nagios Conference 2012 - Ethan Galstad - KeynoteNagios Conference 2012 - Ethan Galstad - Keynote
Nagios Conference 2012 - Ethan Galstad - KeynoteNagios
 
Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...
Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...
Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...Nagios
 

Viewers also liked (8)

Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...
Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...
Nagios Conference 2012 - Nicolas Brousse - Optimizing your Monitoring and Tre...
 
Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...
Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...
Nagios Conference 2012 - Yancy Ribbens - Windows Advanced Monitoring with WMI...
 
Nagios Conference 2012 - John Sellens - Non-Obvious Nagios
Nagios Conference 2012 - John Sellens - Non-Obvious NagiosNagios Conference 2012 - John Sellens - Non-Obvious Nagios
Nagios Conference 2012 - John Sellens - Non-Obvious Nagios
 
Nagios Conference 2012 - Todd Groten - Monitoring Call of Duty: Elite
Nagios Conference 2012 - Todd Groten - Monitoring Call of Duty: EliteNagios Conference 2012 - Todd Groten - Monitoring Call of Duty: Elite
Nagios Conference 2012 - Todd Groten - Monitoring Call of Duty: Elite
 
Nagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your Business
Nagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your BusinessNagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your Business
Nagios Conference 2012 - Nate Broderick - Bringing Nagios XI Into Your Business
 
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User ExperienceNagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
Nagios Conference 2012 - Nathan Vonnahme - Monitoring the User Experience
 
Nagios Conference 2012 - Ethan Galstad - Keynote
Nagios Conference 2012 - Ethan Galstad - KeynoteNagios Conference 2012 - Ethan Galstad - Keynote
Nagios Conference 2012 - Ethan Galstad - Keynote
 
Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...
Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...
Nagios Conference 2012 - Sam Lansing - Automating Windows Application Testing...
 

Similar to Nagios Conference 2013 - BOF Nagios Plugins New Threshold Specification Syntax

The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202Mahmoud Samir Fayed
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxmonicafrancis71118
 
Linux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-StudioLinux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-StudioPVS-Studio
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxcargillfilberto
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxdrandy1
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolutiondeimos
 
MT_01_unittest_python.pdf
MT_01_unittest_python.pdfMT_01_unittest_python.pdf
MT_01_unittest_python.pdfHans Jones
 
The Ring programming language version 1.7 book - Part 92 of 196
The Ring programming language version 1.7 book - Part 92 of 196The Ring programming language version 1.7 book - Part 92 of 196
The Ring programming language version 1.7 book - Part 92 of 196Mahmoud Samir Fayed
 
VB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.pptVB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.pptBhuvanaR13
 
Examples from Pune meetup
Examples from Pune meetupExamples from Pune meetup
Examples from Pune meetupSantosh Ojha
 
Nagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In Perl
Nagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In PerlNagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In Perl
Nagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In PerlNagios
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project AnalyzedPVS-Studio
 
Measuring maintainability; software metrics explained
Measuring maintainability; software metrics explainedMeasuring maintainability; software metrics explained
Measuring maintainability; software metrics explainedDennis de Greef
 
Evolving The Java Language
Evolving The Java LanguageEvolving The Java Language
Evolving The Java LanguageQConLondon2008
 
Testing the frontend
Testing the frontendTesting the frontend
Testing the frontendHeiko Hardt
 
OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...
OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...
OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...NETWAYS
 
Exploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an ExampleExploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an ExamplePVS-Studio
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Marcel Caraciolo
 

Similar to Nagios Conference 2013 - BOF Nagios Plugins New Threshold Specification Syntax (20)

The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202The Ring programming language version 1.8 book - Part 95 of 202
The Ring programming language version 1.8 book - Part 95 of 202
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
Linux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-StudioLinux Kernel, tested by the Linux-version of PVS-Studio
Linux Kernel, tested by the Linux-version of PVS-Studio
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docxCOMM 166 Final Research Proposal GuidelinesThe proposal should.docx
COMM 166 Final Research Proposal GuidelinesThe proposal should.docx
 
Neal Gafter Java Evolution
Neal Gafter Java EvolutionNeal Gafter Java Evolution
Neal Gafter Java Evolution
 
MT_01_unittest_python.pdf
MT_01_unittest_python.pdfMT_01_unittest_python.pdf
MT_01_unittest_python.pdf
 
The Ring programming language version 1.7 book - Part 92 of 196
The Ring programming language version 1.7 book - Part 92 of 196The Ring programming language version 1.7 book - Part 92 of 196
The Ring programming language version 1.7 book - Part 92 of 196
 
VB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.pptVB_ERROR CONTROL_FILE HANDLING.ppt
VB_ERROR CONTROL_FILE HANDLING.ppt
 
Examples from Pune meetup
Examples from Pune meetupExamples from Pune meetup
Examples from Pune meetup
 
Nagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In Perl
Nagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In PerlNagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In Perl
Nagios Conference 2011 - Nathan Vonnahme - Writing Custom Nagios Plugins In Perl
 
The First C# Project Analyzed
The First C# Project AnalyzedThe First C# Project Analyzed
The First C# Project Analyzed
 
Measuring maintainability; software metrics explained
Measuring maintainability; software metrics explainedMeasuring maintainability; software metrics explained
Measuring maintainability; software metrics explained
 
Evolving The Java Language
Evolving The Java LanguageEvolving The Java Language
Evolving The Java Language
 
Testing the frontend
Testing the frontendTesting the frontend
Testing the frontend
 
Csharp generics
Csharp genericsCsharp generics
Csharp generics
 
OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...
OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...
OSMC 2008 | An Active Check on the Status of the Nagios Plugins PART 2 by Ton...
 
Exploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an ExampleExploring Microoptimizations Using Tizen Code as an Example
Exploring Microoptimizations Using Tizen Code as an Example
 
Java 17
Java 17Java 17
Java 17
 
Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks Benchy: Lightweight framework for Performance Benchmarks
Benchy: Lightweight framework for Performance Benchmarks
 

More from Nagios

Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best PracticesNagios
 
Jesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewJesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewNagios
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The HoodNagios
 
Sean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsSean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsNagios
 
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise EditionMarcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise EditionNagios
 
Janice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios PluginsJanice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios PluginsNagios
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceNagios
 
Mike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksMike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksNagios
 
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationMike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationNagios
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Nagios
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosNagios
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Nagios
 
Eric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosEric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosNagios
 
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Nagios
 
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...Nagios
 
Nagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson OpeningNagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson OpeningNagios
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNagios
 
Nagios Log Server - Features
Nagios Log Server - FeaturesNagios Log Server - Features
Nagios Log Server - FeaturesNagios
 
Nagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios
 
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing NagiosNagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing NagiosNagios
 

More from Nagios (20)

Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
Jesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture OverviewJesse Olson - Nagios Log Server Architecture Overview
Jesse Olson - Nagios Log Server Architecture Overview
 
Trevor McDonald - Nagios XI Under The Hood
Trevor McDonald  - Nagios XI Under The HoodTrevor McDonald  - Nagios XI Under The Hood
Trevor McDonald - Nagios XI Under The Hood
 
Sean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient NotificationsSean Falzon - Nagios - Resilient Notifications
Sean Falzon - Nagios - Resilient Notifications
 
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise EditionMarcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
Marcus Rochelle - Landis+Gyr - Monitoring with Nagios Enterprise Edition
 
Janice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios PluginsJanice Singh - Writing Custom Nagios Plugins
Janice Singh - Writing Custom Nagios Plugins
 
Dave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical ExperienceDave Williams - Nagios Log Server - Practical Experience
Dave Williams - Nagios Log Server - Practical Experience
 
Mike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service ChecksMike Weber - Nagios and Group Deployment of Service Checks
Mike Weber - Nagios and Group Deployment of Service Checks
 
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios InstallationMike Guthrie - Revamping Your 10 Year Old Nagios Installation
Mike Guthrie - Revamping Your 10 Year Old Nagios Installation
 
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
Bryan Heden - Agile Networks - Using Nagios XI as the platform for Monitoring...
 
Matt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With NagiosMatt Bruzek - Monitoring Your Public Cloud With Nagios
Matt Bruzek - Monitoring Your Public Cloud With Nagios
 
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
Lee Myers - What To Do When Nagios Notification Don't Meet Your Needs.
 
Eric Loyd - Fractal Nagios
Eric Loyd - Fractal NagiosEric Loyd - Fractal Nagios
Eric Loyd - Fractal Nagios
 
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
Marcelo Perazolo, Lead Software Architect, IBM Corporation - Monitoring a Pow...
 
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
Thomas Schmainda - Tracking Boeing Satellites With Nagios - Nagios World Conf...
 
Nagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson OpeningNagios World Conference 2015 - Scott Wilkerson Opening
Nagios World Conference 2015 - Scott Wilkerson Opening
 
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios CoreNrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
Nrpe - Nagios Remote Plugin Executor. NRPE plugin for Nagios Core
 
Nagios Log Server - Features
Nagios Log Server - FeaturesNagios Log Server - Features
Nagios Log Server - Features
 
Nagios Network Analyzer - Features
Nagios Network Analyzer - FeaturesNagios Network Analyzer - Features
Nagios Network Analyzer - Features
 
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing NagiosNagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
Nagios Conference 2014 - Dorance Martinez Cortes - Customizing Nagios
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Nagios Conference 2013 - BOF Nagios Plugins New Threshold Specification Syntax

  • 1. BOF: Nagios Plugins New Threshold Specification Syntax Comments to : nagiosplug-devel@lists.sourceforge.net October 1, 2013 Saint Paul, MN
  • 2. 2 Current State of Nagios Plugins Syntax There is Nagios Threshold Specification as part of Nagios Plugins Development Guidelines: https://www.nagios-plugins.org/doc/guidelines.html This is supported by most core plugins and followed by many other plugin authors. However: The range syntax is confusing and quite limited. People think the @a:b syntax for checking if something is within the range is unnatural and difficult to understand. Many (most!) plugins have multiple metrics that can be checked, yet nagios development guidelines call for threshold to be specified in one set of –warn (-w) and –critical (-c) options. The syntax is not extendable for adding additional parameters related to checking of specific metric. Many plugins end up with a ton of options which becomes even more confusing for the users
  • 3. 3 History of the proposal To encourage discussion on how to deal with these issues a draft proposal called “New Threshold Syntax” was written by Ton Voon five years ago. It used to be available at nagiosplugins.org The Plugins Development Team discussed this internally, but didn't reach a consensus on how to proceed, so this was never implemented by any core plugin. Ton is no longer involved in Nagios-Plugins project either. However some 3rd-party plugin authors liked this proposal and moved forward to partially implement it in their own libraries and plugins. Current libraries that partially support this or something similar are: Pynag (http://pynag.org/), JNRPE (http://jnrpe.sourceforge.net/), Naglio (https://github.com/willixix/WL-NagiosPlugins) Current proposal is an extension of original with some additions from Naglio.pm plus ideas proposed at nagios-plugins mail list discussion. Current text is at: https://github.com/willixix/nagios-plugins/wiki/New-Threshold-Syntax
  • 4. 4 Proposal: New Threshold Option https://github.com/willixix/nagios-plugins/wiki/New-Threshold-Syntax New single Threshold option that can be repeated: --threshold={threshold definition} --th={threshold definition} The threshold definition is a subgetopt format with a list of keywords followed by '=' or ':' and then data. --threshold metric={metric},name={name},label={label},ok={range}, warn={range},crit={range},absent=critical|warning|ok|unknown, display=yes|no,perf=yes|no,unit={unit},prefix={SI prefix} OR --threshold=metric:{metric},name:{name},label:{label},ok:{range},warn: {range},crit:{range},absent:critical|warning|ok|unknown,display:yes|no, perf:yes|no,unit:{unit},prefix:{SI prefix}
  • 5. 5 Examples To check httpd processes are OK if the virtual size is under 8096 bytes. Warn until they reach 16182, but bigger than that is CRITICAL. old: check_procs -w 8096 -c 16182 -C httpd --metric VSZ new: check_procs -C httpd –th metric=vsize,ok=0..8096,warn=8097..16182 There should always be one and only one 'tnslsnr' process. Otherwise critical. old: check_procs -w 1:1 -c 1:1 -C tnslsnr new: check_procs -C tnslsnr --th metric=count,ok=1..1 Load averages (1,5,15 minute) should be within reasonable ranges. old: check_load -w 1.0,0.8,0.7 -c 1.5,1.3,1.0 new: check_load --th metric=1min,ok=0..1.0,warn=1.0..1.5 --th metric=5min,ok=0..0.8,warn=0.8..1.3 --th metric=15min,ok=0..0.7,warn=0.7..1.0
  • 6. 6 Proposal: New Range Syntax New “natural” format for range. Simple ranges have format: start..end (such as “warn=0..20”) - start and end are numeric or “inf”. require start ≤ end - if start = "inf" or “-inf”, this is negative infinity. - if end = "inf", this is positive infinity - alert is raised if value is inside start and end range Complex ranges have the following additions: addition of () and [] brackets which are used in math for interval notation () is open interval, means end points are not included [] is closed interval, means end points are included addition of ^ used to negate interval, preferably this is followed by () or [] Examples (“current range format” → “new range format”): 10 → 10 or ^[0..10] - alert if < 0 or > 10, (outside of {0 .. 10}) 10: → ^[10..inf] - alert if < 10, (outside of {10 .. ∞}) ~:10 → ^[-inf..10] - alert if > 10, (outside of {-∞ .. 10}) 10:20 → ^[10..20] - alert if < 10 or > 20, (outside of {10 .. 20}) @10:20 → 10..20 - alert if ≥ 10 and ≤ 20, (inside of {10 .. 20})
  • 7. 7 Proposal: 'warn', 'crit', 'ok' levels “ok”, “warn”, “crit” are level specification keywords. Basic syntax: ok:{range},warn:{range},crit:{range} OR ok={range},warn={range},crit={range} Ranges are used with warn, crit, ok keywords which combined specify when and what type of alert is to be issued: - if no levels are specified, return OK - If an ok level is specified and value is within range, return OK - If a critical level is specified and value is within range, return CRITICAL - If a warning level is specified and value is within range, return WARNING - If an ok level is specified, return CRITICAL - Otherwise return OK These keywords maybe repeated more than once to specify complex non-continuous range. The ranges are combined as a logical “OR”. A proposed extension is to also have “awarn”, “aok”, “acrit” keywords which allow levels to be combined with a logical AND. The primary use of this is with multiple metrics specifying that alert is to be issued when values for both metrics are within specified ranges.
  • 8. 8 Proposal: 'metric', 'name', 'regex', 'label' keywords metric={name} OR metric:{name} This keyword specifies alphanumeric name of the metric being checked by the plugin (name has meaning for plugin itself).This is usually first keyword in threshold option line name={name} OR name:{name} This is used with plugins that can get data on multiple named data values (attributes) and where different metric to be checked are available for these named attributes. Examples of this are: - process name, where process memory and cpu use are metrics. - network interface name, where bytes_in and bytes_out are metrics. regex='yes|no' OR regex:'yes|no' Enables or disables regex matching of {name} in 'name' and 'metric' label={name}' OR label:{name} perf_label={name} OR perf_label:{name} These are used re-label 'name' or 'metric' for status line and perf output, usually to make long name shorter.
  • 9. 9 Proposal: other keywords absent='warn|critical|ok|unknown' Nagios exit status and alert if specified named value or metric are not available. This overrides default 'unknown' many plugins use. display='yes|no' OR display:'yes|no' Specifies if metric info & value should be included in status line output perf='yes|no' OR perf:'yes|no' Specifies if metric value should be included in perf output prefix={prefix} OR prefix:{prefix} The prefix is used to multiply the input range for display of data in status output. Allowed {prefix} values are slight expansion of those defined by NIST at http://physics.nist.gov/cuu/Units/prefixes.html: unit={unit} OR uom={unit} OR unit:{unit} OR uom:{unit} {unit} is a single symbol or string that specify the Unit of Measurement (UOM) for plugins that do not know about the type of value returned. Base UOMs are: '%' for percent and 'c' for performance counters.. Custom UOMs may include one-letter prefix followed by abbreviation or full NIST prefix followed by '-' and then label. For example: kb = kilo-b = kilo-bits
  • 10. 10 Discussion Is this good proposal base or are there serious issues? The proposal currently does mention how to output new complex ranges for use by performance graphing utilities. Any suggestions on how to best handle this? It may take some time for official plugin developers to implement especially since Ton Voon is no longer involved. Should we ask them to do it? Do we want to move forward and and finalize this as standard? Any other suggestions for plugin standardization?
  • 11. 11 Extra: XML spec for describing plugins? Separate issue how to provide information on how to configure various plugins for web user interface that various nagios packages have. One proposal could be to write an XML spec that could be used to describe options that plugins have. This can be thought of as structured help (and in fact such XML can be converted into manual page or help). This would be something like: <plugin name=”check_snmp_..”> <options> <option name=”SNMP_Auth_Protocols”> <option_lines><line>L</line><line>authprotocols</line></option_lines> <accepted_values_list> <value id=1>md5</value><value id=2>sha1</value> </accepted_values_list> </option> </options> </plugin> For any Nagios package vendors are here - would this be of any interest to you?