成都长宽Weathermap实际运用的效果图示例:

wKioL1ajWYbhy20sAAAg5COlrIs222.png

这是一个CNC出口的质量监控图。

  1. 途中cnc节点(红色)是一个展示图例,TEL节点根据存活状态显示为绿色

  2. TEL节点上面P:47.2ms 是一个,这是ICMP延时参考

  3. TEL节点上面L:14.0%是网络丢包参考,根据不同的值,背景色使用不同的展示图例

 

基于后端数据采集是实时采集(1分钟/5分钟),这样Weathermap就可以实时根据采集到的数据做出一个图形的显示。

 

通常Weathermap画图都是通过页面来操作,但是基于WEB页面的配置选项提供的少之又少,一般只能完成基本的功能,对于一些复杂点的需求就无能为力了。

对于复杂点的配置就需要通过Weathermap的修改配置文件来实现,Weathermap的操作文档可以查看官网,也可以查看cacti中weathermap自带的文档,cacti自带的文档存放页面是http://****/plugins/weathermap/docs/pages/config-reference.html

wKiom1ajWXKhSJWBAACQ4iKpLr0695.png

配置文档各个定义指令通常分为三大类,Node类Link类、和 全局定义类

 

通常weathermap在cacti上的实现是已插件的形式存在的,所以Weathermap插件对于每个气象图的配置文件存放目录是在服务器<path_cacti>/plugins/weathermap/configs 目录中(默认path_cacti是在/var/www/html目录下),每个气象图会有个配置文件名和标题,如图

wKioL1ajWcyDFuKFAACxQ0FQmo4912.png

图中的配置文件名称就是和<path_cacti>/plugins/weathermap/configs目录下的文件对应的,我们来看看配置文件的内容。

wKiom1ajWaXTxNP-AABxEdj2ub8834.png

默认配置文件开始都是全局配置,首行的FONTDEFINE是定义字体指令,语法如下:

FONTDEFINE

FONTDEFINE fontnumber gdfontfile

FONTDEFINE fontnumber ttffontfile fontsize

有两种用法,第一种是使用php的gd库来生成文字,第二种是外部ttf字体渲染。

FONTDEFINE 编号 字体文件路径 字体大小

默认使用web端配置的weathermap只有英文字体,所以不能显示中文。需要添加一个中文字体才能够正常显示中文名称。

wKiom1ajWcTSEPieAAAP9IB97WM611.png

这几行指令是配置气象图的大小、类型、默认引用字体编号、标题、以及气象图刷新时间角标。

wKioL1ajWiWS_yWgAAAtjvq2sjc580.pngwKioL1ajWibwqs9hAAAVnIFjIvc524.png

默认图例定义,默认所有数值的颜色配置都是按照默认图例来显示的。图

 

wKiom1ajWgbDFY7IAAA_p8OWuuU796.pngwKioL1ajWkayHbsQAAAlfxsJDpk592.png

添加的两个图例,图例名称分别为cactiupdown cactiloss 用于显示主机在线状态和丢包率的比例。

wKiom1ajWiSB0yNgAAAff6JALzI661.png

定义默认节点指令 以及 默认连接指令


Cacti监控模板 之 AdvancedPing网络监控

       Cacti把各种监控方式归为模板类型,除了自带的几个流量监控模板,民间不乏也有很好的其他监控模板,接下来说的就是网络抖动监控AdvancedPing。

 

1.AdvancePing 脚本及模板

下载地址:http://forums.cacti.net/about10049.html  spacer.gif

http://pan.baidu.com/s/1mhiVreg 密码2ggf

注:要使用此模板,编译PHP时必须加上--enable-sockets选项来支持套接字。

 

1).功能:此模板用来监控一个TCP/UDP端口、ICMP的延时情况和丢包情况。

2).下载ss_fping.php脚本并放到<cacti_path>/scripts/目录下,下载cacti_graph_template_ping_advanced_ping_v1_3.xml模板,用cacti的模板导入页将此模板导入。

3).在Console选项卡下的左侧菜单栏中选择Devices,为要监控的主机新建一个Devices或选择已有Devices。在Associated Graph Templates中添加Advanced Pingv1.3模板。并点击最上面的Create Graphs forthis Host链接。

 

使用方法:

  • 创建主机

  • 输入目标主机IP

  • 选择模板 Ping主机

  • SNMP选项 未使用

  • 保存设置,第一次会自动扫描目标IP的开放TCP端口

  • 为这个主机添加图形,勾选相应的图形模板

  • 填入advanced ping的监控协议(TCP | UDP | ICMP)大写TCP,填入目标端口。

  • 完成,等待图形生成。

 

图形生成确认无误后一般一个advanced Ping图会有5个数据点,分别为时间长短的min、avg、max   丢包率的loss  和 脚本执行的dev耗时。

 

DEF:a="/var/www/html/rra/14/4044.rrd":min:AVERAGE\

DEF:b="/var/www/html/rra/14/4044.rrd":avg:AVERAGE\

DEF:c="/var/www/html/rra/14/4044.rrd":max:AVERAGE\

DEF:d="/var/www/html/rra/14/4044.rrd":loss:AVERAGE\

DEF:e="/var/www/html/rra/14/4044.rrd":dev:AVERAGE\

wKioL1ajWorBw_8PAACmsF2GhwA455.png

下面可以根据这些rrd文件把数据输出到weathermap中。


Weathermap气象图之高级用法

根据之前的效果图,来具体说说那三个实现。

wKioL1ajWruj19m5AAAsHiXkLf8732.png

这是一个CNC出口的质量监控图。

  1. 途中cnc节点(红色)是一个展示图例,TEL节点根据状态显示为绿色

  2. TEL节点上面P:47.2ms 是一个,这是ICMP延时参考

  3. TEL节点上面L:14.0%是网络丢包参考,根据不同的值,背景色使用不同的展示图例

 

wKiom1ajWpyhVt0DAABHcZqzGTk370.png

第一个NODE是定义的CNC节点

LABEL 定义的是名称

TARGET 定义的是需要获取数据的来源,即方法cactihostid为57的主机状态。

USESCALE 定义的是使用哪个图例,根据KEYPOS cactiupdown配置,如果值介于0-0.5(事实上cactipudown取的值都为整数 0 1 2 3 ),那么就套用RGB三原色值为192 192 192的颜色为背景色。

POSITION 定义的坐标

 

第二个NODE定义的是CNC上边 P:*** 节点

LABEL 是一个字符串引用,取的是node:this:inpercent:%的方法,数据类型是小数点后1位浮点数,最后进行格式化输出。

LABELFONT是引用的字体编号

INFOURL 和 OVERLIBGRAPH 是WEB配置的浮动图形和连接页面,使用WEB端配置即可。

TARGET 定义的是需要获取数据的来源,即取一个RRD文件的值。

TARGET语法

TARGET targetspec

TARGET targetspec targetspec

TARGET targetspec -targetspec

TARGET targetspec n*targetspec

TARGET "targetspec"

gauge:/var/www/html/rra/129/6658.rrd:avg:- 是rrdtool的数据获取方式。

Gauge为rrdtool的数据类型,中间的即为rrd文件的路径。Avg是数据源的数据点,-为区间占位符。

这样就是取出rrd文件中最新的值。

USESCALE 定义的是使用哪个图例,这里P:** 只显示数字,并不包含图例套用,所以不做定义,但是由于默认有KEYPOS DEFAULT,所以必须指明 none来指定不做图例套用。

POSITION 定义的坐标,这里是使用的相对坐标,所以必须要写明父坐标,然后写入相对坐标的x轴 y轴

 

第三个NODE定义的是L:**% 丢包率

子指令跟第二个NODE定义差不多,所以这里只说一个指令。

USESCALE 定义使用的图例,根据之前定义的图例 KEYPOS cactiloss所示,如果值介于0-0.5之间,那么就使用RGB三原色值为 255 255 255的颜色,如果值介于5.5-9.5之间,那么就使用RGB三原色值为255 91  96的颜色。 以此类推……

 

 

 

Weathermap气象图之节点层叠

随着网络规模不断的复杂,Weathermap的拓扑不断的修改,可能就会出现图层覆盖的这种情况,

wKioL1ajWvOSLViuAAAOm6O7QVs461.png

Cacti节点挡住了其他图形,导致显示不完全。

这种情况通常是Node 武汉-90G 定义是在node P:** 之后,Weathermap读取配置文件是从上至下依次读取,所以造成了下一个Node节点的ICON挡住了上一个节点。

 

解决办法是编辑配置文件,修改node的排序

wKioL1ajWwvTrK2HAAAkYZsU1A0774.png

这样既可让Node  WH-90G_p置于上一个Node之上。

wKiom1ajWtmCP3w9AAAPJ9FQ_8o132.png




Weathermap气象图之rrd读数累加

还有种需求比如我有几台设备,上面分别有不同的用户在线数,也就是说数据源是分散在多台主机上的,怎样能通过Weathermap直观的展现出当前最新采集的用户在线数汇总呢。

wKioL1ajWz2hfJB-AAAdxQMIiww117.png

例子中的图其实是一个Node节点,根据前面说介绍的node节点格式化输出当前rrd文件值的方法,很容易理解,但是有多个rrd文件的话,Weathermap会自动累加吗? 答案是会累加的。

       根据之前TARGET指令的语法可知,可以有多个目标值,并且可以运算

 

 

TARGET 语法

TARGET targetspec

TARGET targetspec targetspec              默认运算操作为相加

TARGET targetspec -targetspec             相减(-号后不能跟空格)

TARGET targetspec n*targetspec           乘法运算乘以数字n 然后和第一个targetspec做加法运算

TARGET "targetspec"

 

wKiom1ajWxSC2DptAAA-PVaPjV0536.png

实际配置文件如图,新增了几个指令

{node:this:inpercent:%6d}     表示十进制数字,且最大长度为6位整数。

LABELOUTLINECOLOR 定义NODE文本边框颜色

LABELBGCOLOR   定义NODE文本框背景颜色

NOTES    定义鼠标触发文本提示框 \n表示换行符。

 

 

 

 

 

 

Cactihost方法状态值:

wKioL1ajW4vAbSuWAABf9v4JcZE868.png

其他方法见官方文档:http://network-weathermap.com/manual/0.97b/pages/config-reference.html#NODE_TARGET



SCALE刻度标尺

SCALE min max red green blue                        #不带标题不带说明的区间

SCALE scalename min max red green blue    #带标题不带说明的区间

SCALE min max red green blue red2 green2 blue2      #不带标题不带说明的渐变区间

SCALE scalename min max red green blue red2 green2 blue2       #带标题不带说明的渐变区间

SCALE min max red green blue tagtext           #不带标题带说明的区间

SCALE scalename min max red green blue tagtext      #带标题带说明的区间

SCALE min max red green blue red2 green2 blue2 tagtext       #不带标题带说明的渐变区间

SCALE scalename min max red green blue red2 green2 blue2 tagtext        #带标题带说明的渐变区间

SCALE min max none     #未定义的区间

wKiom1ajW2-DMbR3AAAPStaODn4751.png

使用渐变色可以使node节点根据值自动选择颜色匹配。


Cacti Weathermap 气象图高级用法(一) 

http://professor.blog.51cto.com/996189/1614404 


文档中还讲到一些配置指令,比如可以实现Link上显示提示文字(上行,下行)、默认Link弧线变为折角直线、比例图类型 等等,,,这就不一一列出了,使用方法参见官方文档。


更多用法参见附件文档。↓