Centos Cacti 0.8.8g
一、Cacti简介
1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。
2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
3. 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
[root@Cacti ~]#service iptables stop
[root@Cacti ~]#chkconfig iptables off
[root@Cacti ~]#vi /etc/sysconfig/selinux
2.安装cacti依赖的软件
[root@Cacti ~]#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-PlRPC perl-DBI perl-rrdtool perl-DBD-MySQL
3.snmpd配置
[root@Cacti ~]#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.启动服务
[root@Cacti ~]#service snmpd start
[root@Cacti ~]#service httpd start
[root@Cacti ~]#service mysqld start
5.安装并配置cacti
[root@Cacti ~]#wget http://www.cacti.net/downloads/cacti-0.8.8g.tar.gz
[root@Cacti ~]#tar -zxvf cacti-0.8.8g.tar.gz
[root@Cacti ~]#mv cacti-0.8.8g /var/www/html/cacti
6.设置mysql数据库
[root@Cacti ~]#mysql -uroot -p
mysql>create database cacti;
mysql>grant all privileges on cacti.* to cacti@localhost identified by 'cacti';
mysql>use cacti;
mysql>source /var/www/html/cacti/cacti.sql;
mysql>exit
7.配置cacti
[root@Cacti ~]#vim /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
8.修改rra目录权限
[root@Cacti ~]#chown -R apache rra/ log/ #根据httpd服务启动用户修改
9.添加任务计划
具体多长时间让cacti生成一次监控图表自己决定,这里以cacti的默认时间5分钟生成一次为例,默认的采集方式是cmd.php
[root@Cacti ~]#crontab -e
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
10.配置好之后重启输入 http://ip/cacti选 new install , next...
此处如果没有红色字体"NOT FOUND"字样则算通过,finish即可,如果有则要手动指定路径,finish之后就出现cacti的登录界面,默认用户名和密码都是admin.login之后cacti强制要求更改密码,改完保存即可;到这里前期的安装工作就算全部结束了,之后就是配置监控。
四、Cacti优化之spine轮询器
由于效率的原因,在需要大量采集数据时,如果使用自带的cmd.php轮询器会比较慢,1分钟1次的采集频率可能无法完成轮询所有的被监控的机器。为了解决效率问题,Cacti官方也推出spine,采用多线程的方式高效的轮询。
1.解决依赖关系
[root@localhost ~]# yum -y install net-snmp-devel openssl-devel mysql-devel
2.安装spine,下载的版本最好与cacti版本一致
[root@localhost ~]# tar xf cacti-spine-0.8.8g.tar.gz
[root@localhost ~]# cd cacti-spine-0.8.8b
[root@localhost cacti-spine-0.8.8g]# ./configure
[root@localhost cacti-spine-0.8.8g]# make && make install
3.提供配置文件
[root@localhost ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
[root@localhost ~]# vi /etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
如果忘记了数据库配置可以参考:cacti/include/config.php
4.测试
[root@localhost ~]# /usr/local/spine/bin/spine
SPINE: Using spine config file [/etc/spine.conf]
SPINE: Version 0.8.8b starting
SPINE: Time: 0.1707 s, Threads: 5, Hosts: 2
[iyunv@localhost ~]#
5.在cacti的WEB页面进行设置spine的路径
Console -> Configureation -> Settings -> Alternate Poller Path -> Spine Poller File Path
输入spine的路径:默认安装在/usr/local/spine/bin/spine

6.修改Cacti默认的Poller Types
Console -> Cacti Settings -> Poller -> Poller Type
在下拉框中,选择spine, 然后记得“Save”

注意:Spine不必为其添加计划任务,Cacti well spawn Spine every 5 minutes instead of cmd.php
而poller.php需要定义计划任务去执行,然后poller.php再去调度数据收集方法。
tips1:修改采集方式为spine时间为1分钟
1. Create 1-minute RRA settings.
2. Adjust “Step” and “Heartbeat” on all 1-minute Data Source templates.
3. Change the poller frequency in cron.
4. Change the poller frequency in Cacti settings.
5. Finally, rebuild the poller cache
1.*/1 * * * * /usr/bin/php /data1/vhosts/cacti/poller.php > /dev/null 2>&1
2.修改poller interval

3.修改date template监控项setp为60

tips2:链接
http://datahunter.org/cacti
http://blog.sina.com.cn/s/blog_6d3a704f01012yai.html
http://www.iyunv.com/thread-23553-1-1.html
Centos Cacti 0.8.8g的更多相关文章
- U盘安装CentOS 7.0
U盘安装CentOS 7.0 由于学习需要centos环境,so上网下载centos安装镜像,发现版本已经到7.0了,(╮(╯▽╰)╭,上次折腾还是6.4的版本呢,)花了一点时间下载下来按照装6.4的 ...
- 【转】CentOS 7.0 安装Redis 3.2.1详细过程和使用常见问题
http://www.linuxidc.com/Linux/2016-09/135071.htm 环境:CentOS 7.0 Redis 3.2.1 Redis的安装与启动 这里我把Redis放在/h ...
- asp.net core 简单部署之FTP配置(CentOS 7.0安装配置Vsftp服务器)
配置过程原文地址:http://www.osyunwei.com/archives/9006.html 坑和结果 正确的跟着这个内容走,是靠谱的. 我自己给自己踩了个坑,请参照文章的朋友注意第七条:七 ...
- CentOS 7.0系统安装配置步骤详解
CentOS 7.0系统是一个很新的版本哦,很多朋友都不知道CentOS 7.0系统是怎么去安装配置的哦,因为centos7.0与以前版本是有很大的改进哦. 说明: 截止目前CentOS 7.x最新版 ...
- CentOS 7.0安装配置Vsftp服务器
一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...
- centos 7.0 编译安装php 7.0.3
php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...
- centos 7.0 安装nginx 1.9.10
可以参考以前安装成功的案例 centos 7.0 nginx 1.7.9成功安装过程 官网下载 http://nginx.org/en/download.html nginx下载位置 /usr/loc ...
- centos 6.0用yum安装中文输入法
Centos6.2代码 CentOS 6.0没有默认没有装语言支持(Language Support),因此很不方面. 终于发现了有效的方法: su root yum install "@C ...
随机推荐
- Quant的笑话
Q) Why was the FX quant so unlucky with the ladies?A) Because he always kept his dates short. Q) Why ...
- C# 多线程详解 Part.02(UI 线程和子线程的互动、ProgressBar 的异步调用)
我们先来看一段运行时会抛出 InvalidOperationException 异常的代码段: private void btnThreadA_Click(object sender, ...
- 使用keepalived实现mysql主从复制的自动切换
最近测试了一下mysql+keepalived实现主从自动切换,主从都需要安装keepalived,使用vip漂移实现主从自动切换,这里主要记录的是keepalived的文件配置. 这里mysql搭建 ...
- SCRIPT7002: XMLHttpRequest: 网络错误 0x2ef3, 由于出现错误 00002ef3 而导致此项操作无法完成,浏览器中的Keep-Alive
http://www.cnblogs.com/OpenCoder/p/5089258.html IE中Keep-Alive机制引起的错误 我们知道Http协议是基于TCP/IP连接的,也就是说 ...
- Qt多重继承时的信号与槽
最近在公司项目中开发串口,因为历史原因串口要包装一下,且包装类需要继承自一个纯C++类. QSerialPort可以使用slot function来获取从串口读到的数据,以及写入串口的bytes个数. ...
- 转载:JAVA的静态变量、静态方法、静态类
静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明. (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 ...
- 打开页面自动打开QQ的javascript代码
今天浏览个网站,发现我的QQ突然自动启动了,起初还以为中病毒了,后来找了半天无果,反而发现了几个无需启动的系统服务进程,遂管之. 后来打开网站的页面的源代码,发现一段javascript脚本,才知道我 ...
- 崽崽帮www.zaizaibang.com精选3
[景山远洋美国交换生随笔]异国他乡的感触 [成都亲子活动]可能是成都最全最好的亲子活动了! 黄平-儿科 @体育活动 下雪天乐翻天之穿越封锁线 北京育翔小学的前世今生 武汉儿科类中医口碑榜 南宁周边农家 ...
- python3-day2-python基础2
一.for循环 for循环是我们编程中非常常用的一种循环,以下就是for循环在python中的一些应用实例: 1.单层for循环 #!/usr/bin/env python3#-*- coding: ...
- IOS开发之--UIScrollView pagingEnabled自定义翻页宽度
用到UIScrollview的翻页效果时,有时需要显示一部分左右的内容,但是UIScrollView的PagingEnabled只能翻过整页,下面几个简单的设置即可实现 技术点: 1. 创建一个继承U ...