cacti是以被监控的 【devices】 为中心,devices关联了哪些图形模板,关联了哪些数据模板,关联了哪些数据收集方法,这些咱们均可以在编辑devices是进行设置。php
每添加一个被监控的设备,有三个基本的步骤:html
Create devices 添加一个设备;linux
Create graph 为新增的设备建立图形ios
view 查看生成的图形
sql
咱们须要监控设备的状态,因此,一上来咱们干的第一件事就是添加 Devices。首先咱们点击“Devices“标签,进入设备面板,咱们看到已经存在了一个localhost。
windows
【console】-【Devices】-【Localhost】 安全
而后,咱们点击Localhost,对本机主机进行配置,"Description","Hostname","Host Template"这些选项都很是直观易懂。保持默认配置就好。bash
这里咱们主要修改编辑 SNMP Options,以下图所示,只要选择SNMP版本为“Version2”,和指定相应的community 及 SNMP Port,其余选项都不用动,而后点击右下角“Save”便可。
服务器
SNMP 版本 , 根据实际安装配置 SNMP 而定网络
Community 也是根据 snmpd.conf 配置文件中的定义
若是localhost没有安装 snmp,或者snmpd服务未启动,更或者是SNMP Community错误,在页面的左上角都会报错,说明cacti和snmp通讯错误。若是出现错误,请检查上述说起的这些问题。
若是SNMP配置没有问题,那么在正常状况下,会在左上角显示该被监控机的SNMP information,以下图所示
经过下图用红框标记的部分,咱们分别能够看出localhost这个devices所关联的"Graph Templates", "Data Queries",咱们能够点击红X,删除。或者点击Add按钮,添加。
由此,咱们也能够看出, HOST Templates 的做用, HOST Templates 结合了 Graph Templates 以及 Data Templates 。
Data Source List(此主机涉及到的 rrd 文件)
点击localhost编辑页面左上角的"Data Source List",查看数据源列表。
而后,咱们能够点击数据源的 name,而且打开数据源调试模式,以便查看更详细的信息。
咱们能够看到此数据源名为localhost_load_1min_5.rrd,定义了数据收集完以后,保存在什么地方。那么若是我想看这个rrd文件建立时,是使用的什么命令,该怎么办呢? 咱们能够点击"Turn On Data Source Debug Mode"查看,详细的建立rrd的命令,就像上图看到的。
一样,咱们也能够查看"Graph List"。
Graph List(rrdtool graph 相关)
回到devices编辑页面,仍是左上角的"Graph List",咱们能够看到此devices的图形列表。
而后咱们能够继续点击 Graph Title,查看特定的图形信息。咱们也能够查看具体的建立图形的语句,当咱们有时候遇到不出图的状况时,可是在rrd中,咱们可以经过rrdtool fetch 查看到数据,此时,咱们可能就须要到这里来查看一下,是否有问题。
好了,到此咱们应该对cacti的工做原理有一个大概的了解。那么这里再总结一下:
首先咱们要监控一个设备,咱们须要收集数据。数据从哪里来呢? 数据收集方法(Collection Methods)。
数据收集到了,如何保存呢?如何建立rrd文件呢? 数据模板(Data Templates)。
而后咱们把数据模板应用到某devices之上,就有了数据源 "Data Sources",也就是能够绘图了。
有了数据源,如何绘图呢? 图形模板(Graph Templates),或者自定义。
假设我要对localhost添加一些监控项,怎么办? 根据上面的思路,就很容易作了。
步骤一:添加监控项目。 添加 数据查询方法, 也就是定义如何获取数据,获取哪一个设备的数据
console -> Devices -> Localhost -> "Associated Data Queries"
第二步: 建立图形
而后,咱们选择页面右上角的“Create Graphs for this Host”,为这个devices数据查询建立图形。
而后,勾选须要建立图形的复选框, 点击页面右下角的 create 便可。注意,添加完成以后,并不会当即出图,须要等待一段时间,才会出图,不要大惊小怪。因为Cacti默认每5分钟到监测服务器上取一次数据,因此刚建立的监测点会出现图像不能显示的现象,须要等几分钟查看才会正常显示。
为了咱们查看图形方便,咱们能够建立Graph Trees,把监控的对象进行分类。更直观,便于咱们管理。默认状况下,仅包含 Default Tree。
a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
b. 进去Tree以后,点击右上角的Add,添加一个新的显示项。
c. 在Tree Item Type中选择Host,而后在下面的Host中选择咱们刚才建立的主机。点击Create。
d. 此时,再进入Graphs界面,就能够看到在Default Tree下加入了咱们新建立的主机。
新建Graph Trees:
点击“Graph Trees” -> “Add”
如今,Graph trees已经建立好了,接下来咱们把主机添加到graph trees中。继续在上一步的页面,点击“Add”,在“Tree Item Type”中,选择“Host”,其它默认便可,而后点击“Create”。
之后,咱们要查看某个主机的信息,直接到某个类别下面找便可。这样就可以清楚的分门别类,更方便咱们管理。
上面讲解了如何监控本地的主机,那么如何监控远程的主机呢?其实过程和监控本地主机的方式是相同的。可是请注意,前提是远程的主机上须要安装SNMP,并简单的配置。
假设被监控机是类Unix系统, 好比CentOS/RHEL系列:
第一步:在被监控机上安装snmp,并开启
[root@db ~]# iptables –F [root@db ~]# setenforce 0 # yum -y install net-snmp # yum -y install net-snmp-utils # 可选项 # chkconfig snmpd on ## 而后编辑配置文件,一般修改下面三行就好了 # vi /etc/snmp/snmpd.conf #容许访问的IP,后面的是和服务器之间的认证,不建议使用默认值 public,两边必须同样,这边改了服务器那边也要修改一下。 com2sec notConfigUser 192.168.0.0/16 public view all included .1 access notConfigGroup "" any noauth exact all none none ## 重启snmpd服务 # service snmpd restart ## 在监控机上测试, 注意被监控机的 iptables, 和 SELinux [root@db ~]# snmpwalk -v2c -c public 192.168.1.32 system.sysUpTime.0 Timeout: No Response from 192.168.1.32 [root@db ~]# snmpwalk -v2c -c public 192.168.1.32 system.sysUpTime.0 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9759) 0:01:37.59
第二步:在Cacti上配置添加监控主机
【Devices】 - 【Add】 添加新设备, 并填写被监控机的各类信息,而后点击右下角的【Create】便可。
其中Host Template请选择“Local Linux Machine”或“ucd/net SNMP Host”(选择一个合适的主机模板)
SNMP Community 必定要确保和被监控机 snmpd.conf 中定义的一致
若是SNMP配置没有问题,那么此时Cacti页面左上角会出现 SNMP Information, 不然保存“SNMP error”。
若是出现 SNMP error, 请检查被监控端的snmpd 服务是开启,防火墙设定, 以及Cacti 设置的 SNMP Community 是否一致。能够手动在监控机上执行 snmpget/snmpwalk 命令进行测试。
点击【Create Graphs for this Host】
点击右上角的“Create Graphs for this Host ”为该设备建立需监测的内容。点击右侧的正方形选择框勾选上要监测的项目,而后 "Create" 便可。
对于windows7/8如何开启 snmp:
控制面板 -> 程序和功能 -> 启用或关闭windows功能 -> 勾选简单网络管理协议(SNMP)
而后在“services”服务中,编辑其属性,设置community。
对于windows xp/2003:
这里以Windows Server 2003为例,对于其余Windows产品,方法相似。首先确认当前的windows组件是否已经安装了SNMP协议,默认状况下是没有安装的。若是没有安装,则按如下步骤进行
控制面板 -> 添加或删除程序 -> 添加/删除windows组件 -> 管理和监视工具 -> 详细信息 -> 勾选简单网络管理协议(SNMP)。
在安装过程当中,会提示插入光盘,指定I386的文件夹位置。没有怎么办? 这里我上传了一个附件,你们能够下载。提供windows 2003的SNMP独立安装组件,只有200多K,下载后解压,而后指向这个目录便可。SNMP组件安装成功后,接下来打开“管理”菜单中的“服务”。
找到SNMP Service,双击它进行配置。这里须要注意的是,在前面安装SNMP协议组件以后,SNMP Server会默认启动,而它下边的SNMP Trap Service是不要启动的,请关闭它。
在SNMP Service的配置窗口中,你只须要切换到"安全"选项卡,按照如下的图示进行填写,这里的团体名称就是前边介绍过的SNMP v2c版本中的密码字符串,这里的"public"只是一个例子,你能够填写其它的字符串,在配置cacti的SNMP Option时,选择v2c协议,同时在 Community输入框中填写这个团体名称便可。
另外一个须要特别设置的地方是下边的受权主机,选择"接受来自这些主机的SNMP数据包",而后在下边的指定主机中添加cacti/Nagios 监控中心的IP,这使得除此以外的其它服务器没法获取你的服务器监控信息。
一切配置好后,保证SNMP Service已经开启,而且若是之后重启了服务器,也请检查是否开启了SNMP服务。另外,还要保证你的服务器已经打开了SNMP Service的端口,默认为UDP 161。若是你启用了系统防火墙,那么请添加这个例外端口,打开本地链接->属性->高级->设置,在"服务"标签中点击添加,添加如 下端口:
最好在监控端使用snmpwalk等命令测试一下。
对于windows server 2008
功能—添加功能安装SNMP服务(安装完可能须要重启)
配置SNMP 的属性: 管理--配置—服务—snmp service 属性中 安全-添加如下内容。而后重启snmp服务
好了,这里扯远了,回到正题,监控远程主机,一样,咱们按照下面的三个步骤便可。
进入Cacti的console面板->点击“Devices”进入设备面板->点击“Add”添加新设备
其实这里最关键的就是Hostname,Host Template,以及SNMP Options,其中Host Template请选择“Local Linux Machine”(选择一个合适的主机模板,这里如何添加模板尚未讲到,后面的学习记录中讲解)->点击“Create”保存信息,若是SNMP链接没有问题,左上角会出现该服务器的信息,不然会出现“SNMP error”的红色字样。
而后,其后的过程,和监控本地主机彻底相同。不过,请注意因为cacti默认每5分钟执行一次poller.php去收集数据,因此刚建立的主机并不会马上出图,稍等片刻便可。
一步一步 监控windows server 2008 R2 实战演练
第一步:前提条件
1、已安装好 Cacti
2、准备好如下安装文件,在附件中已提供下载:
Cacti_SNMP_Informant_Standard_Metrics_v13.zip (该cacti监控模板支持WinXP/Vista/Win7/Win2000/2003/2008/2012 x32/x64)
第二步:配置被监控主机(windows server 2008 R2)
为window系统配置snmp服务及安装snmp informant(此处以64位的win 2008为例)
进入功能添加向导,勾选SNMP服务,而后点击”下一步”, 安装完成后,点击关闭.
打开【服务管理器】,找到SNMP Service项【双击】,打开属性窗口
弹出的窗口中选择”安全”选项卡,并设置社区为: public (根据实际需求)
按须要可设置“接受来自任何主机的SNMP数据包 (不建议)” 或 “接受来自下列主机的SNMP数据包(推荐)” ,只指定个别机器 IP 地址.
而后肯定并重启SNMP Service.
解压文件informant-std-16.zip并安装其中的informant-std-16.exe(双击而后按提示安装便可,默认安装便可,此处不特别介绍。)
开启SNMP服务的防火墙例外,以下图所示,SNMP使用161端口,咱们必须开放161端口才能够。
注意:防火墙设置关键点以下图所示,要求所有设置成“任何IP地址”,不然在监控服务器上执行如下命令会得不到任何信息
测试:
//修改前 # snmpwalk -v 1 -c public 10.138.xx.xx .1.3.6.1.2.1.1.1.0 Timeout: No Response from 10.138.xx.xx //修改后 # snmpwalk -v 1 -c public 10.138.xx.xx .1.3.6.1.2.1.1.1.0 iso.3.6.1.2.1.1.1.0 = STRING: "Hardware: Intel64 Family 6 Model 46 Stepping 6 AT/AT COMPATIBLE - Software: Windows Version 6.1 (Build 7600 Multiprocessor Free)"
以上被监控的客户端设置完毕
第三步:配置cacti 服务器
一、导入cacti监控模板
解压文件Cacti_SNMP_Informant_Standard_Metrics_v13.zip,把template文件夹中的6个模板文件,经过cacit操做界面导入。
二、而后把文件夹resource\snmp_queries中的xml文件,放到cacti服务器中的相应目录,个人服务器为/usr/share/cacti/resource/snmp_queries,具体目录根据cacti安装路径会有所变化。还有设定这些文件的访问权限,保证全部用户都有读的权限。以上cacti模板安装完成
点击Devices,添加一台设备,以下图所示。
这里输入设备的IP地址和描述,在HostTmeplate当中选择“Windows Host - SNMP Informant”,前天配置以下图所示,重点是×××底纹标注部分。
注意:
在接下页面中显示的Associated Graph Templates和Associated Data Queries的1至3项是cacti自带的针对linux的模板,与刚才导入的模板无关,因此最好删除了,省得建图时误错了。以下图用×××底纹标注的内容都删除掉。
http://www.cnblogs.com/xwdreamer/p/3877608.html
好了,先写到这里。在下一篇中继续讲解。