引言
默认的pnp4nagios绘图插件只能绘制出单条曲线,即使脚本输出多个性能参数,pnp4nagios的默认行为也不过是多画几张图,但是不在同一个图中,令数据的对比比较困难,因此需要自己写默认来进行实现
正文
首先准备好脚本pnp_test.sh
# !bin/sh
seed=`date +%s%N`
result=`echo $seed%100|bc`
tmp1=`echo $seed%88+$result|bc`
tmp2=`echo $seed%66+$result|bc`
tmp3=`echo $seed%55+$result|bc`
echo "everything is ok just test pnp4nagios|mysql=$tmp1;vim=$tmp2;nagios=$tmp3;"
exit 0
脚本十分简单,模拟mysql.vim.nagios这三个诚寻的内存使用情况,内存使用为一个随即的整数。
接下来需要在pnp4nagios的share目录下做一些文章
目录templates.dist是pnp4nagios自带的一些模板,自己写默认的时候可以参考,另外pnp4nagios官网上也有很多其他开发人员开源出来的的模板。
目录templates是我们自己定制的模板。模板名字需要于监控脚本名字一致命名为pnp_test.php内容如下
<?php
$colors = array(
'red'=> '#FF0000',
'green' => '#00FF00',
'blue' => '#0000FF',
'yellow' => '#FFFF00',
'black' => '#000000',
'deepred' => '#330000',
);
$ds_name[1] = "mysql MB";
$ds_name[2] = "vim MB";
$ds_name[3] = "nagios MB";
$opt[1] = "--lower=0 --vertical-label \"MB\" --title \"App Mem Used\" ";
$def[1] = "DEF:var1=$rrdfile:$DS[1]:AVERAGE " ;
$def[1] .= "DEF:var2=$rrdfile:$DS[2]:AVERAGE " ;
$def[1] .= "DEF:var3=$rrdfile:$DS[3]:AVERAGE ";
$def[1] .= "LINE:var1$colors[green]:\"mysql \" " ;
$def[1] .= "GPRINT:var1:LAST:\"%6.1lf last\" " ;
$def[1] .= "GPRINT:var1:AVERAGE:\"%6.1lf avg\" " ;
$def[1] .= "GPRINT:var1:MAX:\"%6.1lf max\\n\" ";
$def[1] .= "LINE:var2$colors[blue]:\"vim \" " ;
$def[1] .= "GPRINT:var2:LAST:\"%6.1lf last\" " ;
$def[1] .= "GPRINT:var2:AVERAGE:\"%6.1lf avg\" " ;
$def[1] .= "GPRINT:var2:MAX:\"%6.1lf max\\n\" " ;
$def[1] .= "LINE:var3$colors[red]:\"nagios \" " ;
$def[1] .= "GPRINT:var3:LAST:\"%6.1lf last\" " ;
$def[1] .= "GPRINT:var3:AVERAGE:\"%6.1lf avg\" " ;
$def[1] .= "GPRINT:var3:MAX:\"%6.1lf max\\n\" " ;
?>
这是参考鸟哥的博客写出来的。具体函数的意思不进行解释了,可以看鸟哥的博客或者去pnp4nagios官网看。如果你是完美主义者,可以看一些rrdrool的接口使用,应该可以定制出很美妙的图。
OK。看一下效果
参考
http://blog.chinaunix.net/uid-25266990-id-3437195.html