Tuesday, May 21st 2013, 7:58pm UTC+2

You are not logged in.

  • Login
  • Register

freddy4711

Trainee

Posts: 95

Birthday: Feb 17th 1982 (31)

Gender: male

Location: Karlsruhe

Number of monitoring servers: 1

Nagios Version: 3.4.1

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: ca. 300

Number of services: ca. 3000

OS: RedHat 5

Plugin Version: 1.4.4

1

Saturday, July 14th 2012, 1:54pm

[SOLVED] - [BASH] - Variable aus While-Schleife wird nicht durch NRPE durchgereicht

Hallo,

ich versuche ein kleines BASH-Plugin zu schreiben.

Ich bekomme von einem Programm eine CSV-Datei geliefert, welche ich mittels eines kleine BASH-Scriptes einlesen und formatiert per NRPE an Nagios übergebe. Leider bekomme ich keine Daten an Nagios übergeben.

Hier die Dateien und deren Output:

test.csv:

Source code

1
2
3
4
100;10
200;5
300;1
400;20


plugin.sh

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash

COUNTER=0
MESSAGES=""

while IFS=';' read client count; do
  COUNTER=$((COUNTER + count))
  MESSAGES="$MESSAGES\n[$client] - Count is $count."
done < test.csv

SERVICE_OUTPUT="The overall count is $COUNTER."
SERVICE_OUTPUT="$SERVICE_OUTPUT$MESSAGES\n"

echo -en "$SERVICE_OUTPUT"


Wenn ich das Script lokal ausführe erhalte ich folgenden Output:

Source code

1
2
3
4
5
The overall count is 36.
[100] - Count is 10.
[200] - Count is 5.
[300] - Count is 1.
[400] - Count is 20.


Nun versuche ich das Script über NRPE aufzurufen und bekomme folgenden Output:

Source code

1
The overall count is 0.


Es scheint so, als dass die Variablen aus der Schleife nicht herausgereicht werden.


Kann mir jemand helfen?


Gruß Andreas

This post has been edited 1 times, last edit by "freddy4711" (Jul 15th 2012, 8:49am)


Posts: 7,238

Gender: male

Number of monitoring servers: 2

Nagios Version: 3.2.1

Icinga Version: Icinga 1.7.x

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: >70

Number of services: >200

OS: SLES11

Plugin Version: 1.4.15

Other Addons: NRPE 2.6, NSCA 2.7, PNP 0.4.14 / 0.6.18

2

Saturday, July 14th 2012, 2:07pm

Ohne es ausprobiert zu haben: Was passiert, wenn du folgendes schreibst?

Source code

1
2
export COUNTER=0
export MESSAGES=""

freddy4711

Trainee

Posts: 95

Birthday: Feb 17th 1982 (31)

Gender: male

Location: Karlsruhe

Number of monitoring servers: 1

Nagios Version: 3.4.1

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: ca. 300

Number of services: ca. 3000

OS: RedHat 5

Plugin Version: 1.4.4

3

Saturday, July 14th 2012, 2:18pm

Das habe ich auch schon ausprobiert. Leider hilft auch das nicht.

Mich wundert es nur, dass es lokal ausgegeben wird und durch NRPE nicht,

Posts: 7,238

Gender: male

Number of monitoring servers: 2

Nagios Version: 3.2.1

Icinga Version: Icinga 1.7.x

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: >70

Number of services: >200

OS: SLES11

Plugin Version: 1.4.15

Other Addons: NRPE 2.6, NSCA 2.7, PNP 0.4.14 / 0.6.18

4

Saturday, July 14th 2012, 2:57pm

Bist du sicher, daß die Schleife ausgeführt wird, wenn du das Script per NRPE aufrufst?

dnsmichi

Super Moderator

Posts: 5,981

Birthday: May 30th 1983 (29)

Gender: male

Location: Nürnberg

Occupation: Consultant / Developer beim besten Arbeitgeber der Welt @netways

Number of monitoring servers: Icinga: 4x dev, 10++ prod, Icinga2: 2x dev

Nagios Version: s/nagios/icinga/

Icinga Version: 1.9.0 / GIT

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: 1000+

Number of services: 15000+

OS: RHEL, Debian, SUSE

Plugin Version: 1.4.16

IDO-Version: 1.9.0 / GIT MySQL/Postgresql/Oracle

Other Addons: Icinga Web, PNP, check_multi, inGraph, EventDB, LConf

5

Saturday, July 14th 2012, 5:11pm

vermutlich hat der root user mit dem du testest, volle leseberechtigung auf test.csv, waehrend nrpe als nagios user das nicht hat. ich wuerde im plugin auf jeden fall einen check einbauen, ob a. die datei da ist und b. ob diese lesbar ist. wenn nicht, solls an nrpe unknown retourgeben.
+++ Icinga / LConf Developer +++ Senior Consultant at []NETWAYS> +++
+++ Icinga 1.9 || Icinga 2 +++ Icinga Support || IRC +++

freddy4711

Trainee

Posts: 95

Birthday: Feb 17th 1982 (31)

Gender: male

Location: Karlsruhe

Number of monitoring servers: 1

Nagios Version: 3.4.1

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: ca. 300

Number of services: ca. 3000

OS: RedHat 5

Plugin Version: 1.4.4

6

Sunday, July 15th 2012, 12:41am

Bist du sicher, daß die Schleife ausgeführt wird, wenn du das Script per NRPE aufrufst?
Wieso sollte die Schleife nicht ausgeführt werden?

In der nrpe.cfg habe ich folgenden Eintrag:

Source code

1
command[plugin]=/opt/scripts/plugin.sh

Und aufgerufen wird das Script wie folgt:

Source code

1
check_nrpe -H localhost -c plugin 

Quoted

vermutlich hat der root user mit dem du testest, volle leseberechtigung auf test.csv, waehrend nrpe als nagios user das nicht hat. ich wuerde im plugin auf jeden fall einen check einbauen, ob a. die datei da ist und b. ob diese lesbar ist. wenn nicht, solls an nrpe unknown retourgeben.
Ich teste nicht mit dem root user. Ich bin mit dem User nagios angemeldet. Die Dateien test.csv und plugin.sh haben als User und Gruppe nagios:nagios, welcher auch der NRPE User ist.

Posts: 7,238

Gender: male

Number of monitoring servers: 2

Nagios Version: 3.2.1

Icinga Version: Icinga 1.7.x

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: >70

Number of services: >200

OS: SLES11

Plugin Version: 1.4.15

Other Addons: NRPE 2.6, NSCA 2.7, PNP 0.4.14 / 0.6.18

7

Sunday, July 15th 2012, 8:07am

Es wäre nicht das erste Mal, daß der Benutzer eine andere Umgebung als das Script hat und vielleicht wird die Datei nicht gefunden, weil ein relativer Pfad angegeben ist.

freddy4711

Trainee

Posts: 95

Birthday: Feb 17th 1982 (31)

Gender: male

Location: Karlsruhe

Number of monitoring servers: 1

Nagios Version: 3.4.1

Distributed monitoring: Nein

Redundant monitoring: Nein

Number of hosts: ca. 300

Number of services: ca. 3000

OS: RedHat 5

Plugin Version: 1.4.4

8

Sunday, July 15th 2012, 8:48am

Guten Morgen,

ok...ich habe nun den den absoluten Pfad angegeben. Nun klappt es. Danke.

Manchmal hängt's einfach an den kleinen Dinge...


Gruß Andreas

dnsmichi

Super Moderator

Posts: 5,981

Birthday: May 30th 1983 (29)

Gender: male

Location: Nürnberg

Occupation: Consultant / Developer beim besten Arbeitgeber der Welt @netways

Number of monitoring servers: Icinga: 4x dev, 10++ prod, Icinga2: 2x dev

Nagios Version: s/nagios/icinga/

Icinga Version: 1.9.0 / GIT

Distributed monitoring: Ja

Redundant monitoring: Ja

Number of hosts: 1000+

Number of services: 15000+

OS: RHEL, Debian, SUSE

Plugin Version: 1.4.16

IDO-Version: 1.9.0 / GIT MySQL/Postgresql/Oracle

Other Addons: Icinga Web, PNP, check_multi, inGraph, EventDB, LConf

9

Monday, July 16th 2012, 10:06am

wie gesagt - ein check ob die datei ueberhaupt da ist, tut nicht weh - und erleichtert dir die fehlersuche jetzt und auch spaeter mal.
+++ Icinga / LConf Developer +++ Senior Consultant at []NETWAYS> +++
+++ Icinga 1.9 || Icinga 2 +++ Icinga Support || IRC +++