mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-09 18:45:54 +02:00
2nd step for 2.3 tuning
This commit is contained in:
@@ -30,7 +30,7 @@ require "${General::swroot}/lang.pl";
|
||||
require "${General::swroot}/header.pl";
|
||||
|
||||
my $ERROR;
|
||||
my $rrdlog = "/var/log/rrd/";
|
||||
my $rrdlog = "/var/log/rrd";
|
||||
my $graphs = "/srv/web/ipfire/html/graphs";
|
||||
$ENV{PATH}="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin";
|
||||
|
||||
@@ -46,8 +46,8 @@ my %sensorsettings = ();
|
||||
# If the collection deamon is working and collecting lm_sensors data there will be
|
||||
# some data source named after a common scheme, with the sensorssettingsfile
|
||||
# the user is able to deactivate some of this parameters, in case not to show
|
||||
# false collected value´s may be disable. The user has the ability to ente
|
||||
# custom graph names in order to change temp0 to cpu or motherboad
|
||||
# false collected values may be disable. The user has the ability to enter
|
||||
# custom graph names in order to change temp0 to cpu or motherboard
|
||||
|
||||
my $key;
|
||||
my $value;
|
||||
@@ -85,9 +85,9 @@ if ((${Lang::language} eq 'el') ||
|
||||
} else {%tr=%Lang::tr;}
|
||||
|
||||
# Generate a nice box for selection of time range in graphs
|
||||
# this will generate a nice iframe for the cgi requesting every klick for
|
||||
# this will generate a nice iframe for the cgi every klick for
|
||||
# the graph will be handled inside the iframe
|
||||
# 0 is the cgi revering to
|
||||
# 0 is the cgi refering to
|
||||
# 1 is the graph name
|
||||
# 2 is the time range for the graph
|
||||
# 3 if given is the height of the iframe default if nothing is given
|
||||
@@ -135,7 +135,12 @@ sub updatecpugraph {
|
||||
"-v ".$Lang::tr{'percentage'},
|
||||
"--color=SHADEA".$color{"color19"},
|
||||
"--color=SHADEB".$color{"color19"},
|
||||
"--color=BACK".$color{"color21"}
|
||||
"--color=BACK".$color{"color21"},
|
||||
"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j"
|
||||
);
|
||||
|
||||
my $nice = "CDEF:nice=";
|
||||
@@ -692,7 +697,6 @@ sub updatewirelessgraph {
|
||||
"--alt-y-grid",
|
||||
"-w 600",
|
||||
"-h 125",
|
||||
"-r",
|
||||
"-t Wireless ".$interface." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period},
|
||||
"-v dBm",
|
||||
"--color=SHADEA".$color{"color19"},
|
||||
@@ -720,14 +724,204 @@ sub updatewirelessgraph {
|
||||
print "Error in RRD::graph for wireless: ".$ERROR."\n" if $ERROR;
|
||||
}
|
||||
|
||||
# Generate the HDD Temp Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehddgraph {
|
||||
my $disk = $_[0];
|
||||
my $period = $_[1];
|
||||
RRDs::graph(
|
||||
"-",
|
||||
"--start",
|
||||
"-1".$period,
|
||||
"-aPNG",
|
||||
"-i",
|
||||
"-z",
|
||||
"-W www.ipfire.org",
|
||||
"--alt-y-grid",
|
||||
"-w 600",
|
||||
"-h 125",
|
||||
"-r",
|
||||
"-t ".$disk." ".$Lang::tr{'harddisk temperature'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period},
|
||||
"-v Celsius",
|
||||
"--color=SHADEA".$color{"color19"},
|
||||
"--color=SHADEB".$color{"color19"},
|
||||
"--color=BACK".$color{"color21"},
|
||||
"DEF:temperature=".$rrdlog."/hddtemp-$disk.rrd:temperature:AVERAGE",
|
||||
"DEF:standby=".$rrdlog."/hddshutdown-$disk.rrd:standby:AVERAGE",
|
||||
"CDEF:st=standby,INF,*",
|
||||
"AREA:st".$color{"color20"}."A0:standby",
|
||||
"LINE3:temperature".$color{"color11"}."A0:$Lang::tr{'hdd temperature in'} C\\j",
|
||||
"COMMENT:$Lang::tr{'maximal'}",
|
||||
"COMMENT:$Lang::tr{'average'}",
|
||||
"COMMENT:$Lang::tr{'minimal'}",
|
||||
"COMMENT:$Lang::tr{'current'}\\j",
|
||||
"GPRINT:temperature:MAX:%3.0lf Grad C",
|
||||
"GPRINT:temperature:AVERAGE:%3.0lf Grad C",
|
||||
"GPRINT:temperature:MIN:%3.0lf Grad C",
|
||||
"GPRINT:temperature:LAST:%3.0lf Grad C\\j",
|
||||
);
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::graph for hdd-".$disk.": ".$ERROR."\n" if $ERROR;
|
||||
}
|
||||
|
||||
# Generate the Temp Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehwtempgraph {
|
||||
my $period = $_[0];
|
||||
|
||||
my @command = (
|
||||
"-",
|
||||
"--start",
|
||||
"-1".$period,
|
||||
"-aPNG",
|
||||
"-i",
|
||||
"-z",
|
||||
"-W www.ipfire.org",
|
||||
"--alt-y-grid",
|
||||
"-w 600",
|
||||
"-h 125",
|
||||
"-r",
|
||||
"-t ".$Lang::tr{'sensors temp'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period},
|
||||
"--color=SHADEA".$color{"color19"},
|
||||
"--color=SHADEB".$color{"color19"},
|
||||
"--color=BACK".$color{"color21"},
|
||||
"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j"
|
||||
);
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /temperature/ ) {
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"DEF:".$sensorsettings{'LABEL-'.$label}."=".$_.":value:AVERAGE");
|
||||
}
|
||||
}
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /temperature/ ){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"LINE3:".$sensorsettings{'LABEL-'.$label}.random_hex_color(6)."A0:".sprintf("%-25s",$sensorsettings{'LABEL-'.$label}),"GPRINT:".$sensorsettings{'LABEL-'.$label}.":MAX:%3.2lf C","GPRINT:".$sensorsettings{'LABEL-'.$label}.":AVERAGE:%3.2lf C","GPRINT:".$sensorsettings{'LABEL-'.$label}.":MIN:%3.2lf C","GPRINT:".$sensorsettings{'LABEL-'.$label}.":LAST:%3.2lf C\\j",);
|
||||
}
|
||||
}
|
||||
|
||||
RRDs::graph (@command);
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::graph for HDD Temp: ".$ERROR."\n" if $ERROR;
|
||||
}
|
||||
|
||||
# Generate the Fan Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehwfangraph {
|
||||
my $period = $_[0];
|
||||
|
||||
my @command = (
|
||||
"-",
|
||||
"--start",
|
||||
"-1".$period,
|
||||
"-aPNG",
|
||||
"-i",
|
||||
"-z",
|
||||
"-W www.ipfire.org",
|
||||
"--alt-y-grid",
|
||||
"-w 600",
|
||||
"-h 125",
|
||||
"-r",
|
||||
"-t ".$Lang::tr{'mbmon fan'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period},
|
||||
"--color=SHADEA".$color{"color19"},
|
||||
"--color=SHADEB".$color{"color19"},
|
||||
"--color=BACK".$color{"color21"},
|
||||
"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j"
|
||||
);
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /fanspeed/ ) {
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"DEF:".$sensorsettings{'LABEL-'.$label}."=".$_.":value:AVERAGE");
|
||||
}
|
||||
}
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /fanspeed/ ){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"LINE3:".$sensorsettings{'LABEL-'.$label}.random_hex_color(6)."A0:".sprintf("%-25s",$sensorsettings{'LABEL-'.$label}),"GPRINT:".$sensorsettings{'LABEL-'.$label}.":MAX:%3.2lf RPM","GPRINT:".$sensorsettings{'LABEL-'.$label}.":AVERAGE:%3.2lf RPM","GPRINT:".$sensorsettings{'LABEL-'.$label}.":MIN:%3.2lf RPM","GPRINT:".$sensorsettings{'LABEL-'.$label}.":LAST:%3.2lf RPM\\j",);
|
||||
}
|
||||
}
|
||||
|
||||
RRDs::graph (@command);
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::graph for Fan Speed: ".$ERROR."\n" if $ERROR;
|
||||
}
|
||||
|
||||
# Generate the Voltage Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehwvoltgraph {
|
||||
my $period = $_[0];
|
||||
|
||||
my @command = (
|
||||
"-",
|
||||
"--start",
|
||||
"-1".$period,
|
||||
"-aPNG",
|
||||
"-i",
|
||||
"-z",
|
||||
"-W www.ipfire.org",
|
||||
"--alt-y-grid",
|
||||
"-w 600",
|
||||
"-h 125",
|
||||
"-r",
|
||||
"-t ".$Lang::tr{'mbmon volt'}." ".$Lang::tr{'graph per'}." ".$Lang::tr{$period},
|
||||
"--color=SHADEA".$color{"color19"},
|
||||
"--color=SHADEB".$color{"color19"},
|
||||
"--color=BACK".$color{"color21"},
|
||||
"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),
|
||||
"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j"
|
||||
);
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /voltage/ ) {
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"DEF:".$sensorsettings{'LABEL-'.$label}."=".$_.":value:AVERAGE");
|
||||
}
|
||||
}
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /voltage/ ){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"LINE3:".$sensorsettings{'LABEL-'.$label}.random_hex_color(6)."A0:".sprintf("%-25s",$sensorsettings{'LABEL-'.$label}),"GPRINT:".$sensorsettings{'LABEL-'.$label}.":MAX:%3.2lf V","GPRINT:".$sensorsettings{'LABEL-'.$label}.":AVERAGE:%3.2lf V","GPRINT:".$sensorsettings{'LABEL-'.$label}.":MIN:%3.2lf V","GPRINT:".$sensorsettings{'LABEL-'.$label}.":LAST:%3.2lf V\\j",);
|
||||
}
|
||||
}
|
||||
|
||||
RRDs::graph (@command);
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::graph for Voltage: ".$ERROR."\n" if $ERROR;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -793,24 +987,6 @@ sub updatecpufreqgraph {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# Generate the QoS Graph for the current period of time
|
||||
|
||||
sub updateqosgraph {
|
||||
@@ -880,154 +1056,6 @@ sub updateqosgraph {
|
||||
print "$ERROR";
|
||||
}
|
||||
|
||||
# Generate the HDD Temp Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehddgraph {
|
||||
|
||||
my $disk = $_[0];
|
||||
my $period = $_[1];
|
||||
|
||||
RRDs::graph ("$graphs/hddtemp-$disk-$period.png",
|
||||
"--start", "-1$period", "-aPNG", "-i", "-z", "-W www.ipfire.org",
|
||||
"--alt-y-grid", "-w 600", "-h 125",
|
||||
"--color", "SHADEA".$color{"color19"},
|
||||
"--color", "SHADEB".$color{"color19"},
|
||||
"--color", "BACK".$color{"color21"},
|
||||
"-t $disk $Lang::tr{'harddisk temperature'} $Lang::tr{'graph per'} $Lang::tr{$period}",
|
||||
"DEF:temperature=$rrdlog/hddtemp-$disk.rrd:temperature:AVERAGE",
|
||||
"DEF:standby=$rrdlog/hddshutdown-$disk.rrd:standby:AVERAGE",
|
||||
"CDEF:st=standby,INF,*",
|
||||
"AREA:st".$color{"color20"}."A0:standby",
|
||||
"LINE3:temperature".$color{"color11"}."A0:$Lang::tr{'hdd temperature in'} C\\j",
|
||||
"COMMENT:$Lang::tr{'maximal'}",
|
||||
"COMMENT:$Lang::tr{'average'}",
|
||||
"COMMENT:$Lang::tr{'minimal'}",
|
||||
"COMMENT:$Lang::tr{'current'}\\j",
|
||||
"GPRINT:temperature:MAX:%3.0lf Grad C",
|
||||
"GPRINT:temperature:AVERAGE:%3.0lf Grad C",
|
||||
"GPRINT:temperature:MIN:%3.0lf Grad C",
|
||||
"GPRINT:temperature:LAST:%3.0lf Grad C\\j",
|
||||
);
|
||||
$ERROR = RRDs::error;
|
||||
print "Error in RRD::graph for hdd-$disk: $ERROR\n" if $ERROR;
|
||||
}
|
||||
|
||||
# Generate the Temp Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehwtempgraph {
|
||||
|
||||
my $period = $_[0];
|
||||
|
||||
my @command = ("$graphs/sensors-hwtemp-$period.png",
|
||||
"--start", "-1$period", "-aPNG", "-i", "-W www.ipfire.org",
|
||||
"--alt-y-grid", "-w 600", "-h 125",
|
||||
"--color", "SHADEA".$color{"color19"},"--color",
|
||||
"SHADEB".$color{"color19"},"--color",
|
||||
"BACK".$color{"color21"},
|
||||
"-t $Lang::tr{'sensors temp'} $Lang::tr{'graph per'} $Lang::tr{$period}");
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /temperature/ ) {
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"DEF:".$sensorsettings{'LABEL-'.$label}."=".$_.":value:AVERAGE");
|
||||
}
|
||||
}
|
||||
push(@command,"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j");
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /temperature/ ){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"LINE3:".$sensorsettings{'LABEL-'.$label}.random_hex_color(6)."A0:".sprintf("%-25s",$sensorsettings{'LABEL-'.$label}),"GPRINT:".$sensorsettings{'LABEL-'.$label}.":MAX:%3.2lf C","GPRINT:".$sensorsettings{'LABEL-'.$label}.":AVERAGE:%3.2lf C","GPRINT:".$sensorsettings{'LABEL-'.$label}.":MIN:%3.2lf C","GPRINT:".$sensorsettings{'LABEL-'.$label}.":LAST:%3.2lf C\\j",);
|
||||
}
|
||||
}
|
||||
RRDs::graph (@command);
|
||||
$ERROR = RRDs::error;
|
||||
print "$ERROR";
|
||||
}
|
||||
|
||||
# Generate the Voltage Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehwvoltgraph {
|
||||
|
||||
my $period = $_[0];
|
||||
|
||||
my @command = ("$graphs/sensors-hwvolt-$period.png",
|
||||
"--start", "-1$period", "-aPNG", "-i", "-W www.ipfire.org",
|
||||
"--alt-y-grid", "-w 600", "-h 125",
|
||||
"--color", "SHADEA".$color{"color19"},"--color",
|
||||
"SHADEB".$color{"color19"},"--color",
|
||||
"BACK".$color{"color21"},
|
||||
"-t $Lang::tr{'mbmon volt'} $Lang::tr{'graph per'} $Lang::tr{$period}");
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /voltage/ ) {
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"DEF:".$sensorsettings{'LABEL-'.$label}."=".$_.":value:AVERAGE");
|
||||
}
|
||||
}
|
||||
push(@command,"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j");
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /voltage/ ){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"LINE3:".$sensorsettings{'LABEL-'.$label}.random_hex_color(6)."A0:".sprintf("%-25s",$sensorsettings{'LABEL-'.$label}),"GPRINT:".$sensorsettings{'LABEL-'.$label}.":MAX:%3.2lf V","GPRINT:".$sensorsettings{'LABEL-'.$label}.":AVERAGE:%3.2lf V","GPRINT:".$sensorsettings{'LABEL-'.$label}.":MIN:%3.2lf V","GPRINT:".$sensorsettings{'LABEL-'.$label}.":LAST:%3.2lf V\\j",);
|
||||
}
|
||||
}
|
||||
RRDs::graph (@command);
|
||||
$ERROR = RRDs::error;
|
||||
print "$ERROR";
|
||||
}
|
||||
|
||||
# Generate the Fan Graph for the current period of time for values given by collecd and lm_sensors
|
||||
|
||||
sub updatehwfangraph {
|
||||
|
||||
my $period = $_[0];
|
||||
|
||||
my @command = ("$graphs/sensors-hwfan-$period.png",
|
||||
"--start", "-1$period", "-aPNG", "-i", "-W www.ipfire.org",
|
||||
"--alt-y-grid", "-w 600", "-h 125",
|
||||
"--color", "SHADEA".$color{"color19"},"--color",
|
||||
"SHADEB".$color{"color19"},"--color",
|
||||
"BACK".$color{"color21"},
|
||||
"-t $Lang::tr{'mbmon fan'} $Lang::tr{'graph per'} $Lang::tr{$period}");
|
||||
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /fanspeed/ ) {
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"DEF:".$sensorsettings{'LABEL-'.$label}."=".$_.":value:AVERAGE");
|
||||
}
|
||||
}
|
||||
push(@command,"COMMENT:".sprintf("%-29s",$Lang::tr{'caption'}),"COMMENT:".sprintf("%15s",$Lang::tr{'maximal'}),"COMMENT:".sprintf("%15s",$Lang::tr{'average'}),"COMMENT:".sprintf("%15s",$Lang::tr{'minimal'}),"COMMENT:".sprintf("%15s",$Lang::tr{'current'})."\\j");
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $_ =~ /fanspeed/ ){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} eq "off" ){next;}
|
||||
push(@command,"LINE3:".$sensorsettings{'LABEL-'.$label}.random_hex_color(6)."A0:".sprintf("%-25s",$sensorsettings{'LABEL-'.$label}),"GPRINT:".$sensorsettings{'LABEL-'.$label}.":MAX:%3.2lf RPM","GPRINT:".$sensorsettings{'LABEL-'.$label}.":AVERAGE:%3.2lf RPM","GPRINT:".$sensorsettings{'LABEL-'.$label}.":MIN:%3.2lf RPM","GPRINT:".$sensorsettings{'LABEL-'.$label}.":LAST:%3.2lf RPM\\j",);
|
||||
}
|
||||
}
|
||||
RRDs::graph (@command);
|
||||
$ERROR = RRDs::error;
|
||||
print "$ERROR";
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Generate a random color, used by Qos Graph to be independent from the amount of values
|
||||
|
||||
sub random_hex_color {
|
||||
|
||||
@@ -31,6 +31,9 @@ srv/web/ipfire/cgi-bin/netexternal.cgi
|
||||
srv/web/ipfire/cgi-bin/netinternal.cgi
|
||||
srv/web/ipfire/cgi-bin/netother.cgi
|
||||
srv/web/ipfire/cgi-bin/system.cgi
|
||||
srv/web/ipfire/cgi-bin/services.cgi
|
||||
srv/web/ipfire/cgi-bin/media.cgi
|
||||
srv/web/ipfire/cgi-bin/memory.cgi
|
||||
srv/web/ipfire/cgi-bin/ids.cgi
|
||||
var/ipfire/sensors/
|
||||
var/ipfire/graphs.pl
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
###############################################################################
|
||||
# #
|
||||
# IPFire.org - A linux based firewall #
|
||||
# Copyright (C) 2007 Michael Tremer & Christian Schmidt #
|
||||
# Copyright (C) 2008 Michael Tremer & Christian Schmidt #
|
||||
# #
|
||||
# This program is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU General Public License as published by #
|
||||
@@ -22,31 +22,25 @@
|
||||
use strict;
|
||||
|
||||
# enable only the following on debugging purpose
|
||||
#use warnings;
|
||||
#use CGI::Carp 'fatalsToBrowser';
|
||||
use warnings;
|
||||
use CGI::Carp 'fatalsToBrowser';
|
||||
|
||||
require '/var/ipfire/general-functions.pl';
|
||||
require "${General::swroot}/lang.pl";
|
||||
require "${General::swroot}/header.pl";
|
||||
require "${General::swroot}/graphs.pl";
|
||||
|
||||
my %color = ();
|
||||
my %mainsettings = ();
|
||||
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
|
||||
&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
|
||||
|
||||
my %sensorsettings = ();
|
||||
my %cgiparams=();
|
||||
my @cgigraphs=();
|
||||
my $rrdlog = "/var/log/rrd";
|
||||
|
||||
&Header::showhttpheaders();
|
||||
|
||||
my $graphdir = "/srv/web/ipfire/html/graphs";
|
||||
|
||||
$ENV{'QUERY_STRING'} =~ s/&//g;
|
||||
@cgigraphs = split(/graph=/,$ENV{'QUERY_STRING'});
|
||||
$cgigraphs[1] = '' unless defined $cgigraphs[1];
|
||||
|
||||
my @sensorsgraphs = ();
|
||||
my @sensorsdir = `ls -dA $rrdlog/collectd/localhost/sensors-*/`;
|
||||
foreach (@sensorsdir)
|
||||
{
|
||||
foreach (@sensorsdir){
|
||||
chomp($_);chop($_);
|
||||
foreach (`ls $_/*`){
|
||||
chomp($_);
|
||||
@@ -54,167 +48,106 @@ foreach (@sensorsdir)
|
||||
}
|
||||
}
|
||||
|
||||
&Header::getcgihash(\%sensorsettings);
|
||||
my @querry = split(/\?/,$ENV{'QUERY_STRING'});
|
||||
$querry[0] = '' unless defined $querry[0];
|
||||
$querry[1] = 'hour' unless defined $querry[1];
|
||||
|
||||
if ( $sensorsettings{'ACTION'} eq $Lang::tr{'save'} ) {
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
if ( $querry[0] =~ "hwtemp"){
|
||||
print "Content-type: image/png\n\n";
|
||||
binmode(STDOUT);
|
||||
&Graphs::updatehwtempgraph($querry[1]);
|
||||
}elsif ( $querry[0] =~ "hwfan"){
|
||||
print "Content-type: image/png\n\n";
|
||||
binmode(STDOUT);
|
||||
&Graphs::updatehwfangraph($querry[1]);
|
||||
}elsif ( $querry[0] =~ "hwvolt"){
|
||||
print "Content-type: image/png\n\n";
|
||||
binmode(STDOUT);
|
||||
&Graphs::updatehwvoltgraph($querry[1]);
|
||||
}elsif ( $querry[0] =~ "sd?" || $querry[0] =~ "hd?" ){
|
||||
print "Content-type: image/png\n\n";
|
||||
binmode(STDOUT);
|
||||
&Graphs::updatehddgraph($querry[0],$querry[1]);
|
||||
}else{
|
||||
&Header::showhttpheaders();
|
||||
&Header::openpage($Lang::tr{'harddisk temperature graphs'}, 1, '');
|
||||
&Header::openbigbox('100%', 'left');
|
||||
|
||||
&Header::getcgihash(\%sensorsettings);
|
||||
|
||||
if ( $sensorsettings{'ACTION'} eq $Lang::tr{'save'} ) {
|
||||
foreach(@sensorsgraphs){
|
||||
chomp($_);
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} ne "on" ){$sensorsettings{'LINE-'.$label} = 'off';}
|
||||
elsif ( $sensorsettings{'LINE-'.$label} eq "on" ){$sensorsettings{'LINE-'.$label} = 'checked';}
|
||||
}
|
||||
&General::writehash("${General::swroot}/sensors/settings", \%sensorsettings);
|
||||
}
|
||||
|
||||
my @disks = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
|
||||
|
||||
foreach (@disks){
|
||||
my $disk = $_;
|
||||
chomp $disk;
|
||||
my @array = split(/\//,$disk);
|
||||
|
||||
&Header::openbox('100%', 'center', "$array[$#array] $Lang::tr{'graph'}");
|
||||
&Graphs::makegraphbox("hardwaregraphs.cgi",$array[$#array],"day");
|
||||
&Header::closebox();
|
||||
}
|
||||
|
||||
&Header::openbox('100%', 'center', "hwtemp $Lang::tr{'graph'}");
|
||||
&Graphs::makegraphbox("hardwaregraphs.cgi","hwtemp","day");
|
||||
&Header::closebox();
|
||||
|
||||
&Header::openbox('100%', 'center', "hwfan $Lang::tr{'graph'}");
|
||||
&Graphs::makegraphbox("hardwaregraphs.cgi","hwfan","day");
|
||||
&Header::closebox();
|
||||
|
||||
&Header::openbox('100%', 'center', "hwvolt $Lang::tr{'graph'}");
|
||||
&Graphs::makegraphbox("hardwaregraphs.cgi","hwvolt","day","375");
|
||||
&Header::closebox();
|
||||
|
||||
sensorsbox();
|
||||
|
||||
&Header::closebigbox();
|
||||
&Header::closepage();
|
||||
|
||||
}
|
||||
|
||||
|
||||
sub sensorsbox {
|
||||
&Header::openbox('100%', 'center', "$Lang::tr{'mbmon settings'}");
|
||||
|
||||
print <<END
|
||||
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<table width='100%' border='0' cellspacing='5' cellpadding='0' align='center'>
|
||||
<tr>
|
||||
<td align='right' width='40%'><b>$Lang::tr{'mbmon display'}</b></td>
|
||||
<td align='left'><b>$Lang::tr{'mbmon label'}</b></td>
|
||||
</tr>
|
||||
END
|
||||
;
|
||||
|
||||
foreach (@sensorsgraphs){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
if ( $sensorsettings{'LINE-'.$label} ne "on" ){$sensorsettings{'LINE-'.$label} = 'off';}
|
||||
elsif ( $sensorsettings{'LINE-'.$label} eq "on" ){$sensorsettings{'LINE-'.$label} = 'checked';}
|
||||
$sensorsettings{'LABEL-'.$label}="$label";
|
||||
$sensorsettings{'LINE-'.$label}="checked";
|
||||
&General::readhash("${General::swroot}/sensors/settings", \%sensorsettings);
|
||||
print("<tr><td align='right'><input type='checkbox' name='LINE-$label' $sensorsettings{'LINE-'.$label} /></td>");
|
||||
print("<td><input type='text' name='LABEL-$label' value='$sensorsettings{'LABEL-'.$label}' size='25' /></td></tr>\n");
|
||||
}
|
||||
&General::writehash("${General::swroot}/sensors/settings", \%sensorsettings);
|
||||
}
|
||||
|
||||
my @disks = `kudzu -qps -c HD | grep device: | cut -d" " -f2 | sort | uniq`;
|
||||
|
||||
&Header::openpage($Lang::tr{'harddisk temperature graphs'}, 1, '');
|
||||
&Header::openbigbox('100%', 'left');
|
||||
|
||||
if ($cgigraphs[1] =~ /hwtemp/) {&Graphs::updatehwtempgraph ("hour");&Graphs::updatehwtempgraph ("week");&Graphs::updatehwtempgraph ("month");&Graphs::updatehwtempgraph ("year");graphbox("hwtemp");}
|
||||
elsif ($cgigraphs[1] =~ /hwfan/) {&Graphs::updatehwfangraph ("hour");&Graphs::updatehwfangraph ("week");&Graphs::updatehwfangraph ("month");&Graphs::updatehwfangraph ("year");graphbox("hwfan");}
|
||||
elsif ($cgigraphs[1] =~ /hwvolt/) {&Graphs::updatehwvoltgraph ("hour");&Graphs::updatehwvoltgraph ("week");&Graphs::updatehwvoltgraph ("month");&Graphs::updatehwvoltgraph ("year");graphbox("hwvolt");}
|
||||
elsif ($cgigraphs[1] =~ /hddtemp/) {
|
||||
foreach (@disks){
|
||||
my $disk = $_;
|
||||
chomp $disk;
|
||||
my @array = split(/\//,$disk);
|
||||
&Graphs::updatehddgraph ($array[$#array],"week");&Graphs::updatehddgraph ($array[$#array],"month");&Graphs::updatehddgraph ($array[$#array],"year");
|
||||
hddtempbox($array[$#array]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
&Graphs::updatehwtempgraph ("day");&Graphs::updatehwfangraph ("day");&Graphs::updatehwvoltgraph ("day");
|
||||
foreach (@disks){
|
||||
my $disk = $_;
|
||||
chomp $disk;
|
||||
my @array = split(/\//,$disk);
|
||||
&Graphs::updatehddgraph ($array[$#array],"day");
|
||||
if (-e "$graphdir/hddtemp-$disk-day.png") {
|
||||
|
||||
&Header::openbox('100%', 'center', "Disk $disk $Lang::tr{'graph'}");
|
||||
my $ftime = localtime((stat("$graphdir/hddtemp-$disk-day.png"))[9]);
|
||||
print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=hddtemp'>";
|
||||
print "<img src='/graphs/hddtemp-$disk-day.png' border='0' />";
|
||||
print "</a>";
|
||||
print "<br />\n";
|
||||
&Header::closebox();
|
||||
}
|
||||
}
|
||||
|
||||
my @graphs = ("hwtemp","hwfan","hwvolt");
|
||||
foreach (@graphs){
|
||||
&Header::openbox('100%', 'center', "$_ $Lang::tr{'graph'}");
|
||||
if (-e "$graphdir/sensors-$_-day.png"){
|
||||
my $ftime = localtime((stat("$graphdir/sensors-$_-day.png"))[9]);
|
||||
print "<center>";
|
||||
print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<a href='/cgi-bin/hardwaregraphs.cgi?graph=$_'>";
|
||||
print "<img src='/graphs/sensors-$_-day.png' border='0' />";
|
||||
print "</a><hr />";
|
||||
}
|
||||
else{print $Lang::tr{'no information available'};}
|
||||
print <<END
|
||||
<tr>
|
||||
<td align='center' colspan='2' ><input type='submit' name='ACTION' value=$Lang::tr{'save'} /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
END
|
||||
;
|
||||
&Header::closebox();
|
||||
}
|
||||
sensorsbox();
|
||||
}
|
||||
|
||||
&Header::closebigbox();
|
||||
&Header::closepage();
|
||||
|
||||
sub hddtempbox {
|
||||
my $disk = $_[0];
|
||||
if (-e "$graphdir/hddtemp-$disk-week.png") {
|
||||
|
||||
&Header::openbox('100%', 'center', "Disk $disk $Lang::tr{'graph'}");
|
||||
my $ftime = localtime((stat("$graphdir/hddtemp-$disk-week.png"))[9]);
|
||||
print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<img src='/graphs/hddtemp-$disk-week.png' border='0' />";
|
||||
print "<br />\n";
|
||||
&Header::closebox();
|
||||
}
|
||||
if (-e "$graphdir/hddtemp-$disk-month.png") {
|
||||
|
||||
&Header::openbox('100%', 'center', "Disk $disk $Lang::tr{'graph'}");
|
||||
my $ftime = localtime((stat("$graphdir/hddtemp-$disk-month.png"))[9]);
|
||||
print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<img src='/graphs/hddtemp-$disk-month.png' border='0' />";
|
||||
print "<br />\n";
|
||||
&Header::closebox();
|
||||
}
|
||||
if (-e "$graphdir/hddtemp-$disk-year.png") {
|
||||
|
||||
&Header::openbox('100%', 'center', "Disk $disk $Lang::tr{'graph'}");
|
||||
my $ftime = localtime((stat("$graphdir/hddtemp-$disk-year.png"))[9]);
|
||||
print "<center><b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<img src='/graphs/hddtemp-$disk-year.png' border='0' />";
|
||||
print "<br />\n";
|
||||
&Header::closebox();
|
||||
}
|
||||
}
|
||||
|
||||
sub graphbox {
|
||||
my $graph = $_[0];
|
||||
|
||||
&Header::openbox('100%', 'center', "$graph $Lang::tr{'graph'}");
|
||||
if (-e "$graphdir/sensors-$graph-week.png"){
|
||||
my $ftime = localtime((stat("$graphdir/sensors-$graph-week.png"))[9]);
|
||||
print "<center>";
|
||||
print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<img src='/graphs/sensors-$graph-week.png' border='0' /><hr />";
|
||||
}
|
||||
else{print $Lang::tr{'no information available'};}
|
||||
&Header::closebox();
|
||||
&Header::openbox('100%', 'center', "$graph $Lang::tr{'graph'}");
|
||||
if (-e "$graphdir/sensors-$graph-month.png"){
|
||||
my $ftime = localtime((stat("$graphdir/sensors-$graph-month.png"))[9]);
|
||||
print "<center>";
|
||||
print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<img src='/graphs/sensors-$graph-month.png' border='0' /><hr />";
|
||||
}
|
||||
else{print $Lang::tr{'no information available'};}
|
||||
&Header::closebox();
|
||||
&Header::openbox('100%', 'center', "$graph $Lang::tr{'graph'}");
|
||||
if (-e "$graphdir/sensors-$graph-year.png"){
|
||||
my $ftime = localtime((stat("$graphdir/sensors-$graph-year.png"))[9]);
|
||||
print "<center>";
|
||||
print "<b>$Lang::tr{'the statistics were last updated at'}: $ftime</b></center><br />\n";
|
||||
print "<img src='/graphs/sensors-$graph-year.png' border='0' /><hr />";
|
||||
}
|
||||
else{print $Lang::tr{'no information available'};}
|
||||
&Header::closebox();
|
||||
}
|
||||
|
||||
sub sensorsbox{
|
||||
|
||||
&Header::openbox('100%', 'center', "$Lang::tr{'mbmon settings'}");
|
||||
if ( $cgiparams{'ACTION'} eq $Lang::tr{'save'} ){print "Test";}
|
||||
|
||||
print <<END
|
||||
<form method='post' action='$ENV{'SCRIPT_NAME'}'>
|
||||
<table width='100%' border='0' cellspacing='5' cellpadding='0' align='center'>
|
||||
<tr><td align='right' width='40%'><b>$Lang::tr{'mbmon display'}</b></td>
|
||||
<td align='left'><b>$Lang::tr{'mbmon label'}</b></td>
|
||||
</tr>
|
||||
END
|
||||
;
|
||||
foreach (@sensorsgraphs){
|
||||
$_ =~ /\/(.*)sensors-(.*)\/(.*)\.rrd/;
|
||||
my $label = $2.$3;$label=~ s/-//g;
|
||||
$sensorsettings{'LABEL-'.$label}="$label";
|
||||
$sensorsettings{'LINE-'.$label}="checked";
|
||||
&General::readhash("${General::swroot}/sensors/settings", \%sensorsettings);
|
||||
print("<tr><td align='right'><input type='checkbox' name='LINE-$label' $sensorsettings{'LINE-'.$label} /></td>");
|
||||
print("<td><input type='text' name='LABEL-$label' value='$sensorsettings{'LABEL-'.$label}' size='25' /></td></tr>\n");
|
||||
}
|
||||
print <<END
|
||||
<tr><td align='center' colspan='2' ><input type='submit' name='ACTION' value=$Lang::tr{'save'} /></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
END
|
||||
;
|
||||
&Header::closebox();
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
use strict;
|
||||
|
||||
# enable only the following on debugging purpose
|
||||
use warnings;
|
||||
use CGI::Carp 'fatalsToBrowser';
|
||||
#use warnings;
|
||||
#use CGI::Carp 'fatalsToBrowser';
|
||||
|
||||
require '/var/ipfire/general-functions.pl';
|
||||
require "${General::swroot}/lang.pl";
|
||||
|
||||
@@ -53,7 +53,7 @@ if ( $querry[0] =~ "cpu"){
|
||||
&Header::openbigbox('100%', 'left');
|
||||
|
||||
&Header::openbox('100%', 'center', "CPU $Lang::tr{'graph'}");
|
||||
&Graphs::makegraphbox("system.cgi","cpu","day","315");
|
||||
&Graphs::makegraphbox("system.cgi","cpu","day","325");
|
||||
&Header::closebox();
|
||||
|
||||
&Header::openbox('100%', 'center', "Load $Lang::tr{'graph'}");
|
||||
|
||||
Reference in New Issue
Block a user