Server Überwachen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Sv3n
Beiträge: 264
Registriert: 22.07.2013 06:37:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: ZH

Server Überwachen

Beitrag von Sv3n » 25.12.2016 22:08:38

Hallo ich suche für meinen Server ein Script was folgendes überwacht:
  • Server Status - Server Online / Server Offline
  • Hostname
  • IP Adresse / extrene IP Beispiel dyndns.org
  • Logged in User
  • Memory
  • freier Speicher auf Festplatte (en)
  • Server Online seit: Tage Stunde Minuten
  • E-Mail Benachrichtigung bei Änderungen am Server

Hat von euch einer so ein Script für mich?

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: Server Überwachen

Beitrag von sbruder » 25.12.2016 22:52:55

Sv3n hat geschrieben: Hat von euch einer so ein Script für mich?
Ein fertiges nicht, aber es lässt sich leicht zusamenbasteln:

Server online/offline muss von einem Externen Server gemacht werden.

Code: Alles auswählen

ping -c 5 $REMOTE 2>&1 >> /dev/null || echo "down"
Auf dem zu überwachenden System:

Code: Alles auswählen

#!/bin/bash
echo "Hostname: $(hostname)"
echo "IP-Adresse: $(dig +short $DOMAIN)"
echo -e "Eingelogte Benutzer:\n$(w)"
echo -e "RAM-Verbrauch:\n$(free -h)"
echo -e "Festplattennutzung:\n$(df -h|egrep -v '(tmpfs|udev)')"
echo "Uptime: $(uptime|cut -d, -f 1)"
Dazu braucht es: Debianiputils-ping, Debiandnsutils

Die Werte kannst Du in eine Datei schreiben lassen und bei jedem Durchlauf vergleichen lassen und bei Änderung eine Mail (z. B. mit Debianheirloom-mailx) verschicken.
Das ist nur ein Ansatz, die Perfektion kannst Du daraus machen

Benutzeravatar
TRex
Moderator
Beiträge: 8038
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Server Überwachen

Beitrag von TRex » 25.12.2016 23:22:56

Debianserverstats

Ist von den Fertigpaketen am leichtgewichtigsten. Mein absoluter Favorit, wenn es nicht gleich was "großes" wie checkmk/nagios usw mit alarming sein muss. Aber wenn du ein wenig scripten kannst, finde ich die Lösung von sbruder ziemlich gut (und am wichtigsten: erweiterbar).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Sv3n
Beiträge: 264
Registriert: 22.07.2013 06:37:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: ZH

Re: Server Überwachen

Beitrag von Sv3n » 26.12.2016 01:40:53

sbruder hat geschrieben:
Die Werte kannst Du in eine Datei schreiben lassen und bei jedem Durchlauf vergleichen lassen und bei Änderung eine Mail verschicken.
Wie machen ich das mit dem vergleichen und Durchlaufen lassen?


Wenn noch jemand weitere Infos für mich hat dann immer her damit-

schwedenmann
Beiträge: 5525
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: Server Überwachen

Beitrag von schwedenmann » 26.12.2016 08:22:07

Hallo


@TRex
serverstats ist aber was angestaubt (2014) und die Webseite ist tot, es gibt nur den Download bei sourceforge und in Debian gibt es das Programm nur für stable und old-stable ?


collectd wäre auch noch zu erwähnen


mfg
schwedenmann

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: Server Überwachen

Beitrag von sbruder » 26.12.2016 10:47:42

Code: Alles auswählen

#!/bin/bash
$FILES = "hostname domain w ram df uptime"
$DIR = "/var/bbub/bla/" # Mit / am Ende
if [[ ! -e $DIR ]];then
  mkdir ${DIR}w
  for i in $FILES;do
    touch ${DIR}${i}
  done
fi
if [[ $(w|wc -l)  == $(cat ${DIR}w) ]];then
  echo $(w|wc -l) >${DIR}w
else
  mail -s 'Angemeldete Benutzer haben sich geaendert' meinusername <<< $(w)
fi
# Den gleichen if-Block für alles andere benutzen, ggf. mit wc -l (Anzahl der Zeilen)
Ich habe den Code nicht getestet, er sollte aber funktionieren

Sv3n
Beiträge: 264
Registriert: 22.07.2013 06:37:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: ZH

Re: Server Überwachen

Beitrag von Sv3n » 26.12.2016 20:38:23

Hi und vielen dank. In deinem Script steht:

Code: Alles auswählen

mail -s 'Angemeldete Benutzer haben sich geaendert' meinusername <<< $(w)
werden damit alle Änderungen am Server per Mail geschickt, oder nur die Info das Anmeldungen statt gefunden haben?

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: Server Überwachen

Beitrag von sbruder » 26.12.2016 22:52:29

Sv3n hat geschrieben:Hi und vielen dank. In deinem Script steht:

Code: Alles auswählen

mail -s 'Angemeldete Benutzer haben sich geaendert' meinusername <<< $(w)
werden damit alle Änderungen am Server per Mail geschickt, oder nur die Info das Anmeldungen statt gefunden haben?

Code: Alles auswählen

mail                                                                         # Befehl aus heirloom-mailx
-s 'Angemeldete Benutzer haben sich geaendert'  # Betreff setzen
meinusername                                                       # Empfänger setzen
<<<                                                                       # Lese die die Eingabe für den vorigen Befehl von allem was folgt
$(w)                                                                        # Zeige Ergebnis des Befehles »w« (angemeldete Benutzer)
Es werden also nur die angemeldeten Benutzer verschickt.
Die Zeile musst Du also für alles, wofür Du eine Mail bekommen willst kopieren und entsprechend anpassen.

Sv3n
Beiträge: 264
Registriert: 22.07.2013 06:37:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: ZH

Re: Server Überwachen

Beitrag von Sv3n » 27.12.2016 19:27:02

Da ich absoluter Neuling bin auf dem Gebiet was das Script angeht, wäre es vielleicht ganz nett wenn mir das einer zusammen stellen könnte, aus den hier im Thema genannten codes.

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: Server Überwachen

Beitrag von sbruder » 28.12.2016 02:56:40

Sv3n hat geschrieben:Da ich absoluter Neuling bin auf dem Gebiet was das Script angeht, wäre es vielleicht ganz nett wenn mir das einer zusammen stellen könnte, aus den hier im Thema genannten codes.
Also ganz vorschreiben will ich es Dir nicht, irgendwas soll man ja auch lernen.

Hier mal das erste Skript mit Kommentaren:

Code: Alles auswählen

# echo gibt eine Zeile aus
echo "Hostname: $(hostname)"  # $(BEFEHL) ist ein Platzhalter für die ausgabe von BEFEHL; hostname gibt den aktuellen hostnamen aus
echo "IP-Adresse: $(dig +short $DOMAIN)" # dig zeigt die IP-Adresse zu einer Domain. Der Parameter +short zeigt nur die IP-Adresse
# echo mit der Option -e unterstützt sogenannte escape sequences. Die Wichtigste ist \n (Zeilenumbruch)
echo -e "Eingelogte Benutzer:\n$(w)" # w zeigt die angemeldeten Benutzer
echo -e "RAM-Verbrauch:\n$(free -h)" # free zeigt den RAM-Verbruch; -h zeigt eine Ausgabe in Mega-/Gigabyte statt Kilobyte
# Mit einer sogennanten Pipe (|) gibt man die Ausgabe eines Befehles als Eingabedatei an einen anderen
echo -e "Festplattennutzung:\n$(df -h|egrep -v '(tmpfs|udev)')" # df zeigt die Festplattennutzung; -h macht das gleiche wie bei free;egrep sucht mit regulären Ausdrücken und filtert alles mit tmpfs und udev (keine echten Festplatten, nur virtuelle Dateisysteme)
echo "Uptime: $(uptime|cut -d, -f 1)" # uptime zeigt die Laufzeit des Servers; cut »schneidet« anhand von Trennzeichen Felder aus; -d gibt den Trenner an (,) -f gibt das Feld an
Wenn es noch fragen gibt, frag einfach nach.

Das zweite Beispiel kann ich Dir nicht erklären (bin kein guter »Lehrer«). Schau dir aber mal das Shell-Handbuch bei Wikibooks an [1]. Ist für die Serveradministration ziemlich nützlich wenn nicht sogar notwendig.

[1] https://de.wikibooks.org/wiki/Linux-Pra ... rammierung

Antworten