CaCti使用
http://foreveryan.blog.51cto.com/3508502/775558
I.总览
Cacti和Nagios的监控体系可以说是使用广泛而且支持丰富的国内外的运维人员都需要掌握的一套监控体系,这套体系的好处在于使用Cacti的强大画图和自定义画图能力,以及Nagios的可控报警。但是网上的大部分内容都是如何安装,在安装成功如何使用的方面介绍的很少,而真正开始用之后,为了工作需要就需要不断地去Cacti官网查看使用文档,或者论坛去翻别人的帖子,十分麻烦。于是我决定写一篇使用方面的手册,以让大家真正会用这套系统。
本文不包含任何Cacti和Nagios的安装工作,如需安装,请移步: 本文用的Cacti版本为最新的 0.8.7i |
II.Cacti的使用
Cacti的常用服务器的画图大部分都是使用模板的形式做的,而Cacti安装好之后本身自带了一部分模板,这些模板虽然可用,但是支持的项目太少,于是我们要寻求更多的模板以及更优化的内容。
Cacti的官方的模板库:http://docs.cacti.net/templates
2:如何在Cacti上添加一个新主机并监控相关的内容:(以添加Linux主机为例) 1.创建画图 a. 在Cacti的Web页面Console->Import Templates导入响应的xml模板文件。b. 在Linux上cacti/resource/snmp_queries中放入模板相关的xml数据收集文件。并确保属主和属组均为cacti。 c. 点击Console->Devices,打开设备管理页面。 d. 点击右上角的add,添加一个新的机器
e. 当主机的信息填好之后,点击Create
h. 添加好相应的模板之后点击Save。此时左上角会出现Save Successful.
2.在Graphs界面显示新添加主机。 a. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。 |
III.Cacti的常用模板
1.Windows常用模板 为了解决基本的监控项,我们需要以下模板。 我们还需要在Windows主机上安装一个软件,以确保SNMP能发送更多的信息为我们提供数据采集:informant-std-16.exe
使用A模板来监控Windows的CPU项目
|
2.Linux常用模板 |
3.Switch && Router的相关模板 |
IV:自定义脚本的添加以及监控
很多时候,我们需要为我们独有的环境去指定监控内容,那么如何制定呢?就可以通过自己写脚本的方式进行收集数据。这里我用一个监控QQ在线人数的例子来举例。
准备工作:
这个里面只有最后一行是有用的,其他的为curl的抓取信息。
|
1.创建数据输入方式
1. 在Console-->点击Data Input Methods
2. 点击右上角的Add,添加一个新的数据获取方式
3. 点击Create,出现新的项目
4. 新的项目包括Input Fields和Output Fields,即输入内容和输出内容,输入内容其实就是向脚本传递函数,我们这个脚本不需要传递什么参数进去,于是没有,只有Output Fields。
5. 在Output Fields上点击Add,添加新的输出内容。
6. 在Field[Output]中输入我们脚本的输出项:这里我填写“QQ_Now”
7. 在Friendly Name中输入解释输出项的内容,内容随意。
8. 勾选Update RRD File后,点击Create
9. 然后查看我们整个的数据获取方式信息,点击Save,左上角应出现“Save Successful”
2.创建数据源
1. 在Console->点击Data Sources,进入数据源界面
2. 点击右上角的Add,添加新的数据源
3. 确保Data Template和Host均为None。直接点击Create
4. 在新出现的信息面板中输入相关内容
5. 点击Create,此时左上角会出现Save Successful
6. 注意系统自动给生成的RRD文件路径,确保里面不会出现连续两个反斜线的路径信息。如果出现,请手动修改为一个反斜线。如:<path_rra>/1194.rrd
7. 点击Save,看到Save Successful,则数据源创建成功。
3.创建图像
1. 选择Console--> Graph Management,进入图像管理
2. 点击右上角的Add,添加一个新的图像
3. 选择Graph Template以及Host均为None,然后点击Create
4. Title中输入图像的名字,其他保持不变。并点击Create
5. 然后你会看到多出的Graph Items,以及中间有一个看不到图的红叉,因为这个图我们还没有定义。
6. 在Graph Items中点击Add,添加画图规则。
7. 添加完画图内容之后,点击Create/Save,返回之前的页面,接下来还要添加数据的展示内容。
8. 再次点击Graph Items中的Add,这次添加的是数据的展示,展示当前值。
9. 设置好后点击Create创建这个项目,然后按照这个方法,分别创建最大值,最小值,平均值的展示内容。
10. 添加好后内容如图。
4.将自定义好的图形,加入到Graphs面板
1. 在Cacti Web界面Graph Trees中,选择相应的列(或者系统默认的Default Tree)。
2. 进去Tree之后,点击右上角的Add,添加一个新的显示项。
3. 在Tree Item Type中选择Graph,然后在下面的Graph中选择我们刚才创建的图像。点击Create。
4. 此时,再进入Graphs界面,就可以看到在Default Tree下已经出现了我们新创建的图像。
V.Cacti问题 Q & A
1.填完Drivers信息之后显示红色的SNMP error
这是由于被监控机的SNMP设置问题,没有允许我们监控机进行监控,或者Community不匹配导致的。
Linux可以在/etc/snmp/snmpd.conf中修改/增加发送snmp的机器,以及community。
Windows可以在Snmp服务中增加允许发送snmp的机器,以及community。
2.添加完图之后,等待了无数时间图依然无法绘制,反馈给我们一个红色的X。
首先,如果你是用添加的模板创建的图,那么显示不了的话,很有可能是由于模板太老,或者模板不正确导致的。可以考虑更新作者的最新模板以重新画图。当然,如果图像的确画不出来,那么我们可以打开画图的Debug日志的方式进行排错。
进入Graph Management,在Host中选择我们画不出图的那个Host,然后点Go,这样就在下面列出了所有在这个Host中的图像列表,点击那个无法画图的列表。这就进入了我们选定主机的相关图像的设置界面,我们应该可以看到这个界面下方依然有一个红X,证明我们无法画图,所以点击右上角的“Turn on Graph Debug Mode.”来打开Debug日志,这时候,就可以看到页面下方多出了"RRD Tool Command:"的列表,里面详细的描述了RRD工具是如何为我们画图的,这都不是关键,关键是最后的RRD Tool Says:比如
这里面是RRD Tool 告诉的我们为什么它无法画图,我们可以看到我当前例子的没有画图的原因是316.rrd这个文件不存在,说明在创建的时候rrd没有正确的创建出这个文件,这就有可能是所用的模板有问题了。
在这里,这是一个很好的查看为什么没有画出图的地方,没有画出的图RRD Tool会一一的告诉我们,我们只需要根据它说的来修正,直到RRD Tool Says: OK
3.图什么的都有,但是数据都是N/A,这是要闹哪样?
这个的解决办法其实跟无法画图的解决一样,就是我们去看数据的Debug日志。
进入Data Sources,在Host中选择没有数据的Host,然后在下面的列表中选择没有数据的那个图。进入数据设置界面,然后点击右上角的“Turn on Data Source Debug mode”,然后去分析它的报错。
4.在给主机添加Data Query的监控项的时候发现里面没有获取到数据。
这时候,如果它获取不到数据,我们就无法给它画图。因为在给它创建的图的界面上显示没有内容。
这时候可以直接点击上图中的Debugging下的相关内容,直接打开Debug查看状态。
这时就可以看到反馈出得信息,比如上图,发现SNMP无法获取数据。当然也有其他的,比如MIB文件不存在。只要你仔细看它反馈出来的问题,知道问题的根源,就一定能解决。当解决了数据获取之后,可以直接点击右边的绿色的小圆圈,就刷新了数据的获取状态。
5.关于cacti下文件的权限问题。
Cacti目录中的内容权限并不统一,而且权限要求的也很少,并不像其他的比如Nagios要求的那么多。我们可以简单的保持整个Cacti目录的属主和属组都是Cacti即可。但是有两个特殊的例外:
第一个是cacti/rra目录,整个目录里的内容是RRD的画图文件自动在里面生成的。而生成之后里面文件的属主和属组到底是谁,取决最终是由哪个用户来创建的,而这个就是在Cacti的那个crontab里控制,如果我们使用的是root用户添加的crontab,那么这个rra目录中的内容属主和属组都是root。同理,如果我们的crontab是在cacti中设置的,那么rra目录中的内容属主和属组都是cacti。
第二个目录是cacti/scripts目录,这里面存的大部分都是我们自定义的脚本,一定要确保里面的脚本是cacti用户可执行的。最好的检测方法就是su到cacti用户中,进入这个目录,手动运行一下脚本,查看脚本是否成功执行。
本文出自 “For The Dream” 博客,请务必保留此出处http://foreveryan.blog.51cto.com/3508502/775558
===================================================
http://wokelaoshi.blog.163.com/blog/static/167578314201063034739193/
cacti的使用方法
想监控那个服务器,就在哪个服务器上安装net-snmp就行了,安装方法和上面一篇文章里面的snmp一样
一:界面介绍
登陆Cacti后,可以看到左上角是两个按钮(如图1),“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。
图1,cacti菜单
console菜单
Create:
New Graphs——创建新图像的快捷方式;
Management:
Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的(如图2),可以在此设置树的结构;
Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;
Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。
图2,图像树
Collection Methods
Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;
Templates
Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。
Import/Export
Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。
Configuration
Settings ——Cacti的主要配置菜单;
可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。
Utilities
System Utilities ——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;
User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;
Logout User ——注销用户。
二 创建监测点(检测cpu,内存,磁盘等信息)
假设被监测的服务器名叫“My_Frest_Host”,IP为10.10.10.55,SNMP的community为public。
进入Cacti的console面板->
点击“Devices”进入设备面板->
点击“Add”添加新设备->
填写要监测服务器的各种信息,其中Host Template请选择“ucd/net SNMP Host”(如图3)->
图3
,填写新建服务器信息点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->
点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”(如图4),区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->
图4,选择要监测的内容
点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选(如图4)。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“Data Source”和“graph”条目。创建监测点完毕。
如果磁盘监控不到
请使用Cacti 中自带的模板 ucd/net – Get Monitored Partitions ,然后在被监控的机器的snmpd.conf中加入
disk / (比如我们监视根分区)
#ee /usr/local/share/snmp/snmpd.conf
加入:
disk /
disk /usr
disk /var
disk /tmp #监视哪个分区就添加哪个分区
保存退出
#/usr/local/etc/rc.d/snmpd restart
查看监测点
点击“Graph Management”可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。
为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:
点击“Graph Tree”进入“图像树”面板->
点击分支名称或“Add”新的分支(如图5)->
点击“Create”
点击“Add”,添加新的“Tree Items”->
“Tree Item Type”中选择“Host”,“Tree Item Value”的“host”中选择刚才新添加的主机“My_Frest_Host”->
点击“Create”(如图6)。
这样,我们就可以在“graphs”界面中查看“My_Frest_Host”的所有监测图像了。
图5
,新建的分支即树图6
,在分支内添加主机
点击graphs,可以看到图7的流量图
图7
.流量图如果有图没数据,可以查看rrd文件,看看里面是否有数据,
在服务器上:#cd /usr/local/www/cacti/rrd 然后执行:#rrdtool fetch 10_10_10_55_cpu_nice_26.rrd AVERAGE 如果里面都是nan,说明没数据,检测snmp看是否配置错误
三 监控nginx的运行状态(假如我监控的是10.10.10.55,想监控其他的,安装上net-snmp就可以)
1 在需要监控的服务器上:
(1)nginx编译时加上http_stub_status_module这个模块
重新编译nginx
#whereis nginx
#cd /usr/ports/www/nginx
#make deinstall clean
#make config
[X] HTTP_STATUS_MODULE Enable http_stub_status module
加上这个
(2)编辑配置文件
#make install clean
#ee /usr/local/etc/nginx/nginx.conf
添加如下(粗体字):
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /usr/local/www;
index index.html index.htm index.php;
}
location /NginxStatus {
stub_status on;
access_log off;
allow 10.10.10.67; #只允许10.10.10.67这个ip查看监控状态
deny all;
}
保存退出
#/usr/local/etc/rc.d/nginx reload
然后就通过http://10.10.10.55/NginxStatus 来访问到nginx的运行状态页面
2 在Cacti主机上
(1)在cacti主机上下载nginx监控模块
下载cacti for nginx插件包 http://www.oschina.net/uploads/code/cacti-nginx.tar.gz
#cd /usr/local/www/cacti/scripts/
#fetch http://www.oschina.net/uploads/code/cacti-nginx.tar.gz
#tar zxvf cacti-nginx.tar.gz
解压后把get_nginx_clients_status.pl和get_nginx_socket_status.pl移动到/usr/local/www/cacti/scripts/下
#cd /usr/local/www/cacti/scripts/
#mv cacti-nginx/get_nginx_clients_status.pl .
#mv cacti-nginx/get_nginx_socket_status.pl .
#chmod 755 get_nginx_clients_status.pl
#chmod 755 get_nginx_socket_status.pl
(2)检测插件
#/usr/local/www/cacti/scripts/get_nginx_clients_status.pl http://10.10.10.55/NginxStatus
显示的内容跟NginxStatus状态页内容一样即可
如果显示no (LWP::UserAgent not found),说明perl缺少组件,解决办法如下:执行:
# perl -MCPAN -e shell
# cpan> install LWP::UserAgent
3 在cacti管理界面
在cacti管理界面导入:
前提,先把服务器上的cacti_graph_template_nginx_clients_stat.xml和cacti_graph_template_nginx_sockets_stat.xml两个文件先下载到本地
导入的方式是Import Templates > Import Template from Local File (浏览导入插件包的两个文件)
cacti_graph_template_nginx_clients_stat.xml
cacti_graph_template_nginx_sockets_stat.xml
导入成功后会显示:
然后你就能在Graph Templates中看到你刚才所导入Xml后所产生的模版
接着进入New Graphs选择10.10.10.55这台已经创建好图标的监控服务器。
点击:create出现下图(把url填写成你查看nginx状态的URL)
最后就可以在graphs中看到你所监控的图了。
过一会就可以看到有数据了。
完成
=====================================================
http://blog.sina.com.cn/s/blog_4e424e2101000b6o.html
一、Cacti的使用
1.界面介绍
登陆Cacti后,可以看到左上角是两个选项卡,“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。
2.console菜单
Create:
New Graphs——创建新图像的快捷方式;
Management:
Graph Management——图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
Graph Trees——图像树。在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;
Data Sources——管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;
Devices——设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。
Collection Methods
Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;
Templates
Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。
Import/Export
Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。
Configuration
Settings ——Cacti的主要配置菜单;
可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。
Utilities
System Utilities ——显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;
User Management ——用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;
Logout User ——注销用户。
3.创建监测点
假设被监测的服务器名叫“Test Host”,IP为192.168.100.110,SNMP的community为public。
进入Cacti的console面板->
点击“Devices”进入设备面板->
点击“Add”添加新设备->
填写要监测服务器的各种信息,其中Host Template请选择“Local Linux Machine”或“ucd/net SNMP Host”(选择一个合适的主机模板)->
点击“Create”保存信息,如果SNMP连接没有问题,左上角会出现该服务器的信息,否则会出现“SNMP error”的红色字样->
点击上部的“Create Graphs for this Host ”为该设备创建需监测的内容。监测的内容分两种,“Graph Templates”和“Data Query”,区别在于“Data Query”能根据SNMP信息列出监测项目的信息。例如Data Query里的“Interface Statistics”可以看到该主机所有网卡的信息,这样我们可以选择需要监测的网卡。点击右侧的正方形选择框勾选上要监测的项目->
点击“Create”创建选择的监测内容,已经选择创建的内容会自动变成灰色并且不能再点选。Cacti会自动创建该监测点的rrd文件(在rra文件夹中)、“Data Source”和“graph”条目。
创建监测点完毕。
4.查看监测点
点击“Graph Management”可以看到刚才创建的监测点对应的图像,注意由于Cacti默认每5分钟到监测服务器上取一次数据,所以刚创建的监测点会出现图像不能显示的现象,需要等几分钟查看才会正常显示。
为了方便查看,可以将刚才新创建的设备或图像加入到“图像树”上:
点击“Graph Tree”进入“图像树”面板->
点击分支名称或“Add”新的分支->
点击“Add”,添加新的“Tree Items”->
“Tree Item Type”中选择“Host”,“Tree Item Value”的“host”中选择刚才新添加的主机“Test Host”->
点击“Create”。
直接在ViewTree中添加一个host节点进行监控无疑是一个简单的方法,但随监控图的增多,将所有的图像放到一个host节点上,当查看图像时图像的显示速度会变慢,而且监控图的条理也不清除,所以通常可以根据监控图监控的功能和监控服务的类型等进行分类,整理出一棵有条理的图像树。可以按下面步骤添加节点。
首先添加一个root节点,“Tree Item Type”中选择“Header”,“Title”中填写一个合适的描述性信息,如本例填写“Host Monitor”,Host Monitor节点的图像主要是和主机性能相关的一些图像,如CPU、内存、磁盘空间等;
点击刚创建的root节点(Host Monitor)后面的Add链接来添加一个Graph;
在“Tree Item Type”中选择“Graph”,在“graph”中选择加入想要加入的监控图,重复此过程加入所有你想加入的监控图。
你还可以添加Tree Items,如MySQL Monitor,此节点用来监控与MySQL服务相关的信息,重复上面的过程直到一颗有条例的树创建完成。
这样,我们就可以在“graphs”界面中查看“Test Host”的所有监测图像了。
5.为已有host添加新的监控图
在console控制台下点击“New Graphs”,选择要添加监控图的主机。在Graph Templates中选择一个Graph模板,本例选择SNMP - Ceneric OID Template,点击create按钮。
填写以下信息,在“Title”文本框中填写Graph的名字,在“Vertical Lable”文本框中填写描述信息或是所绘图片使用的单位等,显示在所绘图片的左侧,在“name”文本框中填写此数据源的名字,在“LegendColor”中选择画图使用的颜色,在“Legend Text”填写图例的名字,在“OID”文本框中填写要监控的主机的OID信息,点击“create”按钮完成Graph的创建。
完成后监控图如下:
6.合并多个数据源到一张图上
在console控制台下点击“Graph Management”,然后点击Add链接。
在“Select Graph Template”下拉框中选择None,在“Host”下拉框中选择None,然后点击create按钮。
在“Title”文本框中输入Graph的名字。
点击Add链接,添加Graph Items。
添加多个数据源,将所选的多个数据源画到一张监控图上。
完成后将所画的监控图放到Graph Trees中。
=======================================
CACTI使用指南
2009-06-24 13:51
|