ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / Announcements / ilogging Beta 1


Seite 1 von 1

Morpheus schrieb am 17.04.2002 um 21:40 Uhr

Dieses kleine Programm ist recht nützliches Monitoring Script, welches alle Änderungen des Status an der DB registriert. Dabei kann der Administrator selbst entscheiden o er sofort via E-Mail gewarnt werden möchte oder ob es reicht einfach das iLogging diese in ein eifach zu lesendes HTML Logfile schreibt. Dabei wird natürlich nicht bei jedem Seitenaufruf ein Logbucheintrag erstellt, sondern es werden nur Ausfallzeiten aufgezeichnet, natürlich wird auch ein Logbucheintrag erstellt wenn die Page wieder online ist. Desweiteren
ist ILogging in der Lage auch darauf zu achten das eine bestimmt Datenbank erhaltenb bleibt. Ist diese nicht verfügbar wird sofort der Admin benachrichtigt.

Zur Technik & Installation:

Diese Script funktioniert wie ein Rahmen. Es includet einfach die Seite wo geloggt werden muss. Die alte seite wird also renamend zu alteseite2.php und in den Configs wird dieses File dann eingetragen.Header() Befehle laufen weiterhin da kein output vor aufruf des Includes gestartet wird.

nur die beiden Files in /log/ müssen mit chmod 777 belegt werden. das wäre dann alles.

Desweiteren müssen nur die Variablen wie Mysql-server etc eingetragen werden

Gedownloaded kannd as Script hier :
http://www.slware.com/index.php?action=dlcenter&opencat=;3;

Wenn Fragen sind...
bitte posten =)

ansonsten viel spass.

Schnassel63 schrieb am 17.04.2002 um 22:06 Uhr

die installation habe ich nicht so richtig gebissen!
Kannst Du das mal bitte so erklären, daß es auch otto-normal verstehen kann
Danke

Morpheus schrieb am 17.04.2002 um 22:21 Uhr

okay nehmen wir mal an du willst deine index.php als Loggingseite nehmen. Dann nimmst du diese Page und benennst sie um, zu index.inc.php zum Beispiel. Danach lädst du die index.php auf deinem Webserver hoch, damit sie den Platz der alten index.php einnimmt (wahrscheinlich musst du die mindex.php umbennen). dann öffnest du die eben hochgeladene Seite und editierst die im Kopf enthaltenen Variablen, so um das Sie passen. Als die Mysql-Daten, die Mail-configs und so weiter. Bei "$config['link_to']" musst du nun die index.inc.phpSind eigentlich überall kommentare vorhanden. wenn du damit fertig bist ist das Script fertig eingestellt. Jetzt muss du nur noch, die beiden log-dateien im Ordner mit 777 chmoden so das das script schreib zugriff hat. Nun bist du komplett fertig.

achja ich habe gerade 2 Bugs gefixt, wäre schön wenn du die dateien nochmal saugen könntest

Adrian schrieb am 20.04.2002 um 08:12 Uhr

Das Script sollte ja auch gehen, wenn man es in eine Datei includet (und den Teil mit den prints und echos weglässt), oder?

Andy schrieb am 20.04.2002 um 15:07 Uhr

jup, tut es problemlos, hab ich zumindest so gemacht.

Heiner schrieb am 20.04.2002 um 15:15 Uhr

Hallo,

kannst du das mal näher beschreiben?
Also mit include und prints und echos raus,
dann entfällt doch das Einbinden im Rahmen
und das Umbenennen ?

Adrian schrieb am 20.04.2002 um 15:33 Uhr

ja

Heiner schrieb am 20.04.2002 um 17:50 Uhr

Wie?

Es sind 2 Reihen mit print Anweisungen, keine mit Echo,
die einfach raus? und sonst nichts?

Und in die index.php vom thwboard dann die mindex.phh includen?

Adrian schrieb am 20.04.2002 um 18:37 Uhr

ja, aber ich würde die datei in der header.inc.php includen

Heiner schrieb am 20.04.2002 um 18:51 Uhr

Es gibt Fehlermeldungen, nur die 2 Reihen mit print
rausnehmen war wohl nicht richtig, wahrscheinlich
gehören da noch irgendwelche Klammern zu oder
was anderes.
Das "ja" als Antwort hat wohl nicht gereicht,
bin leider kein PHP Profi. :(

Adrian schrieb am 20.04.2002 um 18:55 Uhr

<?php
/*
##############################
#        Konfiguration
##############################
*/
// Mysql-Konfiguration
$config['mysql_host'] = 'localhost';
$config['mysql_user'] = 'USER';
$config['mysql_passwd'] = 'PASS';
$config['mysql_db'] = 'DB';
$config['mysql_endclose'] = TRUE; // schliesst die Mysql-Verbindung am ende des Scripts
// Debug-Konfiguration
$config['show_timediff'] = TRUE;// True schaltet die Zeitdifferenz in ms an
// Homepage-Konfiguration
// $config['link_to'] = "index2.php"; // Dies ist das file in das Sich dieses Monitor scruipt einklinkt
// Style-Konfiguration
// $config['copyright_color'] = "#000000";
// Sendmail-Konfiguration
$config['use_mail'] = TRUE; // Schaltet die E-Mail benachrichtigung ein. Ändert Sich der Zustand der Mysql-Datenbank
                         // wird der Administrator sofort benachrichtigt
$config['mail_to'] = "SENDER"; // Empfänger der E-Mail
$config['mail_from'] = "iLog"; // Virtueller Sender der E-Mail

$timediff['start'] = microtime();
// Öffnen der Datenbankverbindung
$mysql_con = @mysql_connect($config[mysql_host],$config[mysql_user],$config[mysql_passwd]);
// Lesen des letzten aufgezeichneten Status
$mysqld_status = fopen("mysql_status.log","r");
$mysqld_last_status = fread($mysqld_status, filesize("mysql_status.log"));
fclose($mysqld_status);
$last_status = explode(":",$mysqld_last_status);
$last_status['type'] = $last_status[1];
$last_status['time'] = $last_status[0];
//DEBUG function
//print($last_status['type']."-".$last_status['time']);

if ( $mysql_con )
{
    // MySQL erreichbar. Nun folgen weitere Tests
    $mysql_db = mysql_select_db( $config['mysql_db'] );
    if ( $mysql_db )
    {
        if (  $last_status['type'] != 'online' ) 
        {
            // Schreibe aktuellen Status
            $mysqld_status = fopen("mysql_status.log","w");
            fwrite($mysqld_status, time().":online");
            // Aktionen wenn die Datenbank nicht vorhanden ist
            $mysqld_log = fopen("mysqld.log.html","a");
            fwrite($mysqld_log, "<font face=\"verdana\" color=\"#00FF00\" size=\"2\">".date("d.m.Y @ H:i:s - ")."MySQL-Server vollständig erreichbar ( Downtime : " . ( time() - $last_status['time'] ) . " Sekunden )<BR></font>\r\n");
            if ( $config['use_mail'] == TRUE )
            {
                // Inhalte der Mail
                $mail_content_online = 'Aktueller Status : ONLINE\r\n Downtime : ' . ( time() - $last_status['time'] ) . " Sekunden";
                $mail_title_online = 'iLogging Status Mail : MySQL Status : Online';
                @mail($config['mail_to'],$mail_title_online , $mail_content_online, "From: $config[mail_from] \nImportance: High");
            }
        }
    }
    else
    {
        if ( $last_status['type'] != 'nodb' )
        {
            // Aktionen wenn die Datenbank nicht vorhanden ist
            $mysqld_log = fopen("mysqld.log.html","a");
            fwrite($mysqld_log, "<font face=\"verdana\" color=\"orange\" size=\"2\">".date("d.m.Y @ H:i:s - ")."Datenbank '" . $config[mysql_db] . "' nicht vorhanden<BR></font>\r\n");
            if ( $last_status['type'] != 'offline' )
            {
                // Schreibe aktuellen Status
                $mysqld_status = fopen("mysql_status.log","w");
                fwrite($mysqld_status, $last_status['time'].":nodb");
            }
            if ( $config['use_mail'] == TRUE )
            {
                // Inhalte der Mail
                $mail_content_nodb = 'Achtung seit ' . date("d.m.Y @ H:i:s - ") . ' ist Die Datenbank ' . $config[mysql_db] . ' nicht mehr erreichbar !';
                $mail_title_nodb = 'iLogging Status Mail : MySQL Status : DB ' . $config[mysql_db] . ' nicht erreichbar';
                @mail($config['mail_to'],$mail_title_nodb , $mail_content_nodb, "From: $config[mail_from] \nImportance: High");
            }
            
        }
    }
}
else
{
    if ( $last_status['type'] != 'offline' )
    {
        // Aktionen wenn der MySQL-Server nicht erreichbar ist
        $mysqld_log = fopen("mysqld.log.html","a");
        fwrite($mysqld_log, "<font face=\"verdana\" color=\"#FF0000\" size=\"2\">".date("d.m.Y @ H:i:s - ")."Mysqld nicht erreichbar<BR></font>\r\n");
        // Schreibe aktuellen Status
        $mysqld_status = fopen("mysql_status.log","w");
        fwrite($mysqld_status, time().":offline");
        if ( $config['use_mail'] == TRUE )
        {
            // Inhalte der Mail
            $mail_content_offline = 'Achtung seit ' . date("d.m.Y @ H:i:s - ") . ' ist der Mysql-Server nicht mehr erreichbar !';
            $mail_title_offline = 'iLogging Status Mail : MySQL Status : Offline';        
            @mail($config['mail_to'],$mail_title_offline , $mail_content_offline, "From: $config[mail_from] \nImportance: High");
        }
    }
    
}
if ( $config['mysql_endclose'] )
{
    mysql_close;
}

$timediff['end'] = microtime();
$timediff['time'] = $timediff['end'] - $timediff['start'];
if ( $config['show_timediff'] )
{
    $timediff['time'] = "( " . round($timediff[time],4) . " ms Arbeitszeit )&nbsp;&nbsp;";
}
else
{
    $timediff['time'] = "";
}

/*
$cline = "<BR><BR><center><font face=\"verdana\" size=\"1\" color=\"$config[copyright_color]\">$timediff[time]iLogging Beta 1 &copy; 2002 By <A HREF=\"mailto:sascha.liehr@slware.com\" style=\"text-decoration:none;color:$config[copyright_color]\"> Sascha Liehr </A> ( <A HREF=\"http://www.slware.com\" style=\"text-decoration:none;color:$config[copyright_color]\">www.slware.com</A> )</center>";

if ( file_exists($config['link_to']) )
{
    include( $config['link_to'] );
}
else
{
    print('<font face="verdana" size="2" color="#FF0000"><strong>iLogging Fatal Error :</strong> '.$config['link_to']." - Datei wurde nicht gefunden. Bitte überprüfen Sie die Pfad bzw die Datei-angabe</font>");
}

print($cline);
*/
?>

Heiner schrieb am 20.04.2002 um 19:18 Uhr

Herzlichen Dank.

Heiner schrieb am 20.04.2002 um 23:41 Uhr

Klappt leider nicht, bekomme immer Fehlermeldung:
permission denied, warning fopen usw. wenn auf
die beiden status.logs zugegriffen wird. Sind auf 777.

Liegt vielleicht am Provider, konnte damals auch mein
Script für einen >Datenbankdump< nicht mehr nutzen.

Originalzitat des Providers:

"der Safemode gehört der Vergangenheit an. Es sind jedoch auf das System
greifende Befehle aus Sicherheitsgründen nicht verfügbar. Schließlich müssen
wir ja verhindern das ein User Dienste beenden oder den Server neu starten kann."

Liegts vielleicht daran?, Was haben die abgeschaltet?


Edit:
Sehe aber gerade, E-Mails habe ich bekommen:

Aktueller Status : ONLINE\r\n Downtime : 1019336234 Sekunden

Aber wie gesagt, das Forum war nicht mehr erreichbar.
Nur Fehlermeldungen.

Adrian schrieb am 21.04.2002 um 07:14 Uhr

Du musst der mysql_status.log und der mysqkd.log.html die Rechte 777 geben
Das mit der Angeblichen Downtime ist klar, weil keine alte Online-Zeilt da ist

Heiner schrieb am 21.04.2002 um 07:21 Uhr

Die beiden status.logs sind auf 777,
hatte ich am Anfang meines Posts geschrieben.

Adrian schrieb am 21.04.2002 um 12:04 Uhr

liegen die dateien im scriptverzeichnis?

Heiner schrieb am 22.04.2002 um 16:14 Uhr

Die beiden log-dateien und die ilog.php befinden
sich im Ordner "LOG" , der wiederum im Verzeichnis "thwboard"

In der header.inc.php, die wiederrum in der index.php
included ist habe ich folgendes reingeschrieben:

include "./log/ilog.php";

gefunden wird das ganze, geht wohl wahrscheinlich
um nicht zulässige, übergreifende Schreibrechte
innerhalb des Webspaces?

Morpheus schrieb am 22.04.2002 um 16:17 Uhr

du musst auch aufpassen das der aufrufe von "filesize()" auch zum richtigen file zielt.

Seite 1 von 1