as69
Member
- Registriert
- 5 August 2003
- Beiträge
- 390
- Punkte Reaktionen
- 1
Hallo,
hoffe der Thread ist im richtigen Forum ^^
Zu Test-/Lernzwecken habe ich auf meinem Rechner eine Netzwerkmonitoring Software (Nagios) innerhalb einer VM installiert. Damit "überwache" ich Router, die ich in einer anderen Virtualisierungssoftware gestartet habe (GNS3). Das funktioniert auch soweit.
Nagios besitzt nun diverse Konfig-Files, mit denen einzelne Hosts (also zu überwachende Geräte) definiert werden. Man kann das wohl innerhalb einer großen Datei machen oder für jeden einzelnen Host eine einzelne Datei erstellen.
Nun juckt mich der Forschungsdrang und ich sehe endlich eine Aufgabe, mit der ich Perl/PHP lernen könnte
Ich möchte gerne folgendes erreichen:
- Erstellen einer Webseite, auf der man per Formular weitere Geräte hinzufügen kann (=> neue xyz.cfg erzeugen innerhalb des /etc/nagios3/objects Ordners)
- Das Formular soll eine vordefinierte Eingabemaske haben
- Schön wäre auch, bestimmte Parameter zu überprüfen (z.b. ob eine Datei mit dem Hostnamen bereits existiert) und bei Fehler (=vorhandensein des Parameters) eine Warnmeldung ausgibt und NICHTS weiter macht
- Den Service muß man leider nach einer Konfigänderung neustarten, daher möchte ich mir noch einen "Button" bauen, mit dem ich einen bestimmten Shell-Befehl ausführen kann ("service nagios3 restart")
Wie fange ich am besten an? Womit realisiert man so etwas? Meine bisherige Erfahrung mit Programmierung hält sich sehr in Grenzen, aber ich glaube mit Perl und PHP müsste sowas möglich sein - nur wo fange ich an und in welche Themengebiete muß man sich da reinlesen??? Bin da etwas jungfräulich...
Im Spoiler habe ich mal so ein Textfile angehängt wie ich es mir vorstelle.
Vorne steht jeweils die Variable, dahinter der Wert. Das ganze hat einen Aufbau wie
Manche Parameter referenzieren dann auf andere Files, wie z.b.
- hier würde ich dann gerne den Sicherungsmechanismus einbauen, der ein globales Files ausliest, ob diese Variable bereits definiert ist.
Wie stelle ich sicher, daß das File, das über die WebGui erzeugt wird, auch die richtige Berechtigung hat (user:group, permissions)? Geht das?
Würde mich freuen, wenn hier jemand ist der mir ein bisschen auf die Sprünge helfen kann (wo fange ich an, wo muß ich mich einlesen (php/perl), welche funktionen brauch ich, usw...
mfg
hoffe der Thread ist im richtigen Forum ^^
Zu Test-/Lernzwecken habe ich auf meinem Rechner eine Netzwerkmonitoring Software (Nagios) innerhalb einer VM installiert. Damit "überwache" ich Router, die ich in einer anderen Virtualisierungssoftware gestartet habe (GNS3). Das funktioniert auch soweit.
Nagios besitzt nun diverse Konfig-Files, mit denen einzelne Hosts (also zu überwachende Geräte) definiert werden. Man kann das wohl innerhalb einer großen Datei machen oder für jeden einzelnen Host eine einzelne Datei erstellen.
Nun juckt mich der Forschungsdrang und ich sehe endlich eine Aufgabe, mit der ich Perl/PHP lernen könnte
Ich möchte gerne folgendes erreichen:
- Erstellen einer Webseite, auf der man per Formular weitere Geräte hinzufügen kann (=> neue xyz.cfg erzeugen innerhalb des /etc/nagios3/objects Ordners)
- Das Formular soll eine vordefinierte Eingabemaske haben
- Schön wäre auch, bestimmte Parameter zu überprüfen (z.b. ob eine Datei mit dem Hostnamen bereits existiert) und bei Fehler (=vorhandensein des Parameters) eine Warnmeldung ausgibt und NICHTS weiter macht
- Den Service muß man leider nach einer Konfigänderung neustarten, daher möchte ich mir noch einen "Button" bauen, mit dem ich einen bestimmten Shell-Befehl ausführen kann ("service nagios3 restart")
Wie fange ich am besten an? Womit realisiert man so etwas? Meine bisherige Erfahrung mit Programmierung hält sich sehr in Grenzen, aber ich glaube mit Perl und PHP müsste sowas möglich sein - nur wo fange ich an und in welche Themengebiete muß man sich da reinlesen??? Bin da etwas jungfräulich...
Im Spoiler habe ich mal so ein Textfile angehängt wie ich es mir vorstelle.
Vorne steht jeweils die Variable, dahinter der Wert. Das ganze hat einen Aufbau wie
Code:
define host
{
<variable> <wert>
<variable> <wert>
<variable> <wert>
}
Code:
# Specific File for Device
## EXAMPLE:
#define host{
#
# host_name bogus-router
# alias Bogus Router #1
# address 192.168.1.254
# parents server-backbone
# check_command check-host-alive
# check_interval 5
# retry_interval 1
# max_check_attempts 5
# check_period 24x7
# process_perf_data 0
# retain_nonstatus_information 0
# contact_groups router-admins
# notification_interval 30
# notification_period 24x7
# notification_options d,u,r
#
# }
define host{
host_name R2
alias R2
#display_name display_name
address 192.168.1.252
#parents host_names
hostgroups GNS3_Routers
check_command check-host-alive
#initial_state [o,d,u]
max_check_attempts 5
check_interval 1
retry_interval 3
active_checks_enabled 1
passive_checks_enabled 1
check_period 24x7
#obsess_over_host [0/1]
#check_freshness [0/1]
#freshness_threshold #
#event_handler command_name
#event_handler_enabled [0/1]
#low_flap_threshold #
#high_flap_threshold #
#flap_detection_enabled [0/1]
#flap_detection_options [o,d,u]
#process_perf_data [0/1]
#retain_status_information [0/1]
#retain_nonstatus_information [0/1]
#contacts contacts
contact_groups netzadmins
notification_interval 30
#first_notification_delay #
notification_period 24x7
#notification_options d,u,r
notifications_enabled 1
#stalking_options [o,d,u]
#notes note_string
#notes_url url
#action_url url
#icon_image image_file
#icon_image_alt alt_string
#vrml_image image_file
#statusmap_image image_file
#2d_coords x_coord,y_coord
#3d_coords x_coord,y_coord,z_coord
}
Manche Parameter referenzieren dann auf andere Files, wie z.b.
Code:
hostgroups GNS3_Routers
Wie stelle ich sicher, daß das File, das über die WebGui erzeugt wird, auch die richtige Berechtigung hat (user:group, permissions)? Geht das?
Würde mich freuen, wenn hier jemand ist der mir ein bisschen auf die Sprünge helfen kann (wo fange ich an, wo muß ich mich einlesen (php/perl), welche funktionen brauch ich, usw...
mfg