MySQLData V2 für IPS V2

Hallo Norbert,

wenn ich das jetzt richtig verstehe, ist die Datenbank konsistent bis du versucht den besagten BOOLEAN hinzuzufügen!?

Tja, das Problem ist wohl in der varconf.php bzw. varconfneu.php zu suchen, in der MySQLDataExport tritt das nur zutage.

Kannst du bitte mal dein Skript varconf.php durch das beigefügte ersetzen und mir das Ergebnis mitteilen. Ich habe mal eine Filterung für bereits parametrierte Variablen eingefügt.

varconf.zip (1.63 KB)

Hallo zusammen,

habe mal eine Frage zu diesem Tool.

Aber vorweg, hatte übersehen das elektrofreak das tool geschrieben hat, sorry.

Meine Frage:

Das Tool von elektrofreak zum bereinigen der Datenbank macht ja sinn, wie kann ich das in V2 nutzen oder ist es garnicht nötig?

@Thorsten oder elektrofreak

kann man eine solche Bereinigung der MySQL Datenbank nicht gleich bei der installation mit einfügen?

Gruß Michael

Hallo Michael,

ich steh jetzt irgendwie auf’m Schlauch. Von welchem Tool sprichst du hier

Kannst du mich mal bitte aufklären? Danke…

Hallo Torsten,

ich vermute Michael meint diesen Beitrag: http://www.ipsymcon.de/forum/f34/mysql-data-wartungs-brick-3153/

Gruß
Otto

Hallo!

Dank des Hinweis von Michael (qs9000) bin ich auf das Wartungs-Brick von elektrofreak aufmerksam geworden, welches aber nur für die V1 funktioniert (V2 hat, zumindestens im Moment, keine Brick-Unterstützung).
Ich habe daher das Brick-Script als Vorlage genommen und ein entsprechendes Wartungsskript geschrieben.

Wer die automatische Datenentsorgung aus seiner mySQL-Datenbank haben möchte, möge bitte das angehängte Skript in sein IPS übernehmen (z.B. in den Editor kopieren, oder als neues Objekt einfügen und dann bestehendes File übernehmen…), im Skript IP-Adresse, Username und Passwort für den mySQL-Server anpassen und die Parameter für die Datenentsorgung festlegen.

Es sind 4 Parameter vorhanden:
$clean_1min, $interval_1min, $clean_all, $interval_all

Je 2 Parameter kontrollieren einen Funktionsblock:

  1. Löschen der Daten mit Polling-Interval 1 Minute:
    $clean_1min schaltet diese Funktion ein (=TRUE) oder aus (=FALSE)
    Mit $interval_1min wird das Maximalalter der Daten festgelegt (in Monaten), d.h. wird $interval_1min auf 3 gesetzt, so werden alle Daten gelöscht, die älter als 3 Monate sind.

  2. Löschen aller Daten:
    $clean_all schaltet diese Funktion ein (=TRUE) oder aus (=FALSE)
    Mit $interval_all wird das Maximalalter der Daten festgelegt (in Monaten), d.h. wird $interval_all auf 6 gesetzt, so werden alle Daten gelöscht, die älter als 6 Monate sind.

Defaulteinstellungen sind:

  • Alle Daten mit Polling-Intervall 1 Minute alter als 6 Monate löschen
  • Alle Daten älter als 12 Monate löschen

Das Wartungsskript sollte am besten via Timer 1 mal im Monat ausgeführt werden.

MySQLDataCleanup.ips.zip (701 Bytes)

Hallo zusammen,

sorry ich war der Meinung du kennst das „Brick“.

Aber super das wir das jetzt auch in V2 nutzen können.

Danke!

Gruß Michael

Hallo,

ich bin seit ein paar Tagen am Testen dieses tollen Skriptes.

Gleich zu Anfang ist mir natürlich der Fehler unterlaufen das ich die Version für die IPS v1 genommen habe, aber jetzt läuft es!

Jetzt suche ich noch nach der Möglichkeit den Skript für die Systemauswertung nutzen zu können. Momentan bekomme ich die angehängten Fehlermeldungen. Muß man diesen Skript auch für die V2 anpassen?

Vielen Dank

JAD

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : SystemInfo.ips.php
Trigger  :
Interval :
*/

$suffix="System";
$initial=true;

// IPS Process Info in IPS Variablen schreiben

if ($initial) {
$IpsIntVars=array($suffix."IpsHandlecount",$suffix."IpsNumthreads",$suffix."IpsVirtualsize",
      $suffix."IpsWorkingsize",$suffix."IpsPagefile",$suffix."ProcessCount");
varfloatcheck($IpsIntVars);
}

$PInfo=Sys_GetProcessInfo();
SetValueFloat($suffix."IpsHandlecount",(Float)$PInfo["IPS_HANDLECOUNT"]);
SetValueFloat($suffix."IpsNumthreads",(Float)$PInfo["IPS_NUMTHREADS"]);
SetValueFloat($suffix."IpsVirtualsize",round($PInfo["IPS_VIRTUALSIZE"]/1024/1024,0));
SetValueFloat($suffix."IpsWorkingsize",round($PInfo["IPS_WORKINGSETSIZE"]/1024/1024,0));
SetValueFloat($suffix."IpsPagefile",round($PInfo["IPS_PAGEFILE"]/1024/1024,0));
SetValueFloat($suffix."ProcessCount",(Float)$PInfo["PROCESSCOUNT"]);

// System Memory Info in IPS Variablen schreiben
if ($initial) {
$IpsIntVars=array($suffix."MemTotalPysical",$suffix."MemAvailPhysical",
   $suffix."MemTotalPageFile",$suffix."MemAvailPageFile",$suffix."MemTotalVirtual",
   $suffix."MemAvailVirtual");
varfloatcheck($IpsIntVars);
}
$MInfo=Sys_GetMemoryInfo();
SetValueFloat($suffix."MemTotalPysical",round($MInfo["TOTALPHYSICAL"]/1024/1024,0));
SetValueFloat($suffix."MemAvailPhysical",round($MInfo["AVAILPHYSICAL"]/1024/1024,0));
SetValueFloat($suffix."MemTotalPageFile",round($MInfo["TOTALPAGEFILE"]/1024/1024,0));
SetValueFloat($suffix."MemAvailPageFile",round($MInfo["AVAILPAGEFILE"]/1024/1024,0));
SetValueFloat($suffix."MemTotalVirtual",round($MInfo["TOTALVIRTUAL"]/1024/1024,0));
SetValueFloat($suffix."MemAvailVirtual",round($MInfo["AVAILVIRTUAL"]/1024/1024,0));

// System CPU Info in IPS Variablen schreiben
if ($initial) {
$IpsIntVars=array($suffix."CPU0",$suffix."CPUAverage",);
varfloatcheck($IpsIntVars);
}
$CPUInfo=Sys_GetCPUInfo();
SetValueFloat($suffix."CPU0",(Float)$CPUInfo["CPU_0"]);
SetValueFloat($suffix."CPUAverage",(Float)$CPUInfo["CPU_AVG"]);

// System HDD Info in IPS Variablen schreiben

$HDDInfo=Sys_GetHardDiskInfo();
$HD=0;
while ($HD < $HDDInfo["NUMDRIVES"]){
 if ($initial) {
  $IpsIntVars=array($suffix."Hdd".$HD."TotalMem",$suffix."Hdd".$HD."FreeMem",);
  $IpsStrVars=array($suffix."Hdd".$HD."Letter",$suffix."Hdd".$HD."Label",);
  varfloatcheck($IpsIntVars);
  varstrcheck($IpsStrVars);
 }
  SetValueFloat($suffix."Hdd".$HD."TotalMem",round($HDDInfo["HDD".$HD]["TOTAL"]/1024/1024,0));
  SetValueFloat($suffix."Hdd".$HD."FreeMem",round($HDDInfo["HDD".$HD]["FREE"]/1024/1024,0));
  SetValueString($suffix."Hdd".$HD."Letter",(string)$HDDInfo["HDD".$HD]["LETTER"]);
  SetValueString($suffix."Hdd".$HD."Label",(string)$HDDInfo["HDD".$HD]["LABEL"]);
$HD=$HD+1;
}

// System Net Info in IPS Variablen schreiben

$NetInfo=Sys_GetNetworkInfo();
$Net=0;
while ($Net < count($NetInfo)){
 if ($initial && $NetInfo[$Net]["MAC"]<>"00-00-00-00-00-00") {
   $IpsIntVars=array($suffix."Net".$Net."InSec",$suffix."Net".$Net."InAvgSec",
    $suffix."Net".$Net."InPeakSec",$suffix."Net".$Net."InTotal",
    $suffix."Net".$Net."OutSec",$suffix."Net".$Net."OutAvgSec",
    $suffix."Net".$Net."OutPeakSec",$suffix."Net".$Net."OutTotal",);

  $IpsStrVars=array($suffix."Net".$Net."IP",$suffix."Net".$Net."Mac",);
  varfloatcheck($IpsIntVars);
  varstrcheck($IpsStrVars);
 }
 if ($NetInfo[$Net]["MAC"]<>"00-00-00-00-00-00") {
  SetValueFloat($suffix."Net".$Net."InSec",round($NetInfo[$Net]["InPerSec"]/1024,3));
  SetValueFloat($suffix."Net".$Net."InAvgSec",round($NetInfo[$Net]["AverageInPerSec"]/1024,0));
  SetValueFloat($suffix."Net".$Net."InPeakSec",round($NetInfo[$Net]["PeakInPerSec"]/1024,0));
  SetValueFloat($suffix."Net".$Net."InTotal",round($NetInfo[$Net]["InTotal"]/1024,0));
  SetValueFloat($suffix."Net".$Net."OutSec",round($NetInfo[$Net]["OutPerSec"]/1024,3));
  SetValueFloat($suffix."Net".$Net."OutAvgSec",round($NetInfo[$Net]["AverageOutPerSec"]/1024,0));
  SetValueFloat($suffix."Net".$Net."OutPeakSec",round($NetInfo[$Net]["PeakOutPerSec"]/1024,0));
  SetValueFloat($suffix."Net".$Net."OutTotal",round($NetInfo[$Net]["OutTotal"]/1024,0));

  SetValueString($suffix."Net".$Net."IP",(string)$NetInfo[$Net]["IP"]);
  SetValueString($suffix."Net".$Net."Mac",(string)$NetInfo[$Net]["MAC"]);

 }
$Net=$Net+1;
}


function varfloatcheck($var){
$i=0;
while ($i < count($var)){
  if (IPS_VariableExists($var[$i])) {
    if (IPS_CreateVariable((string)$var[$i],"Float")) {
      echo $var[$i]."/Float wurde angelegt
";
    }
    else {
       echo $var[$i]."/Float konnte nicht angelegt werden
";
    }
  }
  else {
    echo $var[$i]." existiert bereits
";
  }

$i=$i+1;
}
}

function varstrcheck($var){
$i=0;
while ($i < count($var)){
  if (!IPS_VariableExists($var[$i])) {
    if (IPS_CreateVariable((string)$var[$i],"String")) {
      echo $var[$i]."/String wurde angelegt
";
    }
    else {
       echo $var[$i]."/String konnte nicht angelegt werden
";
    }
  }
  else {
    echo $var[$i]." existiert bereits
";
  }

$i=$i+1;
}
}

?>

Warning: Wrong parameter type for ips_variableexists() in C:\IP-Symcon\scripts\23477.ips.php on line 108
SystemIpsHandlecount existiert bereits 
Warning: Wrong parameter type for ips_variableexists() in C:\IP-Symcon\scripts\23477.ips.php on line 108
SystemIpsNumthreads existiert bereits 
Warning: Wrong parameter type for ips_variableexists() in C:\IP-Symcon\scripts\23477.ips.php on line 108
SystemIpsVirtualsize existiert bereits 
Warning: Wrong parameter type for ips_variableexists() in C:\IP-Symcon\scripts\23477.ips.php on line 108
SystemIpsWorkingsize existiert bereits 
Warning: Wrong parameter type for ips_variableexists() in C:\IP-Symcon\scripts\23477.ips.php on line 108
SystemIpsPagefile existiert bereits 
Warning: Wrong parameter type for ips_variableexists() in C:\IP-Symcon\scripts\23477.ips.php on line 108
SystemProcessCount existiert bereits 
Warning: Variable mit Namen "SystemIpsHandlecount" existiert nicht in C:\IP-Symcon\scripts\23477.ips.php on line 23

usw....

Hallo,

nach dem update bekomme ich folgende Fehlermeldung:

Fatal error: Call to undefined function mysql_connect() in [MySQLDataExport] on line 16

16 $link = mysql_connect($MySQLHost, $username, $password) or die(„Keine Verbindung möglich!“);
17 mysql_select_db(„ipsdata“) or die(„Auswahl der Datenbank fehlgeschlagen“);

Wurde der Befehl „mysql_connect“ geändert?

Viele Grüße und noch ein frohes neues Jahr.

Tinus

Hallo Tinus,
die Fehlermeldung

zeigt, das du die mySQL-Extension im IPS-PHP nicht eingebunden hast (oder sie evtl. nicht funktioniert).
Was sagt denn das Testscript resp. der phpinfo-Befehl - wird dort die mySQL-Erweiterung angezeigt?
Bitte prüfe diese Punkte und gib’ mir ein entsprechendes Feedback.

Super,

die Fehlermeldung

Zitat:
Zitat von tinus
Fatal error: Call to undefined function mysql_connect() in [MySQLDataExport] on line 16

zeigt, das du die mySQL-Extension im IPS-PHP nicht eingebunden hast (oder sie evtl. nicht funktioniert).

nach dem Update waren alle ini Dateien weg! Wieder vom Backup reinkopiert und alles ist gut. Die ini Dateien hatte ich nicht überprüft, hatte es aber auch nicht für möglich gehalten, dass diese durch das Update gelöscht werden.

Danke und Gruß

Tinus

Hallo Tinus,

welches Update meinst Du ? IPS greift beim Updaten des Systems auf deine PHP.ini nicht zu, da Du sie selbst angelegt hast.

Hallo,

ist in der Tat so gewesen. IP-Symcon über IP-Symcon Live aktualisiert und die ini Dateien waren weg. :mad:
Einige Minuten vor dem Update hatte ich mir die Daten mit MySQLData noch angesehen.

Gruß Tinus

Hallo Tinus,

dann würde ich sagen, hast Du irgendeinen Fehler in deinem System.

Hallo,

oder hast du WIIPS installiert, das überschreibt die PHP.ini.:eek:

Ich hatte dadurch den gleichen Fehler.

Fehlende einträge wieder in die PHP.ini und alles wieder ok.

Gruß Michael

Hallo Michael,

oder hast du WIIPS installiert, das überschreibt die PHP.ini.

Wenn dies so ist, die entsprechende PHP.ini bitte mal an Torro schicken. Dieser soll sich mal die Konventionen anschauen oder auf den evtl. Bug prüfen, damit das nicht anderen passiert.

Da hatte ich folgende einträge selbst eingetragen:

extension = php_mysql.dll
extension= php_gd2.dll

nach der installation von WIIPS fehlten diese und ich bekam logischerweise den mySQL Fehler.

scheint so als würde bei der installation von WIIPS eine neue PHP.ini geschrieben oder es werden lediglich die eintragungen auf original geändert.

Gruß Michael

Hallo Michael,

die alte wird als Backup abgelegt, es wird keine neue geschrieben, sondern die alte ergaenzt. ABER: Sie muss der PHP Konvention der php.ini entsprechen. Wenn das nicht so ist, werden automatisch die nicht konformen Abschnitte nicht uebernommen.

Und wie gesagt, wenn dem nicht so ist, dann waere das ein Bug - bisher hat aber jeder nicht die Konventionen eingehalten.

Habe ich es richtig verstanden, dass vor Installation von MySQLData V2 nur der MYSQL Server und auch JPGraph installiert worden sein muss ??

Wäre für einen kurzen Hinweis dankbar

Klaus

Hi,

MYSQL Server: jo

JPGraph: hab ich bei meinemTest nicht installiert, lüppt so.

mfg

BerndJ

PS: Dank an alle Beteiligten, geiles Tool

Ja stimmt ! Habe es auch erst ohne JGraph versucht und sie da, es geht !
Es sind alle notwendigen Dateien von JGraph schon in MySQLData V2 dabei !

Gruss

Klaus