11-02-2021 / blog / Fred Lopulalan
De kracht van plug-ins

Bedrijfskritische applicaties en infrastructuur bewaken en tijdig ingrijpen bij verstoringen

Conclusion Xforce is sinds jaar en dag leverancier van monitoring oplossingen. Hiermee helpen wij de klant hun bedrijf kritische applicaties en infrastructuur te bewaken en tijdig te kunnen ingrijpen bij verstoringen.

 

Binnen dit blog willen we periodiek onderwerpen belichten die nieuw geïntroduceerd zijn, geïntegreerde tooling zoals BPI en Nagvis en plug-ins welke specifieke toepassingen hebben en andere wetenswaardigheden. 

De kracht van plug-ins 

Binnen de monitoring zijn voor de meest uiteenlopende toepassingen plug-ins beschikbaar. Veelal zijn deze gericht op platformen en applicaties, maar er zijn ook hele specifieke plug-ins.

 

Zo'n specifieke plug-in waar deze blog over gaat is het bewaken van de bandbreedte naar het internet, waarbij gebruik wordt gemaakt van https://www.speedtest.net

 

Organisaties die een afhankelijk hebben van een minimale bandbreedte willen kunnen meten, én signaleren, als deze onder bepaalde drempelwaarden komen.

 

Download en werking van de plug-in

De plug-in is beschikbaar gesteld door een engineer genaamd Matt Marz en staat onder Github (https://github.com/sivel/speedtest-cli)

 

Daar staat een uitleg hoe de plug-in moet worden gedownload. Het zijn een 2-tal bestanden:

 

  • speedtest-cli                  – een python script welke de daadwerkelijke test uitvoert.
  • check_speedtest-cli.sh – een bash script welke speedtest-cli aanroept.

 

De plugin doet een 2-tal tests: een download- en een uploadtest. Daarbij zijn een aantal verplichte velden welke moeten worden ingevuld:

 

# ./check_speedtest-cli.sh
        ********************************************************************************
        Nagios speedtest-cli plugin - Version: 1.2 2017122011:01
 
        OPTIONS:
        -h      Show this message
        -w      Download Warning Level - *Required* - integer or floating point
        -c      Download Critical Level - *Required* - integer or floating point
        -W      Upload Warning Level - *Required* - integer or floating point
        -C      Upload Critical Level - *Required* - integer or floating point
        -l      Location of speedtest server - *Required * - takes either "i" or "e". If you pass "i" for
                Internal then you will need to pass the URL of the Mini Server to the "s" option. If you pass
                "e" for External then you must pass the server integer to the "s" option.
        -s      Server integer or URL for the speedtest server to test against - *Required* - Run
                "speedtest --list | less" to find your nearest server and note the number of the server
                or use the URL of an internal Speedtest Mini Server
        -p      Output Performance Data
        -m      Download Maximum Level - *Required if you request perfdata* - integer or floating point
                Provide the maximum possible download level in Mbit/s for your connection
        -M      Upload Maximum Level - *Required if you request perfdata* - integer or floating point
                Provide the maximum possible upload level in Mbit/s for your connection
        -v      Output plugin version
        -V      Output debug info for testing

Externe server bepalen voor de test

 

Bij het gebruiken van een externe server moet worden opgevraagd welke servers beschikbaar zijn. Dit gaat met het commando speedtest.cli:

# ./speedtest-cli --list
Retrieving speedtest.net configuration...
10644) Jonaz B.V. (Amersfoort, Netherlands) [5.01 km]
26425) ExtraIP (Amersfoort, Netherlands) [5.01 km]
2641) SIT Internetdiensten B.V. (Voorthuizen, Netherlands) [13.46 km]
22507) Flexyz (Harderwijk, Netherlands) [22.02 km]
~
31124) OBE (Brussels, Belgium) [166.65 km]
4812) Universite Catholique de Louvain (Louvain-La-Neuve, Belgium) [178.59 km]

Er volgt een lijst van rond 100 ISP’s, waaruit een keuze kan worden gemaakt.

Deze test is noodzakelijk vanwege het feit dat de plug-in werkt met het ISP-id en niet op naam. Op de command line ziet dit er alsvolgt uit:

# ./check_speedtest-cli.sh -w 120 -c 80 -W 120 -C 80 -l e -s 10644
OK - Ping = 9.03 ms Download = 193.70 Mbit/s Upload = 347.14 Mbit/s

 Hierbij zijn de onderstaande parameters opgegeven

 

  • -w: geef een Warning als de download snelheid onder 120Mbit/s komt.
  • -c:  geef een Critical als de download snelheid onder 80Mbit/s komt.
  • -W: geef een Warning als de upload snelheid onder 120Mbit/s komt.
  • -C:  geef een Critical als de upload snelheid onder 80Mbit/s komt.
  • -l:   externe of interne server
  • -s:  het ID van de ISP

 

Zodra dit allemaal goed functioneert op de command-line kan deze worden opgenomen in de monitoring. 

Configuratie binnen Nagios 

Van deze plug-in is een commando gemaakt, waarbij de benodigde variabelen zijn meegegeven. Bij gebruik als service is het daarna alleen noodzakelijk de waarden op te geven voor de variabelen.

Op deze manier kunnen eenvoudig waarden aangepast worden.

 

Deze service kan nu opgenomen in een hostgroup of gekoppeld worden aan een host. De check komt er onder Nagios XI als volgt uit te zien: 

Op deze manier kan een specifieke plug-in de bandbreedte naar een ISP bewaken en kan via notificaties opvolging worden gegeven aan eventuele afwijkingen.

 

Naast het opnemen van de bewaking binnen Nagios XI is het ook mogelijk dit grafisch weer te geven om over een bepaalde periode inzicht te krijgen in de dienst en of deze nog voldoet aan de initiële wensen en eisen.

De grafieken kunnen in stappen van uren, dagen, maanden of eventueel een in te stellen datum worden opgevraagd, naargelang er data is van de service en de noodzaak ervan. 

Tot slot 

Binnen Nagios Enterprises en de Nagios Community zijn er de meest uiteenlopende plug-ins beschikbaar voor hele specifieke producten en/of toepassingen. Bedrijven kunnen daarmee een nog beter inzicht krijgen in hun omgevingen en infrastructuur met Nagios als integrale oplossing.