IPKG und NRPE auf DS110j

Status
Für weitere Antworten geschlossen.

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo @all,

ich habe eine DS110j und darauf IPKG installiert.
Das Installieren von Anwendungen geht über IPKG ohne Weiteres.

Um meine Box mit Nagios zu überwachen habe ich nrpe installiert und auch den entsprechenden Server in der nrpe.cfg eingetragen.

Aber wenn ich über -> DiskStation> ./optware.sh start versuche die installierten Dienste zu starten, bekomme ich diese Ausgabe:

-Starting nrpe: /opt/etc/init.d/S99nrpe: line 60: daemon: not found-

Hat jemand das schon mal zum Laufen bekommen?

Greetz the_hg2003
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
zeig doch mal den Code von S99nrpe, sonst ist heiteres Raten angesagt :)
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Oh äh ja ;-) sorry.

[...
#!/bin/sh
#
# Created 2000-01-03 by jaclu@grm.se
#
# nrpe This shell script takes care of starting and stopping
# nrpe.
#
# chkconfig: 2345 80 30
# description: nrpe is a daemon for a remote nagios server, \
# running nagios plugins on this host.
# processname: nrpe
# config: /usr/local/nagios/etc/nrpe.cfg


# Source function library
if [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
elif [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/functions ]; then
. /etc/rc.d/functions
fi

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

NrpeBin=/opt/sbin/nrpe
NrpeCfg=/opt/etc/nrpe.cfg
LockFile=/var/lock/subsys/nrpe

# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting nrpe: "
daemon $NrpeBin -c $NrpeCfg -d
echo
touch $LockFile
;;
stop)
# Stop daemons.
echo -n "Shutting down nrpe: "
killproc nrpe
echo
rm -f $LockFile
;;
restart)
$0 stop
$0 start
;;
status)
status nrpe
;;
*)
echo "Usage: nrpe {start|stop|restart|status}"
exit 1
esac

exit 0

....]
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
da wird scheinbar daemon nicht gefunden. Ich würde mal bei #Source function library noch ein else anfügen und dort ein echo 'Error' && exit 1 rein. Dann das Script nochmals aufrufen. Wird 'Error' ausgegeben?
Habe irgendwie das Gefühl diese Pfade werden nicht gefunden. imho müssten diese unter /opt liegen
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.158
Punkte für Reaktionen
405
Punkte
393
Hallo,
daemon $NrpeBin -c $NrpeCfg -d
die DS kennt keinen Befehl daemon, Lösung hab ich jetzt aber auch nicht parat.

Gruß Götz
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Bei mir hat NRPE nie funktioniert mit dem Startupscript. Habs dann mit nrpe -c /opt/nrpe/nrpe.cfg gestartet. Braucht aber noch eine Angabe ob Standalone oder inetd, die kenne ich aber grad nicht.
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Hallo,

soooo jetzt läuft nrpe erst mal auf der Box viele Dank dafür. Mit nrpe -c /opt/etc/nrpe.cdf -d läuft es.
Ich habe mir auch ein Script geschrieben zum Neustarten des NRPE-Dienstes.

Im Moment bin ich noch am knobeln, warum 'check_nrpe!check_irgendwas' immer mit '(No output returned from plugin)' quittiert wird.
Also habe ich es einfach erstmal umgebogen in z.B.:

/usr/lib/nagios/plugins/check_nrpe -H BOX-IP -c check_load

und das dann so in die comman.cfg bei meinem Nagios-Server reingeschrieben.

Wenn ihr wollt kann ich nochmal alle Schritte zusammenfassen und hier quasi als kleine HowTo posten?

Greetz
the_hg2003
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Hast du die Nagios-Plugins drauf? Und /usr/lib wirds nicht sein, eher /opt/*.

Gruss,
ubuntu
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Moin,

ja, die Plugins sind installiert - (ipkg install nagios-plugins).
Der Pfad zu den Plugins auf der Box ist - /opt/libexec/

Der Pfad /usr/lib/nagios/plugins/ ist auf dem Server :)

nagios_screen_beta.jpg

Greetz
the_hg2003
 

killswitch

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Wie hast du das denn gemacht?

Also wie sieht die Konfiguration auf dem Nagios-Server aus? Wäre cool, wenn du das mal Schritt für Schritt erklärst.
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
@killswitch

Bin gerade dabei ne Anleitung zu basteln.
Die kommt natürlich dann auch in diesen Thread.

Greetz
the_hg2003
 

killswitch

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Super danke!

Wie lange dauert das ca.? Wollte das bei mir nämlich gerade einrichten?

Killswitch
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Guten Morgen,
ich werde mich, wenn ich heute im Büro bin daran setzen und so schnell wie möglich posten.

Greetz
the_hg2003
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
So, mich hat das dann doch nicht in Ruhe gelassen:

Anleitnug Installation von NRPE auf der Synology DS110j.

Zur Überwachung der DiskStation über den Dienst "Nagios" verwende ich folgende
Komponenten:

Nagios-Server: Igel TC 5/4 mit Debian 6.
Nagios-Client: NRPE installiert via IPKG

Vorbereitung auf dem Debian-Hostsystem:
- apt-get update && apt-get -y upgrade
- apt-get install nagios3 (es werden alle nötigen Pakete mit installiert - apache2, php, dnsutils, smbclient, etc.)
- apt-get install nagios-plugins nagios-nrpe-plugin nagios-plugins-basic (zum Selbsttest, einige sind davon wahrscheinlich nicht notwendig).

Während der Installation ist die Eingabe von Zugangsdaten für die Nagios WebGUI erforderlich.
Die Einrichtung des smbclients, also des Linux-Clients für die Samba-Umgebung benötigt den Namen Workgroup.
Sollten Sie eine Domäne mit einem PDC betreiben und den Nagios-Monitoring-Server dort einbinden wollen,
ist die Installation vom vollständigen Samba-Paket nötig.

Nach der Installation von Nagios3, lässt sich die WebGUI bereits aufrufen - unter http://ipadresse_des_servers/nagios3

sfm_hidrive.1.jpg


und nach dem Login sieht es so aus:

sfm_hidrive.2.jpg

unter Services sieht es dann so aus:

sfm_hidrive.3.jpg

Im Grunde ist die Basisinstallation von Nagios abgeschlossen.
Kommen wir nun zum Konfigurieren.

Nagios setzt sich aus vielen Konfigurationsdateien (*.cfg) zusammen.
Es können so genannten "Host Groups" und "Service Groups" gebildet werden.
Darauf gehe ich jetzt hier nicht ein.
Hier ein grober Überblick über die einzelnen Config-Dateien:

Bei Debian 6 befinden sich die Config-Dateien im Verzeichnis /etc/nagios3
Die Datei nagios.cfg beinhaltet alle Pfade zu den restlichen *.cfg-Dateien, zu den Logfiles und sehr viele weitere
Angabe zu Intervallen, Usern etc. mit knapp 1300 Zeilen auch sehr viel Lesestoff.

In der Datei resoucre.cfg befindet sich die Angabe $USER1$ - welch den Pfad zu den Plugins angibt.
Es können hier natürlich noch weitere Verzeichnisse angegeben werden, dann aber mit $USER2$ etc.

In der Datei commands.cfg können einzelne commands, also Befehle für den NagiOS-Check konfiguriert werden
dazu mehr unter "Eigene Commands".

In der Datei cgi.cfg werden grundlegende Angaben des Webservers - Homeverz. für Nagios-WebGUI, Pfad der nagios.cfg, berechtigte User etc.
Es sind nur 370 Zeilen, mit Kommentaren.

Die Konfigurationsdateien zu den einzelnen Hosts, den "Host Groups", Kontakten, etc. befinden sich im Unterverzeichnis ./conf.d

Nehmen wir uns als erstes die Datei "/etc/nagios3/conf.d/contacts_nagios2.cfg" vor.
Hier können wir die E-Mailadresse eingeben, welche Statusmeldungen, Warnungen und so genannte Recoverys bekommen soll.
#----------------------
# In this simple config file, a single contact will receive all alerts.

define contact{
contact_name root
alias Root
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email root@localhost <--------------- E-Mailadresse
}
#----------------------

Es können auch weitere User dieser Gruppe hinzugefügt werden.
Die Konfiguration der Gruppe stehe ebenfalls in dieser Datei und sieht folgendermaßen aus:

#----------------------

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members root
}

#----------------------

Die Einrichtung des lokalen E-Mailservers beschreibe ich hier nicht.
Daher belassen wir die E-Mailadresse auf "root@localhost".
Mit dem Befehl "mail" lässt sich in einer Shell auch auf erhaltene E-Mails (@localhost) zugreifen.
Vorrausgesetzt ein entsprechendes Programm ist installiert.

Kommen wir nun zum interessanten Teil, die Einrichtung des Hosts den wir prüfen wollen - unsere Synology DS110j.
Jeder Host sollte zu einer "Host Group" gehören, wer mehrere Hosts einer "Art" hat sollte diese in solchen Gruppen
auch anlegen. Hier ein Beispiel einer solchen Gruppe - ich habe sie "Linux-Box" genannt.

#----------------------
define host {
name linux-box ; Name of this template
use generic-host ; Inherit default values
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}
#----------------------

In der Config-Datei des Hosts tauch diese Gruppe wieder auf.

#----------------------
define host{
use linux-box ; Inherit default values from a template
host_name DiskStation ; The name we're giving to this server
alias Synology DS110j ; A longer name for the server
address IP-Adresse ; IP address of the server
}
#----------------------

Im weiteren Verlauf können einzelne Services für diesen Host erstellt werden, diese wiederum werden aus der
/etc/nagios3/commands.cfg ausgelesen.
NRPE benötigen wir um den Status des Client abzufragen, dazu werden Befehle von unserem NagiOS-Server auf den Client zu übertragen.
Der NRPE-Check setzt sich immer aus der IP-Adresse des Hosts und dem auszuführenden Command zusammen.

Also (ich nehme mal den kompletten Pfad): /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c Command
Dies kann auch so auf der Shell ausgeführt werden:

"/usr/lib/nagios/plugins/check_nrpe -H IP-Adresse" gibt uns die aktuelle NRPE-Version auf dem Client zurück:
#----------------------
root@nagiosmonitor:# /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse
NRPE v2.6
#----------------------

"/usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c check_disk1" gibt uns die aktuelle Belegung der Festplatte wieder
#----------------------
root@nagiosmonitor:# /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c check_disk1
DISK OK - free space: /volume1 442846 MB (95%);| /volume1=22070MB;464896;464906;0;464916
#----------------------

In der command.cfg sieht das dann wie folgt aus:

#----------------------commands.cfg----------------------#

###### Load der DS110j ###################################
define command {
command_name check_DS110j_disk1
command_line /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse -c check_disk1
}

#--------------------------------------------------------#

In der Konfigurationsdatei der DS110j so:

#----------------------DS110j.cfg------------------------#

define service {
use generic-service
host_name DiskStation
service_description /dev/sda1 Free Space
check_command check_DS110j_disk1
}
#--------------------------------------------------------#

Im Moment sieht unsere Ausgabe allerdings noch so aus:

root@nagiosmonitor:~# /usr/lib/nagios/plugins/check_nrpe -H IP-Adresse
Connection refused by host
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Kommen wir nun zur Konfiguration des NRPE auf der DS110j.

Dabei muss ich gleich darauf hinweisen, dass hier einiges an Konfigurationsarbeit zu erledigen ist.
Weiterhin werden Programme installiert, welche nicht vom Hersteller Synology sind und damit eine
Gefährdung der Hardware zur Folgen haben können.

Um NRPE installieren zu können ist die vorherige Installation von IPKG nötig.
Ihr findet eine Anleitung unter IPKG.

Um IPKG installieren und NRPE konfigurieren zu können ist die Einrichtung und Aktivierung des SSH-Dienstes notwendig.
Zu finden unter Systemsteuerung -> Terminal.

screenshot.6.jpg

Dann ist der Login via SSH möglich.
Wir werden von unserer DiskStation begrüßt:

#----------------------
BusyBox v1.16.1 (2012-05-10 02:27:56 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

DiskStation>
#----------------------

Wenn IPKG installiert ist, kann man sich mit "ipkg list" alle möglichen Pakete anzeigen lassen.
Uns interessiert aber nur "nrpe" und "nagios-plugins".
Also installieren wir diese über:

#----------------------
"ipkg install nrpe nagios-plugins"
#----------------------

Mit dem "vi" machen wir uns dann an die Konfiguration.
Zu finden sind die Dateien unter;

NRPE-Config /opt/etc/nrpe.cfg
NagiOS-Plugins /opt/libexec/

Die nrpe.cfg:

Hier kann der Port eingestellt werden auf dem das NRPE-Plugin seine Informationen überträgt.
Der Standard-Port ist 5666, ich stelle diesen der guten Übersicht halber nicht um.

Die Server-Adresse.
Bitte beachtet, das NRPE sich hier als Server sieht - daher ist hier die IP-Adresse des NRPE-Servers, also der DS110j
einzutragen.
# SERVER ADDRESS
server_address=IP-Adresse

Der NagiOS-Server
Die Adresse des NagiOS-Server wird unter dem Eintrag "allowed_hosts" erfasst.
# ALLOWED HOST ADDRESSES
allowed_hosts=NagiOS-IP-Adresse

Im unteren Teil der .cfg werden wie in der commands.cfg auf dem NagiOS-Server die einzelnen Commands definiert.

# COMMAND DEFINITIONS
# command[<command_name>]=<command_line>

Hier sind meine Beispiele:

#----------------------
command[check_load]=/opt/libexec/check_load -w 4,2,1 -c 10,5,1
command[check_disk1]=/opt/libexec/check_disk -w 20 -c 10 -p /dev/sda3
command[check_rsync_hidrive]=/opt/libexec/check_rsync --remote-host rsync.hidrive.strato.com
command[check_users]=/opt/libexec/check_users.sh
command[check_swap]=/opt/libexec/check_swap -av -w 50% -c 25%
#----------------------

Um diese Datei - "nrpe.cfg" - mit NRPE starten zu lassen, nehmen wir nicht das Startscript, sondern
wir nutzen einfach die Befehlszeile:

#----------------------
/opt/sbin/nrpe -c /opt/etc/nrpe.cfg -d
#----------------------

Jetzt erhalten wir auch auf dem NagiOS-Server eine entsprechende Antwort von der DS110j.

:~# NRPE v2.6

Da die einzlenen Services auch in einer Datei zusammengefasst werden können, kommen wir nun zum Aufbau der
Konfiguration der DS110j.cfg auf dem NagiOS-Server.

Im oberen Teil habe ich schon erläutert wie die einzelnen "commands" definiert werden.
Jetzt kommen wir zur Anwendung dieser "commands".

Die Konfigurations-Datei eines Hosts setzt sich aus dem Host-Teil und den Services zusammen:

#----------------------Host-Teil----------------------#
define host{
use linux-box ; Inherit default values from a template
host_name DiskStation ; The name we're giving to this server
alias Synology DS110j ; A longer name for the server
address IP-Adresse ; IP address of the server
}
#-----------------------------------------------------#


Der Services-Teil:

#----------------------Services-Teil------------------------#

define service {
use generic-service ; Inherit default values from a template
host_name DiskStation ; Hostname vom Host-Teil
service_description /dev/sda1 Free Space ; Beschreibung in der NagiOS-WebGUI
check_command check_DS110j_disk1 ; Check aus der command.cfg
}
#-----------------------------------------------------------#

Wenn alle gewünschten Services für die DS110j auf dem NagiOS-Server defniert sind, empfehle ich
vorher immer erst einen Check der Konfigurationsdateien mittels:

#----------------------
/usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
#----------------------

Wenn diese Eingabe mit einem:

#----------------------
Total Warnings: 0
Total Errors: 0

Things look okay - No serious problems were detected during the pre-flight check
#----------------------

quittiert wird, kann man mit:

#----------------------
/etc/init.d/nagios3 restart
#----------------------

Nagios3 neustarten und dann die WebGUI wieder aufrufen.
Jetzt sollte das Ganze so aussehen:

screenshot.7.jpg

Ich hoffe ich konnte euch mit dieser kleinen Anleitung helfen.
Bei weiteren Fragen versuche ich natürlich zu helfen.

Greetz
the_hg2003
 
Zuletzt bearbeitet:

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Gute Anleitung :) Aber ich hätte icinga anstatt Nagios genommen, die Konfiguration ist genau dieselbe jedoch ist das Interface von Icinga wesentlich besser :)

Gruss, ubuntu
 

the_hg2003

Benutzer
Mitglied seit
21. Jun 2012
Beiträge
17
Punkte für Reaktionen
0
Punkte
0
Danke, ja - das gucke ich mir auch noch mal an.
Aber so erfüllt es erstmal seinen Zweck :)

Greetz
the_hg2003
 

killswitch

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
@the_hg2003
Danke für die Anleitung. Echt super gemacht. Hab aber einen Fehler bei mir. CHECK_NRPE: Error - Could not complete SSL handshake. Nutze die DS211+. Hast du eine Ahnung wie ich das behebe?

Danke schonmal.

Killswitch
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Richtige IP im NRPE Daemon zugelassen?
 

killswitch

Benutzer
Mitglied seit
03. Mai 2011
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Ja, hab ich. Wie starte ich den Daemon den richtig neu?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat