一、Cacti简介
- cacti是用PHP语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
- MysqL配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
- snmp抓到数据不是存储在MysqL中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(RoundRobinArchive),它能够存储的数据笔数在创建时就已经定义。
二、Cacti工作原理
Cacti操作可以分为以下三部分:
1.Data Retrieval
Cacti首先要做的工作就是收集数据,cacti使用Poller(轮询器)收集数据。Poller是操作系统scheduler的扩展,如在类Unix系统中的crontab。现在的IT设施中会有许多不同的设备,如服务器、网络设备等,cacti主要使用SNMP协议来从远端的设备上收集数据,所有可以使用SNMP协议的设备都可以被cacti监控。
2.Data Storage
存储收集到的数据有许多方法,可以使用数据库、平面文件等,cacti使用的是RDDTool。RRD是Round Robin Database(环形数据库)的缩写,RRD用来存储和显示时间序列数据,如网络带宽、机房温度、服务器负载等,RRD使用非常紧凑的方式存储数据,数据不会随着时间的推移而增大,RRD还可以生成美观的图形。这些特性使得cacti没有存储需求。RRD也做一席位其他的工作,如RRD会将原始数据与已整合的数据进行合并,以使得历史数据的存储节省空间,RRD支持的整合功能包括:AVERAGE,MAXIMUM,MINIMUM和LAST。
3.Data Presentation
Cacti最大的一个特点是内置了RRDTool画图功能,将其与通用的web服务器相结合,可以实现在任意平台上使用浏览器就可以查看监控画面。
Homepage: http://www.cacti.net/
plugins:http://docs.cacti.net/plugins
templates:http://docs.cacti.net/templates
三、安装cacti
1.关闭防火墙和selinux
[[email protected] ~]#service iptables stop
[[email protected] ~]#chkconfig iptables off
[[email protected]~]#vi /etc/sysconfig/selinux
2.安装cacti依赖的软件
[[email protected]~]#yum -y install MysqL MysqL-server MysqL-devel httpd PHP gd PHP-gd PHP-pdo PHP-snmp PHP-xml PHP-MysqL lm_sensors net-snmp net-snmp-utils net-snmp-libs net-snmp-devel rrdtool rrdtool-devel perl-DBI perl-rrdtool perl-dbd-mysql
3.snmpd配置
[[email protected] ~]#vim /etc/snmp/snmpd.confg
第41行:将 com2sec notConfigUser default public 中的 "default" 改为 "127.0.0.1"
第62行:将 access notConfigGroup "" any noauth exact systemview none none 中的 "systemview" 改为 "all"
第85行:将 #view all include .1 80 这一行前面的#号去掉
4.启动服务
[[email protected] ~]#service snmpd start
[[email protected] ~]#service httpd start
[[email protected] ~]#service MysqLd start
5.安装并配置cacti
[[email protected] ~]#wget http://www.cacti.net/downloads/cacti-0.8.8g.tar.gz
[[email protected] ~]#tar -zxvf cacti-0.8.8g.tar.gz
[[email protected] ~]#mv cacti-0.8.8g/ /var/www/html/
[[email protected] ~]#chown root:root -R /var/www/html/
6.设置MysqL数据库
[[email protected] ~]#MysqL -uroot -p
MysqL>create database cacti character set utf8;
MysqL>grant all privileges on cacti.* to "cacti"@"localhost" identified by ‘cacti‘;
MysqL> flush privileges;
MysqL>use cacti;
MysqL>source /var/www/html/cacti/cacti.sql;
MysqL>exit
7.配置cacti
[[email protected] ~]#vim /var/www/html/include/config.PHP
$database_type = "MysqL";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
[[email protected] ~]#vim /var/www/html/include/global.PHP
$database_type = "MysqL";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;
/ Default session name - Session name must contain alpha characters /
$cacti_session_name = "Cacti";
/ define default url path /
$url_path = "/";
8.修改rra目录权限
[[email protected] ~]#mkdir /var/www/html/cache #创建缓存目录
[[email protected] ~]#chown -R apache:apache /var/www/html/rra/ log/ cache/ #根据httpd服务启动用户修改
9.添加任务计划
具体多长时间让cacti生成一次监控图表自己决定,这里以cacti的默认时间5分钟生成一次为例,默认的采集方式是cmd.PHP
[[email protected] ]# touch /etc/cron.d/cacti
[[email protected] ]# vim /etc/cron.d/cacti
/5 * /usr/bin/PHP /var/www/html/poller.PHP > /dev/null 2>&1
10.配置好之后重启输入 http://ip/Prot new install,next...
此处如果没有红色字体"NOT FOUND"字样则算通过,finish即可,如果有则要手动指定路径,finish之后就出现cacti的登录界面,默认用户名和密码都是admin.login之后cacti强制要求更改密码,改完保存即可;到这里前期的安装工作就算全部结束了,之后就是配置监控。
四、Cacti优化之spine轮询器
由于效率的原因,在需要大量采集数据时,如果使用自带的cmd.PHP轮询器会比较慢,1分钟1次的采集频率可能无法完成轮询所有的被监控的机器。为了解决效率问题,Cacti官方也推出spine,采用多线程的方式高效的轮询。
1.解决依赖关系
[[email protected] ~]# yum -y install net-snmp-devel openssl-devel MysqL-devel help2man
2.安装spine,下载的版本最好与cacti版本一致
[[email protected] ~]# wget https://www.cacti.net/downloads/spine/cacti-spine-0.8.8g.tar.gz
[[email protected] ~]# tar xf cacti-spine-0.8.8g.tar.gz
[[email protected] ~]# cd cacti-spine-0.8.8g
[[email protected] cacti-spine-0.8.8g]# ./configure
[[email protected] cacti-spine-0.8.8g]# make -j 2 && make install
3.提供配置文件
[[email protected] ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
[[email protected] ~]# vim /etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
如果忘记了数据库配置可以参考:cacti/include/config.PHP
4.测试
[[email protected] ~]# /usr/local/spine/bin/spine --help
SPINE 0.8.8g copyright 2002-2016 by The Cacti Group
5.在cacti的WEB页面进行设置spine的路径
Console -> Configureation -> Settings -> Alternate Poller Path -> Spine Poller File Path
输入spine的路径:默认安装在/usr/local/spine/bin/spine
Console -> Cacti Settings -> Poller -> Poller Type
在下拉框中,选择spine, 然后记得“Save”
注意:Spine不必为其添加计划任务,Cacti well spawn Spine every 5 minutes instead of cmd.PHP
而poller.PHP需要定义计划任务去执行,然后poller.PHP再去调度数据收集方法。
解决方法:
安装中文语言包
yum install -y wqy-zenhei-fonts
或者
yum install dejavu-lgc-sans-fonts -y
yum groupinstall "Fonts" -y
8.编辑 functions.PHP 文件(系统安装环境不同,目录位置不同,直接使用find查找到Cacti根目录下的lib下functions.PHP文件进行编辑即可)
在倒数第二行插入:setlocale(LC_CTYPE,"zh_CN.UTF-8");
添加完成后刷新浏览器即可
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。