smokeping master所有节点都开启nomasterpoll = yes时访问web查看排序图表时不正常,nginx显示错误日志:
fastcgi://unix:/run/fcgiwrap.socket, host: "192.168.1.1", referrer: https://www.haiyun.me/?target=_charts
smokeping.cgi [client 192.168.1.2]: Warning: Dropping median/Ping/ALIDNS-V4~pve from sortercache
把下面补丁应用到smokeping/lib/Smokeping.pm
--- Smokeping.pm.20261011 2021-12-03 15:38:25.000000000 +0800
+++ Smokeping.pm 2026-10-11 10:51:19.103637469 +0800
@@ -1119,7 +1119,9 @@
$tree = $phys_tree;
my @slaves;
- if (not $tree->{nomasterpoll} or $tree->{nomasterpoll} eq 'no' or $mode eq 'a' or $mode eq 'n'){
+ # <-- 在末尾加上 or $mode eq 'c',防止 nomasterpoll=yes 时直接返回空
+ if (not $tree->{nomasterpoll} or $tree->{nomasterpoll} eq 'no' or $mode eq 'a' or $mode eq 'n' or $mode eq 'c'){
+ #if (not $tree->{nomasterpoll} or $tree->{nomasterpoll} eq 'no' or $mode eq 'a' or $mode eq 'n'){
@slaves = ("");
};
@@ -1129,7 +1131,9 @@
return "" if not defined $tree->{host} or 0 == @slaves;
- my $file = $mode eq 'c' ? (split(/~/, $open->[-1]))[0] : $open->[-1];
+ # <-- 去掉三元运算截断,直接保留 $open->[-1](即保留 ~pve 以读取正确的 RRD 文件)
+ my $file = $open->[-1];
+ #my $file = $mode eq 'c' ? (split(/~/, $open->[-1]))[0] : $open->[-1];
my @dirs = @{$phys_open};
pop @dirs;
my $dir = "";
@@ -1531,14 +1535,16 @@
}
$page .= "<div class=\"panel-body\">";
$page .= ( qq{<a href="}.cgiurl($q,$cfg)."?".hierarchy($q).qq{displaymode=n;start=$startstr;end=now;}."target=".$t.$s.'">'
- . qq{<IMG ALT="" SRC="${imghref}${s}_${end}_${start}.png">}."</a>" ); #"
+ #. qq{<IMG ALT="" SRC="${imghref}${s}_${end}_${start}.png">}."</a>" ); #"
+ . qq{<IMG ALT="" WIDTH="$xs{$s}" HEIGHT="$ys{$s}" SRC="${imghref}${s}_${end}_${start}.png">}."</a>" ); #" 修复刚打开网页时空白图片挤压在一块
$page .= "</div></div>\n";
}
} else { # chart mode
$page .= qq{<div class="panel-body">};
my $href= (split /~/, (join ".", @$open))[0]; #/ # the link is 'slave free'
$page .= ( qq{<a href="}.lnk($q, $href).qq{">}
- . qq{<IMG ALT="" SRC="${imghref}_${end}_${start}.png">}."</a>" ); #"
+ #. qq{<IMG ALT="" SRC="${imghref}_${end}_${start}.png">}."</a>" ); #"
+ . qq{<IMG ALT="" WIDTH="$xs{''}" HEIGHT="$ys{''}" SRC="${imghref}_${end}_${start}.png">}."</a>" ); #" 同上
$page .= "</div>";
}
@@ -1628,6 +1634,7 @@
warn "Warning: Duplicate entry $chart/$path in sortercache\n" if defined $cache{$chart}{$path};
my $root = $cfg->{Targets};
for my $element (split /\//, $path){
+ $element =~ s/~.+//; # <-- 剥离 ~pve 等后缀再去匹配配置树
if (ref $root eq 'HASH' and defined $root->{$element}){
$root = $root->{$element}
} 标签:none