Cacti教程(二)配置及使用
Cacti教程(二)配置及使用
5.Cacti配置
5.1 轮询器(Poller)
Spine是一个基于C语言的,非常快速的轮询引擎。它是默认的cmd.php的可选替代。能够减少在同一个数量级上的轮询时间。Cacti默认由cmd.php来完成数据采集,不过cmd.php采集存在很大的延迟,执行效率太低。在双核XEON,4G内存,标准磁盘环境中,处理20000数据的轮询时间远远低于60s。
使用Spine时,不需要修改crontab的设置,只需要将轮询器的设置又cmd.php改为Spine,并启用。修改方法:
(1)Console->Settings-> ; Poller-> ; Poller Type设置为Spine
(2)Console->Settings-> ; Paths->Alternate Poller Path设置为/usr/local/spine/bin/spine
安装Spine完成以后,默认安装在/usr/local/spine目录下。配置文件位于/usr/local/spine/etc/spine.conf,启动spine检测是否能够成功运行:
DB_Host若为localhost,可能会发生无法连接MySQL的错误信息,需要将其改为IP地址;
DB_Database为cacti关联的数据库;
DB_PreG,如果要与cacti.0.8.7g以前的版本兼容,设置为1。
为了配合轮询器获取数据,需要设置Crontab定时更新数据,时间间隔应该与Poller的设定相同,crontab设置如下:
- */1 * * * * root /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
复制代码复制代码5.2 Net-SNMP
- Net-SNMP利用SNMP协议获取和传递数据,SNMP获取到的数据并不存储在MySQL里面,而存储在rrdtool生成的rrd文件中。
- Net-SNMP的配置文件位于/usr/local/net-snmp/share/snmp/snmpd.conf
- 相关修改
- agentAddress udp: 161
复制代码复制代码Cacti所在的主机上还需要加入以下配置文件:
- com2sec local localhost public
- com2sec mynetwork 192.168.0.* public
- com2sec mynetwork 192.168.0.* public
- com2sec mynetwork 192.168.0.* public
复制代码复制代码在安装好Net-SNMP的机器上测试SNMP。可以在其中一台机器上执行以下命令:
#snmpwalk -v 2c -c public IP
如配置正确,出现如下提示信息
2011-1-17 16:10 上传下载附件 (50.37 KB)
在Cacti中添加主机时,如果相应的SNMP配置正确则会出现相应的SNMP信息,如不正确则提示出“SNMP ERROR”;
每台被监控的主机上都需要安装Net-SNMP,同时还需要将其加入随机启动,在/etc/rc.local中加入:
- /usr/local/net-snmp/sbin/snmpd
复制代码复制代码5.3 系统调试
1)可执行权限: Cacti下的目录中的PHP脚本都有可执行权限以及相应用户对rrd和log文件的读写权限;
2)日志文件:Cacti的log文件位置 Cacti目录下的logs/cacti.log,在调试的过程中如果存在问题,可先查看日志再进一步分析问题;
3)SNMP调试:命令snmpwalk -c community -v 2c hostIP测试SNMP是否正常工作;
4)轮询器调试:使用cacti用户手动执行poller.php,将错误重定向到一个文件中,然后查看文件中信息确定问题原因,执行语句:
/usr/local/php/bin/php /usr/local/apache/htdocs/cacti/poller.php > ./123 2>&1
5)rrd文件:查看rrd文件中数据的命令:
/usr/local/rrdtool/bin/rrdtool fetch filename.rrd AVERAGE
6)图片不显示:rra和log目录没有相应的权限或者相应的rra文件没有生成,可以通过查看log文件查找问题原因。
6. Cacti使用
登陆Cacti后,可以看到左上角是两个选项卡,“console”和“graphs”。console表示控制台,在此进行所有的配置等操作;而graphs则是用来查看所有服务器的性能图像的界面。
Console菜单说明
Create
New Graphs :创建新图像的快捷方式;
Management
Graph Management:图像管理。可以在此删除、复制图像,Cacti会自动创建图像。不过如果我们有特殊的需要,比如将几张图上的数据合并在一张图像上的话也可以在此手工新建图像;
Graph Tree:图像树。在graphs界面里,图像或devices是树状结构显示的,可以在此设置树的结构;
Data Sources:管理rrd文件。一般无需修改,Cacti会自己创建rrd文件;
Devices:设备管理。这是我们最经常需要修改的地方,可以在此创建新的设备或修改其名称等信息。
Collection Method
Data Queries 和Data Input Methods是采集数据的方式,一般我们无需对这两项进行修改;
Templates
Graph Templates 、Host Templates和Data Templates 分别是图像模板、主机类型模板和数据模板。这些模板可以导出、导入也可以自己编写,一般无需修改。
Import/Export
Import Templates 和Export Templates,对上述模板的导入、导出。我们可以在Cacti的官方网站上找到这些模板,不过需要注意模板对于的Cacti的版本。
Configuration
Settings:配置菜单。可以在此重新设置对应的程序的路径、版本等信息。也可以设置图像的输出方式(允许ftp)、显示效果、登陆方式(允许使用LDAP)等。
Utilities
System Utilities:显示Cacti系统的一些cache和log信息,如果log文件太大建议直接到后台查看;
User Management:用户管理。可以在此添加、删除用户,并对每个用户设置详细的权限;
Logout User:注销用户。
6.1 设置(Settings)
1)通用(General)
此处主要设置Net-SNMP的版本、RRD-Tool的版本以及SNMP协议版本;
2)路径(Paths)
设置相应工具和类库路径,Cacti会自动发现默认路径下相关可执行文件,如果不在默认路径下需要指定相应的路径。
3)轮询器(Poller)
见上面的轮询器说明
4)其它
6.2 监测点
添加设备
Console->Devices->Add
填写设备信息:描述、IP
7. Cacti模板
7.1 Cacti监控Apache
1)开启Apache的status监控
Linux下Apache编译的时候加上参数--enable-module=so。
配置文件:
- <Location /server-status>
- SetHandler server-status
- Order deny,allow
- Allow from 127.0.0.1
- Allow from 192.168.0.*
- </Location>
复制代码复制代码重启Apache
访问http://127.0.0.1/server-status,看到如下页面
2011-1-17 15:54 上传下载附件 (48.87 KB)
server-status 的输出中每个字段所代表的意义如下:
字段 说明
Server Version Apache 服务器的版本
Server Built Apache 服务器编译安装的时间
Current Time 目前的系统时间
Restart Time Apache 重新启动的时间
Parent Server Generation Apache 父程序 (parent process) 的世代编号,就是 httpd 接收到 SIGHUP 而重新启动的次数
Server uptime Apache 启动后到现在经过的时间
Total accesses 到目前为此 Apache 接收的联机数量及传输的数据量
CPU Usage 目前 CPU 的使用情形
_SWSS… 所有 Apache process 目前的状态。每一个字符表示一个程序,最多可以显示 256 个程序的状
上述状态的说明。以下为每一个字符符号所表示的意义:
* _:等待连结中;
* S:启动中;
* R: 正在读取要求;
* W:正在送出回应;
* K:处于保持联机的状态;
* D:正在查找 DNS;
* C:正在关闭连结;
* L:正在写入记录文件;
* G:进入正常结束程序中;
* I:处理闲置;
* .:尚无此程序。
2)导入监控模板
将ss_apache_stats.php复制到/usr/local/apache/htdocs/cacti/scripts/并赋予执行权限;
在Cacti系统中导入相应的xml文件
如果不出现数据,使用如下脚本进行测试
- /usr/local/php/bin/php /usr/local/apache/htdocs/cacti/scripts/ss_apache_stats.php 192.168.0.* cpuload
复制代码复制代码修改
- Console->Date Input Methods->ApacheStats08 - Total Hits ->Edit
- path_cacti/scripts/ss_apache_stats.php ss_apache_stats hostname hits
复制代码复制代码修改为
- <path_cacti> /scripts/ss_apache_stats.php ss_apache_stats <hostname> hits
复制代码复制代码说明:凡是参数 一律用<>括起来,如遇到这样的错误:
- PHP Deprecated: Comments starting with '#' are deprecated in /usr/local/php/etc/php.ini on line 514 in Unknown on line 0
- PHP Deprecated: Comments starting with '#' are deprecated in /usr/local/php/etc/php.ini on line 515 in Unknown on line 0
- 将/usr/local/php/etc/php.ini中的“#”用“;”代替
- cp php.ini php.ini.bk
- perl -pi.bk -e 's/(\s*)#/\1;/' *ini
复制代码复制代码监控脚本图形模板说明
图形名称 说明
ApacheStats08-A-CPU Usage CPU占用率
ApacheStats08-B-Hits/s 每秒的请求数
ApacheStats08-C-kBits/s 每秒的数据传输量单位KilloBytes
ApacheStats08-D-Bytes/Hit 每次请求的平均数据量 C/(8*B)
ApacheStats08-E-Thread Details 线程详细信息
ApacheStats08-F-Thread Details(%) 各个线程占用百分比
ApacheStats08-G-Thread Scoreboard 各个类型线程的数目统计
监控时使用CPU Hits/s Kbits/s Thread Details四个模板即可。
7.2 Cacti监控Lighttpd
1)开启mod_status模块并添加配置
- $HTTP["remoteip"]=="192.168.0.*"{
- status.status-url="/server-status"
- status.config-url="/server-config"
- status.statistics-url="/server-statistics"
- status.enable-sort="enable"
- }
复制代码复制代码访问http://192.168.0.*/server-status
2)导入模板
模板下载 http://forums.cacti.net/about19676.html
# tar xvfz lighttpd_stats_1.0.tar.gz
# cd lighttpd_stats_1.0
# cp ss_lighttpd_stats.php /usr/local/apache/htdocs/cacti/scripts/
# /usr/local/php/bin/php ss_lighttpd_stats.php IP地址
返回如下信息
lighttpd_total_hits:11613223 lighttpd_total_kbytes:22055059 lighttpd_uptime:172175 lighttpd_busy_servers:564
cacti后台导入模板文件“cacti_host_template_webserver_lighttpd.xml”
注意权限问题,使cacti能调用php脚本,否则lighttpd无流量显示。
chmod +x ss_lighttpd_stats.php
包含的图形模板说明
名称 说明
lighttpd Statistics-Bytes/Request 每个请求的字节数
lighttpd Statistics-Hits/s 每秒请求数
lighttpd Statistics-kBits/s 每秒数据传输量
lighttpd Statistics-Workload 工作负载 忙碌进程数目
参考URL:
http://freehat.blog.51cto.com/1239536/391270
http://hi.baidu.com/hackers365/b ... 7005210a55a995.html
7.3 Cacti监控Nginx
1)首先nginx编译时允许http_stub_status_module,否则无法监控nginx的运行状态.
2)编辑配置文件
# vi /usr/local/nginx/conf/nginx.conf
location /nginx_status/ {
stub_status on;
access_log off;
allow 192.168.0.0/16;#意思是只允许内网能看到监控信息
deny all;
}
复制代码3)重新加载nginx的配置文件
# kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
4)在Cacti主机上下载nginx监控模板
# wget http://forums.cacti.net/about26458.html
# tar xvfz cacti-nginx.tar.gz
# cp cacti-nginx/get_nginx_socket_status.pl /usr/local/apache/htdocs/cacti/scripts/
# cp cacti-nginx/get_nginx_clients_status.pl / usr/local/apache/htdocs/cacti/scripts/
# chmod 755 /data/cacti/scripts/get_nginx*.pl
复制代码5)检测插件
# /usr/local/apache/htdocs /cacti/scripts/get_nginx_clients_status.pl http://192.168.0.*/nginx_status/
输出信息:nginx_active:245 nginx_reading:11 nginx_writing:4 nginx_waiting:230
/usr/local/apache/htdocs /cacti/scripts/get_nginx_socket_status.pl http://192.168.0.*/nginx_status/
输出信息:nginx_accepts:41377 nginx_handled:41377 nginx_requests:223307
6)在cacti管理面板导入
cacti_graph_template_nginx_clients_stat.xm解析nginx的socket进程
cacti_graph_template_nginx_sockets_stat.xml l 解析客户端请求
7)添加主机,在创建图形的时候会提示你输入URL of nginx stub status,后面你所监控的页面额url,比如上面我们的http://192.168.0.*/nginx_status/,然后稍等下数据就会出来了。
8)如果你在测试第5步的过程中出现了以下信息:no (LWP::UserAgent not found),出现这个问题是perl里缺少组件,你可以按照下面的步骤解决:
# perl -MCPAN -e shell
# cpan> install LWP::UserAgent
如果perl组件安装成功,那么在此检测你就会得到正常的数据了。
参考URL:
http://blog.csdn.net/liuyunfengh ... /03/18/5392994.aspx
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论