工做原理
Cacti能够从逻辑上分为三个部分php
- 第一部分:被检测的对象,也就是客户端。
- 第二部分:检测平台,也就是服务器端。
- 第三部分:管理平台。
Cacti采用了两种结构实现功能,一种是C/S结构主要是实现服务器到客户端监控另一种就是B/S主要完成对Cacti平台的管理,从下图咱们能够看出,管理端是在Web上对Cacti进行管理。html
Cacti的工做过程。
首先经过LAMP平台部署Cacti监控工具,以后经过客户端的web登陆Cacti进行对其余客户端的设置,能够从下图看到Cacti采集数据时必需要使用SNMP协议来链接客户端进而可以采集数据,也就是说客户端必须支持SNMP协议,监控以后经过RRDtool来生成图表。
.mysqlCacti的工做结构
C/S模式,采集监测数据
B/S模式,管理监测平台
.
测试LAMP平台
cacti服务器监控系统与windows操做系统中的“性能监视器”属于同一类,都是为了监控cpu占用,内存使用,运行进程数,磁盘空间,网卡流量等各类数据。
但不一样的是,cacti不只能够监控linux,也能够监控windows服务器,路由器,交换机等网络设备,主要基于snmp协议来搜集数据。linuxCacti自己是一个web界面的软件,经过调用net-snmp工具来采集检测数据,并结合RRDtool(轮询数据库工具)记录数据并绘制图片,最终以web页面展现给管理员用户。cacti须要运行在lamp平台上,配置简单,直观,并且支持插件和数据模板,可扩展其功能。
.
配置Cacti服务器web
- . 安装各类支持软件
LAMP平台、Net-SNMP、RRDtool- 部署并配置cacti套件
部署源码包、创建数据库表、调整
配置文件- 完成初始化安装
根据网页安装向导进行- 配置Cacti客户机
Linux被控主机的设置
安装net-snmp、lm_sensors包
简单配置snmpd,并启动服务使用Cacti的Web控制台sql
- 登陆Web控制台
- 添加被控设备/主机,设置监控项目
- 生成监测图像
- 按期采集监测数据
- 查看监测结果
.
环境以下;
cacti:192.168.1.1
mysql:192.168.1.2
客户端:192.168.1.3数据库
服务器的配置
配置cacti须要LAMP环境以前的文章有介绍,本篇不作解释vim
开启httpd服务开启mysql服务 [root@centos1 /]# service httpd start [root@centos1 /]# service mysqld start
.
须要开启例外windows
[root@centos1 /]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@centos1 /]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
.centos
为mysql设置一个密码 [root@centos1 /]# mysqladmin -u root -p password 'pwd123'
.
编写一个php测试页
[root@centos1 /]# vim /var/www/html/text.php <?php phpinfo(); ?>
.
[root@centos1 /]# service httpd restart
.
在浏览器访问测试
.
安装net-snmp-utils软件包
Cacti平台经过snmp协议采集检测数据,这些工具程序由net-snmp-utils软件包提供,安装方法以下。
[root@centos1 /]# yum -y install net-snmp net-snmp-utils . [root@centos1 /]# service snmpd start [root@centos1 /]# chkconfig snmpd on
.
安装rrdtool软件包
Rrdtool软件包主要用于数据记录和图表绘制。
首先安装依赖包:
[root@centos1 /]# umount /dev/cdrom /media/ [root@centos1 /]# mount /dev/cdrom /media/ [root@centos1 /]# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN perl per-devel [root@centos1 /]# cd /media/
.
装rddtool源码包:
[root@centos1 media]# ls [root@centos1 media]# tar zxf rrdtool-1.4.8.tar.gz -C /root/ [root@centos1 /]# cd /root/rrdtool-1.4.8/ [root@centos1 rrdtool-1.4.8]# ./configure --prefix=/usr/local/ && make && make install
.
部署cacti,设置数据库链接
部署cacti源码包(将下载的cacti源码包释放到web服务器的网页目录)
[root@centos1 /]# cd /media/ [root@centos1 media]# tar zxf cacti-0.8.8b.tar.gz -C /usr/src/ [root@centos1 media]# cd /usr/src/ [root@centos1 src]# mv cacti-0.8.8b/ /var/www/html/cacti
.
添加一个用来读写检测数据的用户帐户,并调整目录的属主,以便正常读取及写入数据。
[root@centos1 src]# useradd cacti [root@centos1 src]# chown -R cacti:cacti /var/www/html/cacti
.
创建数据库,表结构(建立用于cacti监测平台的数据库,并受权一个数据库用户cacti,而后使用cacti源码目录下的cacti.sql脚本,导入预设的各类数据表)
[root@centos1 /]# mysql -u root -p mysql> CREATE DATABASE cacti DEFAULT CHARACTER SET utf8; mysql> FRANT all ON cacti.* TO 'cacti'@'localhost' IDENTIFDED BY 'cacti';
[root@centos1 /]# cd /var/www/html/cacti/ [root@centos1 /]# mysql -u cacti -p cacti < cacti.sql [root@centos1 /]# mysql -u cacti -p
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | mysql | | test | +--------------------+ 4 rows in set (0.00 sec)
mysql> use cacti; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed
mysql> show tables; +---------------------------+ | Tables_in_cacti | +---------------------------+ | cdef | | cdef_items | | colors | | data_input | | data_input_data | | data_input_fields | | data_local | | data_template | | data_template_data | | data_template_data_rra | | data_template_rrd | | graph_local | | graph_template_input | ........ +---------------------------+ 52 rows in set (0.00 sec)
.
调整cacti配置文件
[root@centos1 /]# vim include/config.php $database_type = "mysql"; //指定链接的类型 $database_default = "cacti"; //链接的库 $database_hostname = "localhost"; //登录源 $database_username = "cacti"; //用户名 $database_password = "cacti"; //用户密码 $database_port = "3306"; /链接的端口 $database_ssl = false; //不启用ssl /* Edit this to point to the default URL of your Cacti install ex: if your cacti install as at http://serverip/cacti/ this would be set to /cacti/ */ $url_path = "/"; //指定cacti的根目录这个目录是cacti的文件目录下,因此后面还须要修改httpd支配文件
[root@centos1 /]# vim /etc/httpd/conf/httpd.conf [root@centos1 cacti]# vim /etc/httpd/conf/httpd.conf DocumentRoot "/var/www/html/cacti" //292行 <Directory "/var/www/html/cacti"> //317行 Options Indexes none //331行 AllowOverride None //338行 Order allow,deny //343行 Allow from all //344行 </Directory> //346行 DirectoryIndex index.php index.html index.html.var //402行 AddDefaultCharset UTF-8 //759行
[root@centos1 /]# service httpd restart [root@centos1 /]# netstat -anpt | grep 80 tcp 0 0 0.0.0.0:58052 tcp 0 0 :::80
.
服务器配置完成
.
(客户端)
初始化cacti系统
在浏览器中输入http://192.168.1.1,而后根据提示安装。
.
111
.
.
.
.
.
.
到此为止服务器配置完成了,下面开始配置一台linux客户端(mysql主192.168.1.2),而后使用cacti监控客户端。
配置客户端(被控端snmpd)
不管是路由器、交换机、仍是linux或windows服务器,只要正确支持SNMP协议,并容许Client服务器采集数据,就可以对其进行监测。下面仅介绍在linux服务器中启用SNMP支持并设置共同体名的简单方法。
ps:共同体名,值的是一种验证机制,全部的client都必须使用同一个共同体名,就像咱们以前学习的hsrp的组同样,只有组号相同才能是一个组的,这里也是如此,只有共同体名相同的时候,Cacti才能经过这个共同体名对client进行监控。
须要安装net-snmp、lm_sensors软件包,而后经过修改其配置文件/etc/snmp/snmpd.conf,并启动snmpd服务,并创建规则,默认监听UDP的161号端口。
.
(mysql主)
.
[root@centos1 /]# yum -y install net-snmp lm_sensors [root@centos1 /]# vim /etc/yum.repos.d/index.repo com2sec notConfigUser 192.168.1.1 public //41行 access notConfigGroup "" any noauth exact all none none //62行 view all included .1 80 //85行
.
第41行 192.168.1.1指的是Cacti的服务器IP(默认是default),表示容许其查询本机数据,public指的就是共同体名,用来识别及验证
第62行 all表示开放全部的SNMP查询权限(默认是 SystemView)
第85行 去掉注释以后,以便支持各类查询。
启动服务
[root@centos1 /]# service snmpd start [root@centos1 /]# netstat -anpt | grep "snmpd" [root@centos1 /]# netstat -anpu | grep "snmpd"
.
开例外 [root@centos1 /]# iptables -I INPUT -p udp --dport 161 -j ACCEPT
.
使用cacti的web控制台(下面以5个部分说明)
.
.
添加被控设备/主机,设置监控项目
单击导航栏中的“management(管理)”下的“devices(设备)”,能够管理被控设备或主机。点击devices---Add
.
.
而后单击右下角的“create”建立,将自动链接目标执行snmp查询
设置要监测的项目
成功链接被控端后会看到save successful提示,以下图:
.
.
.
生成检测图像
建立图像
单击导航栏中create下的new graphs(图表),选择被控端,选中最须要的图像条目,最后单击下方的create按钮完成建立。
.
.
添加图像至监测树
单击导航栏中的management下的graph trees,在单击default tree就能够对默认的图像监测树进行管理。单击右侧的add,能够向监测树种添加“树项目”,完成以后点击create,并点击save保存。
.
.
按期采集监测数据
Cacti系统经过poller.php页面采集监测数据,能够结合计划任务按期采集(默认的刷新间隔是5分钟)
执行完成以后,会出现不少的提示信息,通常状况下是指时区不正确,建议将时区改成Asia/Chongqing
因为是php报的错误,因此经过php.ini主配置文件解决这个问题
[root@centos1 cacti]# vim /etc/php.ini date.timezone = Asia/Chongqing //946行去掉注释 [root@centos1 /]# crontab -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php . [root@centos1 /]# crontab -u cacti -e */5 * * * * /usr/bin/php /var/www/html/cacti/poller.php > /dev/null
.
刷新 [root@centos1 /]# /usr/bin/php /var/www/html/cacti/poller.php
查看监测结果
单击cacti管理控制台左上方的graphs标签,而后展开左侧的default tree树,选择被控主机后便可看到各监测图像。
安装percona-mysql-monitor插件
Cacti工具默认的模板只能监控机器的cpu,内存和磁盘等信息,若是想要监控mysql,就须要安装插件,操做以下。
解压缩软件到目标位置
[root@centos1 /]# umount /dev/cdrom /media/ [root@centos1 /]# mount /dev/cdrom /media/ [root@centos1 /]# cd /media/ [root@centos1 /]# ls [root@centos1 /]# tar zxf percona-monitoring-plugins-1.1.4.tar.gz -C /usr/src/ [root@centos1 /]# cd /usr/src/percona-monitoring-plugins-1.1.4/ [root@centos1 /]# ls [root@centos1 /]# cd cacti/scripts/ [root@centos1 /]# cp ss_get_mysql_stats.php /var/www/html/cacti/script
.
在mysql数据库受权用户
[root@centos1 /]# mysql -u root -p mysql> grant process , super on *.* to cactiuser@'192.168.1.1' identified by 'cactiuser'; . [root@centos1 /]# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT .
为设备添加项目
在Cacti管理界面中进行添加,点击Consose——Import Templates——选择文件, 将宿主机下的压缩目录解压到一个文件夹内,选择解压后的cacti\templat目录下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最后单击import导入。
.
.
.
.
.
.
.
.
.
.
.
.
.
.
[root@centos1 /]# /usr/bin/php /var/www/html/cacti/poller.php [root@centos1 /]# /usr/bin/php /var/www/html/cacti/poller.php --force