柴少鹏的官方网站 技术在分享中进步,水平在学习中升华

Centos6.4 搭建cacti(二)

第一部分:http://www.51niux.com/?id=65,已经记录了如何将cacti搭建起来,这篇博文围绕搭建起来的cacti来写一些东西。

一、阀值模板的创建

前面我们已经记录创建了一个主机模板,现在cacti已经能正常的添加主机,出图了,那么下一步呢,我们除了可以查看流量图以外,也应该让其承担起异常流量报警的作用,所以就需要创建阀值模板,并添加阀值,进行流量监控。

既然说到了模板,肯定是根据一批机器拥有的共性来创建模板。可以根据不同的流量业务类型,有高有低,来创建不同的阀值模板啊根据自己的实际情况进行创建不同种类的流量阀值模板嘛。我这里就是根据千兆和万兆的网卡类型进行的阀值模板定义,那些个别的再单独定义一个阀值模板。

现在以创建万兆网卡流量模板举例:

方法一:

console==》Templates==》Threshold Templates==》Add==》Data Template:下拉选项框中选择:Interface - Traffic==》Data Source:下拉框中选择:traffic_in(流量流入)==》Create(然后就会弹出这个模板的配置页面)==》Template Name:(阀值模板名称,最好有些标志性,如:W接口 - 流量 [traffic_in])==》Re-Alert Cycle:(这里是选择如果阀值报警之后多长时间时间再次报警,例如我选择的是Every 3 Minutes每三分钟再次报警)==》Min Warning Trigger Duration:(这里选择Never:因为没有用到)==》High Threshold:(阀值得上限,超过这个值就流量报警,这里要注意一下,阀值里面默认的单位不是bits,而是bytes,所以这里如果你要设置一个2G的阀值上限的话,就是:250000000,计算公式:250000000*8/1000/1000/1000,因为带宽之间的的单位转换倍数是1000而非1024)==》Low Threshold:(流入的下限,我这里没有设置,一般交换机的出口那里会设置)==》Min Trigger Duration:(触发阀值报警的时长,我这里选择最短的一分钟,1 Minute,这里有一点要注意,你的数据模板里面要将Step设置为60,这里才能选择1分钟,不然是没有的,以流量模板来说,就是你的Interface -Traffic模板里面的Step要设置为60)==》Data Type:(里面有选择绝对值,CDEF里面定义的计算模板,还有百分比)这里我们用Exact Value绝对值==》Alert Emails:(接受阀值报警的收件人,这里多个收件人之间用,号隔开)==》save

blob.png

有流量的入的阀值模板,就要有流量流出阀值模板,不一样的地方,就是在创建阀值模板的时候,Data Source:这里选择traffic_out,模板名称改一下,如:W接口 - 流量 [traffic_out],然后High Threshold的阀值流出上限根据需求调大一点,因为服务器一般流出都比较高嘛,当然也有流入型的。

好了阀值模板创建完成后,就可以在图形树的cacti图形的去添加阀值了,上一篇博文也已经再最后一张图里面用箭头指出来了,当然Management的Thresholds那里也可以添加,但是显然不如第一种直接在graphs下面对应的图形树里面找到对应的流量图去添加阀值来的方便。

博文来自:www.51niux.com

方法二:

看了上面那一大坨,有人会说,我靠流量单位还要转换,好麻烦。如何直接以兆的形式创建阀值模板呢?

console==>Management==>Graph Management==>CDEFs==》Add==>Name:(这里是模板名称,还是要有点意义,我这里是turn bytes to Mbits==>Add==>CDEF Item Type:选择Special Data Source==》CDEF Item Value:选择CURRENT_DATA_SOURCE==》Create(然后又跳回刚才的界面,下面就要继续点Add),我这里就把选项排序写一下:

Special Data Source ---- Current Graph Item Data Source --- 点击创建(Create)

Custom String ----  8(自己手工填入的)---- 点击创建(Create)

Operator ---- *(也就是功能乘以) ----点击创建(Create)

Custom String ----  1000(自己手工填入的)---- 点击创建(Create)

Operator ---- /(也就是功能乘以) ----点击创建(Create)

Custom String ----  1000(自己手工填入的)---- 点击创建(Create)

Operator ---- /(也就是功能除以) ---- 点击创建(Create)

最后:

cdef=CURRENT_DATA_SOURCE,8,*,1000,/,1000,/

blob.png

然后就是阀值模板的创建,我们之前阀值模板Data Type这里不是选择的绝对值嘛,现在选择CDEF,Threshold CDEF选择我们刚创建的turn bytes to Mbits,这时候High Threshold的流量上限如果再想设置成2G,就直接写上2000,也就是2000M便可。

blob.png

阀值添加完毕之后,让我们看看效果:

blob.png

blob.png

因为我把阀值名称临时改了下,所以模板那里显示是没有继承,我这里是一个万兆网卡,经常测试,流量图和阀值实时流量对应是正确的。

注意:阀值模板定义这里有两个坑要注意一下。

第一个坑:

第一个坑于其说是坑,不如说是一个功能。我们可能要定义多个阀值模板,但是每个阀值模板里面都要将联系人全部输入一次嘛?要是所有的阀值联系人都是相同的,我们还要复制多份到上图中的收件人列表里面吗,显然是NO的。

console==>Management==>Notification Lists==>Add==》Name:(这里是你通知联系人列表的名称,比如运维,经理,总监等)==》Description:(你的详细描述,比如描述这个组里面都是谁,这个联系人组的特殊性等)==》Email Addresses:(多个联系人用逗号隔开)==》Create

blob.png

这时候你再去你的阀值模板定义列表去查看会发生了变化,多了两个列表选择框:

blob.png

这样我们第一个坑就填上了,联系人列表就可以被多个地方调用了。

第二个坑:这才算是真坑啊。

这个坑是怎么回事呢,就是你跟着我上面的配置,你会惊奇的发现你的阀值触发是没问题的,阀值触发邮件也可以发出,但是当你流量状态恢复的时候,却没有邮件通知,也就是只发报警邮件,不发恢复邮件。

主要是:Warning High / Low Settings下面我们没有设置,Warning Breach Duration地方我们选择的是Never,如果你想接受恢复邮件报警的话,Warning Breach Duration这个地方要设置成Alert High / Low Settings里面的Breach Duration的触发时间一致,当然不一致也没关系,依旧会有恢复报警,但是你的阀值触发时间就不准了。所以要保持一致。如果你不做分级报警机制,也就是先触发warning的值发通知给一拨人,如果严重了也就是触发了Alert再发送给一拨人,这种分级报警的话,Warning High Threshold和Warning Low Threshold和Warning Notification List都不用设置,你需要设置Warning Breach Duration这一个地方,说的有点绕啊,请看下面的截图。

blob.png

好了,两个坑填完了。下面一张截图为,阀值模板报警设置的另外一种类型,稍微复杂点。

blob.png



博文来自:www.51niux.com

二、自定义数据模板以及图形模板(以监控交换机CPU图举例)

添加交换机CPU的流程图(因为不同型号的交换机关于cpu的OID值不一样,所以以这个举例好一点,而且我们平时也会监控交换机的CPU)

第一步:添加数据模板

console==>Templates==》Data Templates==》Add(跳出一个数据模板设置页面)==>Name(这里是阀值模板的名称设置,如我们可以设置成:华为路由交换 - 5分钟平均值)==》Name(这个Name为数据源的名称,等会图形模板的设置的时候需要关联这个名称,这里我们设置成:5分钟平均值)==》Data Input Method(选择默认的Get SNMP Data)==>Step:我们还是设置为60==》Internal Data Source Name:(数据源项目名称:右边有个new可以添加新项目,Interface - Traffic不就是流入和流出两个嘛)这里设置成5min_cpu==>Create(多出一个下拉列表)==>OID(就是这个地方,我们snmp取值不是通过OID去取值嘛,所以这里就是你要取cpu五分钟值得OID值是多少,这个好多要自己在交换机的mib中找,或者咨询交换机厂商,或者找网站查询,如查找华为交换机的:http://support.huawei.com/enterprise/zh/index.html)我们这里以华为S5752c举例,OID值为:.1.3.6.1.4.1.2011.6.3.4.1.3.0.0.0==>save

blob.png

第二步:添加图形模板

console==>Templates==》Graph Templates==>Add==>Name(图形模板名称,如:Huawei - CPU使用率)==》Title (--title)标题名称(如:CPU使用率)==》Rigid Boundaries Mode (--rigid):刚性边界模式进行勾选==》Vertical Label (--vertical-label):百分比==》Create(在页面上方弹出两个页面框)

先说第一个框:

Add==》Data Source:选择我们的数据模板(华为路由交换-5分钟平均值-(5min_cpu) 这就跟上面的数据模板对应上了啊)==>Color(选择流量图的颜色,我这里选择了FF0000红色)==》Graph Item Type:(数据图的类型,我这里选择AREA类型)==》Consolidation Function:选择AVERAGE==》GPRINT Type:选择Normal==》Text Format:CPU使用率

以此类推,总共四行,下面是添加完之后的截图:blob.png

注意:再Item #4里面跟其他有一个地方不一样:Insert Hard Return这里其他三个都没有勾选,第四个要勾选,插入硬回车。

blob.png

然后进行另一项的设置:

添加完上面,下面会出现一个,先点击右边的X号删除掉,我们重新添加两个。

blob.png

Add==>Name:(名称为:CPU使用率数据源)==》Associated Graph Items:(四个全部关联上)==》save

blob.png

Add==》Name:(名称为:数据图形颜色)==>Field Type:(选择Color)==》Associated Graph Items:只勾选第一个Item #1: AREA (AVERAGE)==>save

所有都操作完毕之后,最后的效果图:

blob.png

好了数据模板和图形模板都已经创建完毕之后,下一步就是创建主机模板,主机模板前面已经讲过了,这里就不再记录了,然后再创建一个交换机的主机模板,里面加上cpu,流量等。然后,就是添加交换机并给添加上cpu的使用率。

下面是添加后的CPU使用率的图:

如果你不想图形是这种铺展开来的,想让图形像流量的流出那样是曲线图的形式,再图形模板的Graph Item组里面的第一行的Item #1的Graph Item Type:选择为LINE1,也就是线性展示。

blob.png

blob.png

然后就是创建交换机cpu使用率的阀值模板了,前面已经讲述了如何创建阀值模板,这里就不讲述具体的创建过程了。

多说一句,交换机的流量监控和cpu监控很重要,因为机房网络这块,比如你的机房被流量攻击啊,或者你的机房网络中出现了问题造成交换机的cpu使用率特别高影响了网络传输啊,等等,反正很重要,一定要监控起来及时报警以便我们处理问题,将影响降到最低。


三、交换机上行接口流量图汇总到一张图

很多时候我们比较关心交换机上行接口的流量趋势,如果不想一张张图的看,想让其汇总到一张图里面,看多个交换机出口的流量走势的话,可以搞一搞。

第一步:创建图形模板

console==>Templates==》Graph Templates==》name:(还是自己创建个标志性的,我这里叫做交换机上行接口)==》Title(--title):(自行创建,我这里是:接口流量汇总)==》Rigid Boundaries Mode (--rigid):(勾选上)==》Vertical Label (--vertical-label):这里是你垂直标签显示的内容,我这里是:位/秒==》Create(上面个就弹出两个页面框了,上面已经说过了)

图形模板的创建,上面我已经记录过了,这里就以截图的形式展示了:

有一点要注意的就是:CDEF Function要选择:Turn Bytes into Bits,也就是将字节转换成位。

blob.png

注意:这里有一个坑

你每次添加完新的两组Item组之后,都默认被第一个Data Source1和Data Souece2组关联,对应的就是我们改完名字的GZ-1/020流出和GZ-1/0/20流入,所以每次新添加完新的Item组之后,都要去这两个数据源关联组里面去讲默认关联去掉,也就是下图中的关联对应,如何解决这个问题,我还没有解决,如果有网友知道解决办法可以给我留言,谢谢。


下面是SH-1/0/19流入的配置截图:

blob.png

第二步:创建对应的图形

console==>Management==>Graph Management==>Add==>Selected Graph Template:(选择我们创建的图形模板:交换机上行接口)==》Host:(不选择,默认的None)==》Create(弹出下拉框)

blob.png

第三步:添加图形树

选择对应的图形树进行添加

blob.png

选择对应的图形树,进入图形树下面选择Add添加==》Tree Item Type:(选择Header,这相当于二级子目录的效果,因为我们还要把对应的出口流量图放到这个二级图形树下面)==>Title:(自己想一个好点的名字:机房出口流量汇总)==》Create==》点击机房出口流量汇总一边的(Add)==>Tree Item Type:这次选择Graph==》Graph:(选择接口流量汇总,这就是我们之前创建的图形模板里面的Title标识)==》Create

第四步:查看测试

blob.png

注意到没有,我们的汇总效果已经出现,但是我们之前设置的什么垂直标签的位/秒,还有什么最大,平均,流入,流出,这些汉字都没有出现啊,是的现在cacti这个流量图还不支持中文呢,要设置一下让其支持。

先是我们的linux服务器已经支持中文字符集也就是有UTF-8之类的中文字体文件。

然后进入到cacti的站点目录,在lib/functions.php文件的24行,添加上: setlocale(LC_CTYPE,"zh_CN.UTF-8");

不用重启web服务,我们再次刷新页面,进行查看:

blob.png


四、模板的导入和导出

首先我们可以将我们做好的cacti还未添加主机的时候,数据库导出来一份,等其他机房创建cacti的时候直接导入数据库,然后稍作修改就可以了。

然后如果我们cacti已经启用了,想将模板导出给别的cacti,或者导入一些其他的模板呢。

console==>Import/Export==>下面Import Templates是导入,Export Templates是导出,这里没什么好说的,就是图形化的东西,一看就懂了。


五、cacti的一些常见错误修复总结

如果有图无数据:

1.system utilities -->Rebuild poller cache(重建缓存,有的时候可能由于设备网卡更新了,建立的缓存是错误的,添加的时候可能加错了等,小概率事件,可以重建缓存,或者blob.png在添加图形的时候,点击一下这个小齿轮,确认是获取的最新状态信息。)

2.系统时间不准确,重新设置时间 

3.图像没有生成,运行#/usr/bin/php /var/html/www/cacti/poller.php --force  (用这个命令也可以检测采集时候的报错信息)

4.权限问题,修改权限#chmod 777 -R /var/www/html/cacti/rra  (怕麻烦的话,可以这样干,当然也可以给予web用户的授权)

5.数据库表有损坏,修复#mysqlcheck -ao cacti --auto-repair -uroot -p  

6.重启snmpd服务#service snmpd restart

7.测试是否获取数据snmpwalk -v 2c -c test 对端IP if  (测试是否能获取数据,可能就采集不了数据导致没有流量图呢)

8. 也可能是图形模板不对,打个比方如果交换机的cpu图形模板不对的话,也会有数据但是没有图。

具体问题具体分析吧,有什么问题网上搜一下,毕竟cacti也不是很复杂的东西,一般遇到的也是常见问题,遇到了非主流的问题可能是自己操作有误。


#注(有个插件挺好的补充一下):

如果你设计到将某些主机的流量图合并到一起,然后还让他们的流量合并累加到一起,总之就是合并流量图吧,有个插件挺好用的:Aggregate(cacti 合并流量图)

cacti下载链接:https://docs.cacti.net/plugin:aggregate

至此,关于cacti的第二部分就记录到这里!

作者:忙碌的柴少 分类:cacti 浏览:2360 评论:0
留言列表
发表评论
来宾的头像