opijoiu 发表于 2016-1-25 09:06:07

Cacti Weathermap 高级用法 (二)

本帖最后由 opijoiu 于 2016-1-25 09:07 编辑

成都长宽Weathermap实际运用的效果图示例:
这是一个CNC出口的质量监控图。

[*]途中cnc节点(红色)是一个展示图例,TEL节点根据存活状态显示为绿色
[*]TEL节点上面P:47.2ms 是一个,这是ICMP延时参考
[*]TEL节点上面L:14.0%是网络丢包参考,根据不同的值,背景色使用不同的展示图例

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

通常Weathermap画图都是通过页面来操作,但是基于WEB页面的配置选项提供的少之又少,一般只能完成基本的功能,对于一些复杂点的需求就无能为力了。对于复杂点的配置就需要通过Weathermap的修改配置文件来实现,Weathermap的操作文档可以查看官网,也可以查看cacti中weathermap自带的文档,cacti自带的文档存放页面是http://****/plugins/weathermap/docs/pages/config-reference.html。配置文档各个定义指令通常分为三大类,Node类、Link类、和 全局定义类。
通常weathermap在cacti上的实现是已插件的形式存在的,所以Weathermap插件对于每个气象图的配置文件存放目录是在服务器<path_cacti>/plugins/weathermap/configs 目录中(默认path_cacti是在/var/www/html目录下),每个气象图会有个配置文件名和标题,如图
图中的配置文件名称就是和<path_cacti>/plugins/weathermap/configs目录下的文件对应的,我们来看看配置文件的内容。
默认配置文件开始都是全局配置,首行的FONTDEFINE是定义字体指令,语法如下:
FONTDEFINE
FONTDEFINE fontnumber gdfontfileFONTDEFINE fontnumber ttffontfile fontsize有两种用法,第一种是使用php的gd库来生成文字,第二种是外部ttf字体渲染。
FONTDEFINE 编号 字体文件路径 字体大小
默认使用web端配置的weathermap只有英文字体,所以不能显示中文。需要添加一个中文字体才能够正常显示中文名称。
这几行指令是配置气象图的大小、类型、默认引用字体编号、标题、以及气象图刷新时间角标。
默认图例定义,默认所有数值的颜色配置都是按照默认图例来显示的。图

添加的两个图例,图例名称分别为cactiupdown cactiloss 用于显示主机在线状态和丢包率的比例。
定义默认节点指令 以及 默认连接指令

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

1.AdvancePing 脚本及模板
下载地址:http://forums.cacti.net/about10049.html
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\下面可以根据这些rrd文件把数据输出到weathermap中。

Weathermap气象图之高级用法
根据之前的效果图,来具体说说那三个实现。
这是一个CNC出口的质量监控图。

[*]途中cnc节点(红色)是一个展示图例,TEL节点根据状态显示为绿色
[*]TEL节点上面P:47.2ms 是一个,这是ICMP延时参考
[*]TEL节点上面L:14.0%是网络丢包参考,根据不同的值,背景色使用不同的展示图例

第一个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 targetspecTARGET targetspec targetspecTARGET targetspec -targetspecTARGET targetspec n*targetspecTARGET "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 9196的颜色。 以此类推……



Weathermap气象图之节点层叠
随着网络规模不断的复杂,Weathermap的拓扑不断的修改,可能就会出现图层覆盖的这种情况,
Cacti节点挡住了其他图形,导致显示不完全。
这种情况通常是Node 武汉-90G 定义是在node P:** 之后,Weathermap读取配置文件是从上至下依次读取,所以造成了下一个Node节点的ICON挡住了上一个节点。

解决办法是编辑配置文件,修改node的排序
这样既可让NodeWH-90G_p置于上一个Node之上。



Weathermap气象图之rrd读数累加
还有种需求比如我有几台设备,上面分别有不同的用户在线数,也就是说数据源是分散在多台主机上的,怎样能通过Weathermap直观的展现出当前最新采集的用户在线数汇总呢。
例子中的图其实是一个Node节点,根据前面说介绍的node节点格式化输出当前rrd文件值的方法,很容易理解,但是有多个rrd文件的话,Weathermap会自动累加吗? 答案是会累加的。
       根据之前TARGET指令的语法可知,可以有多个目标值,并且可以运算


TARGET 语法
TARGET targetspecTARGET targetspec targetspec            默认运算操作为相加TARGET targetspec -targetspec             相减(-号后不能跟空格)TARGET targetspec n*targetspec         乘法运算乘以数字n 然后和第一个targetspec做加法运算TARGET "targetspec"
实际配置文件如图,新增了几个指令
{node:this:inpercent:%6d}   表示十进制数字,且最大长度为6位整数。
LABELOUTLINECOLOR 定义NODE文本边框颜色
LABELBGCOLOR   定义NODE文本框背景颜色
NOTES    定义鼠标触发文本提示框 \n表示换行符。






Cactihost方法状态值:

其他方法见官方文档:http://network-weathermap.com/ma ... ce.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   #未定义的区间使用渐变色可以使node节点根据值自动选择颜色匹配。
Cacti Weathermap 气象图高级用法(一)
http://www.iyunv.com/thread-169053-1-1.html
文档中还讲到一些配置指令,比如可以实现Link上显示提示文字(上行,下行)、默认Link弧线变为折角直线、比例图类型 等等,,,这就不一一列出了,使用方法参见官方文档。

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


tty9111 发表于 2016-1-31 16:24:38

谢谢分享

jvozen 发表于 2016-7-18 17:34:52

非常棒的文章,谢谢分享!!!!!!!!{:6_402:}
页: [1]
查看完整版本: Cacti Weathermap 高级用法 (二)