Regina Schaukrug: Wie Ausfallhäufigkeit Webserver am besten Tracken?

Beitrag lesen

Habt Ihr eine Idee, einen Tipp oder ein Best-Practice für solch ein Tracking zur Hand?

Werkzeug reicht nicht. Ideen muss haben.

#!/bin/bash

### Configuration: ###

proto="http";
host="www.deinkunde.example.org";
seite="track.txt"; # Möglichst kleine, statische Ressource
logname="WebseitenTracking";

### Config. But if you doubt let this as is: ###

agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0"';
testname='google-public-dns-a.google.com';

### Program: ###

cd /tmp;
url="${proto}://${host}/${seite}";

while [ 1 = 1 ]; do

  testhost=$(nslookup ${testname} 8.8.8.8);

  if [ "0" = "${?}" ]; then

    logger -t "${logname}" "Namensauflösung/Internetverbindung funktioniert.";
    wget --delete-after --user-agent="$agent" ${url};

    if [ "0" = "${?}" ]; then
      logger -t "${logname}" "Notiz: ${url} erfolgreich abgerufen";
    else
      logger -t "${logname}" "Fehler: ${url} konnte trotz bestehender Verbindung nicht abgerufen werden.";
      nslookup ${host} | logger -t "${logname}";
      ping -c1 ${host} | logger -t "${logname}";
    fi
    
  else 
    logger -t "${logname}" "Fehler: Namensauflösung/Internetverbindung funktioniert nicht.";
  fi
  sleep 30;

done;
  1. Starten auf einem Linux-Rechner (am besten ein stromsparender Dauerläufer wie einem Raspi, Banana ...) mit screen DeinSkriptName.sh.

  2. Die Ergebnisse finden sich, wenn nicht von Dir anders konfiguriert, im Standard-Logfile Deines Systems.

  3. Man kann das soweit treiben, dass es als Service läuft, in Datenbanken loggt, mails verschickt und Dir die Schuhe putzt.

  4. Freilich nur unter Linux.

  5. Manuals:

  • man 1 bash,
  • man 1 screen,
  • man 1 logger,
  • `man 1 logrotate,
  • man 1 [syslog, syslog-ng, rsyslog, ...],
  • man 1 wget,
  • man 1 [tail, grep].
  • man 1 test oder man 1 [,

Das Letzte ist kein Scherz.