Thread Linux: Allgemeine Vorgehensweise zu Monitoring-Skript in Perl (22 answers)
Opened by Duff at 2008-08-01 14:38

bloonix
 2008-08-04 18:09
#113072 #113072
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo Duff,

wenn du dir selbst etwas schreiben möchtest, dann solltest du das
Projekt modular aufbauen. Wenn dann einmal der Main-Bereich fertig
ist, kannst du neue Checks sehr einfach hinzufügen.

Die Struktur könnte wie folgt aussehen:

Code: (dl )
1
2
3
4
5
6
bin/monitor.pl
lib/Linux/Monitor.pm
lib/Linux/Monitor/Memory.pm
lib/Linux/Monitor/CPU.pm
lib/Linux/Monitor/Disk.pm
lib/Linux/Monitor/Net.pm


usw. Monitor.pm ist dabei dein Main-Modul, welches von monitor.pl
geladen wird und in dem alles gesteuert wird.

Für jeden Check, den du machen möchtest, solltest du ein extra
Modul schreiben (CPU, Net, Disk, etc). Jedes Modul benötigt dann
Standardroutinen ala

Code: (dl )
1
2
3
sub new { ... }
sub set_options { ... }
sub check { ... }


Dann legst du eine Config an, in der die Checks aktiviert werden:

etc/monitor.conf

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<check>
name = Linux::Monitor::Memory
active = 1
<set_options>
foo = 1
bar = 2
baz = 3
</set_options>
</check>

<check>
name = Linux::Monitor::Net
active = 1
<set_options>
foo = 1
bar = 2
baz = 3
</set_options>
</check>


Somit weißt du, welche Module mit einem "require" geladen werden müssen
und welche Optionen du den Modulen übergibst.

usw usw usw...

Aber ich würde dir eher raten auf ein OpenSource Projekt zurück zu greifen.
Es gibt da ein paar sehr gute... zum Beispiel:

Nagios
Munin
Ganglia
Cacti
Zabbix

Gruss,
bloonix
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread Linux: Allgemeine Vorgehensweise zu Monitoring-Skript in Perl