我正在使用RRDtool来存储用于显示图形的数据.我通过RRDs :: update更新RRD,这在尝试重写信息时失败,意味着过去更新数据一段时间(例如有人将系统计时器移回).我得到的错误是:
ERROR: Cannot update /opt/dashboard/rrd/Disk/192.168.120.168_disk_1.rrd with
'1228032301:24:24' illegal attempt to update using time 1228032301 when last
update time is 1228050001 (minimum one second step)
Run Code Online (Sandbox Code Playgroud)
我想总是允许重写,我该怎么做?
我有几个由RRDTool创建的图表,它们在几个小时的时间段内收集了错误的数据.
如何在该时间段内从RRD中删除数据,使其不再显示?
与此问题密切相关:Bash printf前缀
我有以下使用RRDTool生成RRDGraph的Bash脚本。
#!/bin/bash
now=$(date +%s)
now_formatted=$(date +%s | awk '{printf "%s\n", strftime("%c",$1)}' | sed -e 's/:/\\:/g')
# create power graph for last week
/usr/bin/rrdtool graph /var/www/power-week.png \
--start end-7d --width 543 --height 267 --end $now-1min --slope-mode \
--vertical-label "Watts" --lower-limit 0 \
--alt-autoscale-max \
--title "Power: Last week vs. week before" \
--watermark "(©) $(date +%Y) Alyn R. Tiedtke" \
--font WATERMARK:8 \
DEF:Power=/root/currentcost/ccdata.rrd:Power:AVERAGE \
DEF:Power2=/root/currentcost/ccdata.rrd:Power:AVERAGE:end=$now-7d1min:start=end-7d \
VDEF:Last=Power,LAST \
VDEF:First=Power,FIRST \
VDEF:Min=Power,MINIMUM \
VDEF:Peak=Power,MAXIMUM \
VDEF:Average=Power,AVERAGE \
CDEF:kWh=Power,1000,/,168,* …Run Code Online (Sandbox Code Playgroud) 我有一些旧的 rrdtool 数据库,其确切的创建方法早已丢失。我需要创建一个与当前数据库具有相同特征的新数据库。我已经转储了几个旧数据库并仔细研究了内容,但我不确定如何解释元数据。我认为它出现在以下节中
<cf> AVERAGE </cf>
<pdp_per_row> 360 </pdp_per_row> <!-- 1800 seconds -->
<xff> 5.0000000000e-01 </xff>
Run Code Online (Sandbox Code Playgroud)
有四个这样的节,它们与我记得设置循环级联的方式相对应。有没有人已经这样做了,或者可以给我一些关于如何从现有数据库克隆一个新的空 rrd 数据库的指针?或者告诉我我在文档中遗漏了什么。
是否可以通过RRDTool基于多个RRD DB获取数据,例如获取值是每个RRD所有值的总和?
我已经使用rrdtool设置了mrtg设置.现在我计划从这些RRD文件中获取传入的传出使用数据,并且无法找到正确的方法来执行此操作.任何人都可以告诉我们如何从rrd文件中获取这些使用数据.然后我可以维护一个数据库来保存这些使用数据并计算成本等.
谢谢!
我正在玩 MRTG 并将其配置为使用 RRD 来记录性能数据(这是一个交换机接口字节计数器)。当我使用“rrdtool info”检查 RRD 文件时,我看到 ds[ds0].last_ds 是一个数字,每次输入新数据时它都会改变
# rrdtool info 10.0.3.129_24_bw.rrd
filename = "10.0.3.129_24_bw.rrd"
rrd_version = "0003"
step = 60
last_update = 1482950882
header_size = 2912
ds[ds0].index = 0
ds[ds0].type = "COUNTER"
ds[ds0].minimal_heartbeat = 600
ds[ds0].min = 0.0000000000e+00
ds[ds0].max = 1.2500000000e+08
ds[ds0].last_ds = "6332648954"
ds[ds0].value = 3.5016393443e+01
ds[ds0].unknown_sec = 0
ds[ds1].index = 1
ds[ds1].type = "COUNTER"
ds[ds1].minimal_heartbeat = 600
ds[ds1].min = 0.0000000000e+00
ds[ds1].max = 1.2500000000e+08
ds[ds1].last_ds = "32104385407"
ds[ds1].value = 5.3344262295e+01
ds[ds1].unknown_sec = 0
Run Code Online (Sandbox Code Playgroud)
究竟是什么?谢谢!
我有以下由munin生成的nginx请求图:

y轴上的“ m”是什么意思?
/ usr / share / munin / plugins / nginx_request中的nginx munin插件正在提取:
if ($response->content =~ /^\s+(\d+)\s+(\d+)\s+(\d+)/m) {
print "request.value $3\n";
Run Code Online (Sandbox Code Playgroud)
这意味着它占用了nginx_status的第三部分,这似乎是总的累积请求数。这是从同一服务器执行的示例:
$ curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
2936 2936 4205
Reading: 0 Writing: 1 Waiting: 0
Run Code Online (Sandbox Code Playgroud)
munin nginx插件将以下内容传递给rrdtool:
print "graph_title Nginx requests\n";
print "graph_args --base 1000\n";
print "graph_category nginx\n";
print "graph_vlabel Request per second\n";
print "request.label req/sec\n";
print "request.type DERIVE\n";
print "request.min 0\n";
print "request.label requests port $port\n";
print "request.draw LINE2\n";
Run Code Online (Sandbox Code Playgroud) 我使用subprocess.Popen()从进程的输出中得到了这个:
{ about: 'RRDtool xport JSON output',
meta: {
start: 1401778440,
step: 60,
end: 1401778440,
legend: [
'rta_MIN',
'rta_MAX',
'rta_AVERAGE'
]
},
data: [
[ null, null, null ],
[ null, null, null ],
[ null, null, null ],
[ null, null, null ],
[ null, null, null ],
[ null, null, null ]
]
}
Run Code Online (Sandbox Code Playgroud)
它对我来说似乎不是一个有效的json.我已经使用ast.literal_eval()和json.loads(),但没有运气.有人可以帮我正确的方向吗?提前致谢.
我有这个脚本将图像输出到命令行,如果我将其重定向到file.png,我可以正确地看到图形,但如果我尝试从浏览器中做同样的事情,我无法动态地看到它.
我试图将脚本分成两部分,但是不起作用.
1 - >生成图2 - >从这一个调用第一个脚本并将所有脚本保存在变量中.
剧本:
<?php
header("Content-Type: image/png");
header("Content-Transfer-Encoding: binary");
ob_flush();
require_once ('/opt/rMON/config.php');
//if(isset($_GET['id'])){
// $id = trim($_GET['id']);
//} else {
// die("El id?");
//}
//DEBUG ID
$id=1;
$result = ***MYSQL QUERY***
$ip = long2ip($result['ip']);
$interface = $result['interface'];
$counter = $result['counter'];
$unix_name = $result['unix_name'];
$community = $result['community'];
$version = $result['version'];
$port = $result['port'];
$rrd_file = __RRD_ROOT__.$unix_name.".rrd";
$graph_name = $result['name'];
$host_ip = long2ip($result['ip']);
$iface_name = $result['iface_name'];
$fecha = date("y-m-d h:i:s");
$start = "3600";
$tiempo = "1 Hora";
create_graph($start, …Run Code Online (Sandbox Code Playgroud)