cacti是以被监控的 【devices】 为中心,devices关联了哪些图形模板,关联了哪些数据模板,关联了哪些数据收集方法,这些我们都可以在编辑devices是进行设置。
每添加一个被监控的设备,有三个基本的步骤:
Create devices 添加一个设备;
Create graph 为新增的设备创建图形
view 查看生成的图形
我们需要监控设备的状态,所以,一上来我们干的第一件事就是添加 Devices。首先我们点击“Devices“标签,进入设备面板,我们看到已经存在了一个localhost。
【console】-【Devices】-【Localhost】
然后,我们点击Localhost,对本机主机进行配置,"Description","Hostname","Host Template"这些选项都非常直观易懂。保持默认配置就好。
这里我们主要修改编辑 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 �CF [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 实战演练
第一步:前提条件
一、已安装好 Cacti
二、准备好以下安装文件,在附件中已提供下载:
Cacti_SNMP_Informant_Standard_Metrics_v13.zip (该cacti监控模板支持WinXP/Vista/Win7/Win2000/2003/2008/2012 x32/x64)
informant-std-16.zip
第二步:配置被监控主机(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 服务器
1、导入cacti监控模板
解压文件Cacti_SNMP_Informant_Standard_Metrics_v13.zip,把template文件夹中的6个模板文件,通过cacit操作界面导入。
2、然后把文件夹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
好了,先写到这里。在下一篇中继续讲解。