tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1058
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    aargau aargau ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Schweiz / Fricktal
    Beiträge
    322
    Ich habe mehrere Linux Server im Netz und möchte diese nun gegenseitig überwachen. Zum einen ist mir da Monit ins Auge gestochen, jedoch scheint mir dies nicht ganz genau so zu Funktionieren wie ich es möchte. Da es nur um Webserver geht, hatte ich die idee das ganze per wget zu gestallten heisst sobald ein anderer Server die index Datei vom jeweiligen Server nicht mehr Herunterladen kann, soll ein Programm gestartet werden. Das müsste ja per if... gehen. Da ich allerdings keine Ahnung habe wie das aussehen müsste wäre ich froh wenn mir jemand helfen könnte.

    wget gibt mir dies Zurück, ich denke also das man die Rückgabe von wget durchsuchen müsste und wenn ein Wort davon vorkommt das Programm Starten.

    " wget http://blablablablabla.gibtsnicht
    --2010-01-07 17:26:33-- http://blablablablabla.gibtsnicht/
    Resolving http://blablablablabla.gibtsnicht... failed: Name or service not known.
    wget: unable to resolve host address `http://blablablablabla.gibtsnicht'"

    Vielen Dank schon jetzt
     

  2. #2
    aargau aargau ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Schweiz / Fricktal
    Beiträge
    322
    Habe nun mal was gebastelt und bin hier stehen geblieben:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    #!/bin/bash
    cd /srv/monitoring/srv1/
    wget dieadresse
    #Server2 ONLINE?
    FILE=/srv/monitoring/srv2/index.html
    if [ -f $FILE ];
    then
    echo "Server On"
    rm /srv/monitoring/srv2/index.html
    else
    sendsms ... "*** PORT80 ist auf SERVER1 nicht erreichbar!*** Bitte Kontrollieren!"
    date > /srv/monitoring/srv2/index.html
    fi

    Somit wird per wget die index.html heruntergeladen wenn der Server Online ist und kein SMS versendet. Wenn nun allerdings das File nicht exisitert -> Offline wird ein SMS gesendet und das index.html file erstellt, damit ich nicht alle X Minuten ein SMS kriege (nervig und Teuer). Allerdings habe ich nun das Problem das ich das File wenn der Server Online ist wieder Löschen muss um zu vergleichen ob das file beim nächsten mal wieder geladen werden konnte... Da aber somit immer noch jedes 2. Mal ein SMS versendet wird nicht ganz optimal. Hat jemand eine idee wie ich dieses Problem Lösen kann?
     

  3. #3
    Registriert seit
    Apr 2006
    Ort
    Freiburg
    Beiträge
    290
    Blog-Einträge
    2
    Hiho,

    ich versteh dein Skript nicht ganz, weil du wohl
    irgendwelche lokalen Dateien zu benutzen scheinst - sinn ist doch
    die Remote-Dateien zu prüfen? Wie auch immer, meine Lösung würde so aussehen:

    Code bash:
    1
    2
    3
    4
    5
    6
    
    #!/bin/bash
    HOST="linux23.domain.tld";
    nc -z $HOST 80 ||  { 
      echo "niemand zuhause auf 80";
      sendsms "linux23:80 offline";
    }

    oder falls PhP geprüft werden soll, solltest du eine php-datei z.b "check.php" anlegen, die einfach folgenden Inhalt hat.
    PHP-Code:
    <?php
    print "ok";
    ?>
    und dann auf einem anderen Server:
    Code bash:
    1
    2
    3
    4
    5
    6
    
    #!/bin/bash
    RES=`wget -qO- http://linux23.domain.tld/check.php`;
    [ "$RES" != "ok" ] && {
        echo "PHP hat urlaub ...";
       sendsms "linux23:80 apache or php down";
    };

    Grüße,
    MArc
     
    Kryn.cms - einfach anders.

    "When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)

  4. #4
    aargau aargau ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Schweiz / Fricktal
    Beiträge
    322
    Danke für deine Hilfe, mag sein das mein obiges Script nicht gut ist, wie gesagt habe eigentlich keine Ahnung von den script befehlern bei Linux.

    Deine Variante gefällt mir gut, da gibt es jedoch immer noch das Problem das so jedes mal wenn ich das Script ausführe, was ca all 10minuten sein wird ein SMS bekomme wenn der Server down ist. Dies ist relativ doof wenn ich nicht an den Server kann weil ich in einem meeting oder so bin.
    Man müsste also ev. noch eine Textdatei anlegen das das sms schon gesendet wurde und dann so lange bis der Server wieder online ist nichts mehr zu unternehmen. z.B. so das die Textdatei dann gelöscht wird wenn der Server wieder erreichbar ist.
     

  5. #5
    Registriert seit
    Apr 2006
    Ort
    Freiburg
    Beiträge
    290
    Blog-Einträge
    2
    Oh, sorry, ich wollte dich dadurch nicht persönlich angreifen,
    sondern lediglich sagen, dass ich das anders lösen würde

    Um deine erwähnte konstellation in das Skript einzubauen, musst
    du dir folgende dinge bewusst sein:
    - Wie lege ich Dateien in bash an
    - wie prüfe ich ob eine datei angelegt ist
    und zu guter letzt:
    - Was tue ich, damit die obige Datei gelöscht wird, wenn mein server neugestartet wird.

    Zum letzten punkt musst man wissen, wie du den Server neustartest. Falls
    du es über ssh tust, kannst du ja ein kleines skript im root anlegen, dass dir
    die zwei arbeiten (monitoring-datei von oben löscht und apache neustartet) abnimmt.

    Offtopic: Was tust du denn, dass Apache(php) immer abstürzt? Falls das öfters vorkommt
    (mehr als einmal in 2-3 Monaten) solltest Du diese Problematik wohl zuerst lösen.

    MArc
     
    Kryn.cms - einfach anders.

    "When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)

  6. #6
    aargau aargau ist offline Mitglied Brokat
    Registriert seit
    Oct 2006
    Ort
    Schweiz / Fricktal
    Beiträge
    322
    Zitat Zitat von MArc Beitrag anzeigen
    Oh, sorry, ich wollte dich dadurch nicht persönlich angreifen,
    sondern lediglich sagen, dass ich das anders lösen würde
    Keine Angst, ich fühlte mich sicher nicht angegriffen Ich bin eher froh das du mir diese beispiele gegeben hast.
    Ich werde mich wohl mal etwas ein arbeiten und schauen was daraus wird.

    Die Server fallen eigentlich nie aus, der eine ist jetzt gut ein Jahr ohne restart geloffen, aber dennoch möchte ich mich hald absichern um den ausfall so tief wie möglich zu halten falls doch mal was passiert. Momentan wäre das ganze auch noch nicht schlimm aber es kommen jetzt dann neue Projekte auf den Server.

    Nachmals Danke für die Hilfe!
     

Ähnliche Themen

  1. wget -
    Von Raven280438 im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 09.06.08, 17:36
  2. Serverüberwachung über Dateilese
    Von aschweizer im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 21.09.07, 13:03
  3. wget mit GET-Übertragung
    Von Tabuk im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 24.03.07, 19:04
  4. PHP Script zur Serverüberwachung?
    Von FOLMarco im Forum PHP
    Antworten: 3
    Letzter Beitrag: 23.01.04, 11:08