Centos6.8 Cacti 0.8.8g
1、Cacti简介php
2、Cacti工做原理
Cacti操做能够分为如下三部分:html
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服务器相结合,能够实如今任意平台上使用浏览器就能够查看监控画面。mysql
Homepage: http://www.cacti.net/
plugins:http://docs.cacti.net/plugins
templates:http://docs.cacti.net/templateslinux
3、安装cacti
1.关闭防火墙和selinux
[root@localhost ~]#service iptables stop
[root@localhost ~]#chkconfig iptables off
[root@localhost~]#vi /etc/sysconfig/selinuxweb
2.安装cacti依赖的软件
[root@localhost~]#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-MySQLsql
3.snmpd配置
[root@localhost ~]#vim /etc/snmp/snmpd.conf
第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@localhost ~]#service snmpd start
[root@localhost ~]#service httpd start
[root@localhost ~]#service mysqld startapache
5.安装并配置cacti
[root@localhost ~]#wget http://www.cacti.net/downloads/cacti-0.8.8g.tar.gz
[root@localhost ~]#tar -zxvf cacti-0.8.8g.tar.gz
[root@localhost ~]#mv cacti-0.8.8g/ /var/www/html/
[root@localhost ~]#chown root:root -R /var/www/html/vim
6.设置mysql数据库
[root@localhost ~]#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
[root@localhost ~]#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";
[root@localhost ~]#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目录权限
[root@localhost ~]#mkdir /var/www/html/cache #建立缓存目录
[root@localhost ~]#chown -R apache:apache /var/www/html/rra/ log/ cache/ #根据httpd服务启动用户修改
9.添加任务计划
具体多长时间让cacti生成一次监控图表本身决定,这里以cacti的默认时间5分钟生成一次为例,默认的采集方式是cmd.php
[root@localhost ]# touch /etc/cron.d/cacti
[root@localhost ]# vim /etc/cron.d/cacti
10.配置好以后重启输入 http://ip/Prot new install , next...
此处若是没有红色字体"NOT FOUND"字样则算经过,finish便可,若是有则要手动指定路径,finish以后就出现cacti的登陆界面,默认用户名和密码都是admin.login以后cacti强制要求更改密码,改完保存便可;到这里前期的安装工做就算所有结束了,以后就是配置监控。
4、Cacti优化之spine轮询器
因为效率的缘由,在须要大量采集数据时,若是使用自带的cmd.php轮询器会比较慢,1分钟1次的采集频率可能没法完成轮询全部的被监控的机器。为了解决效率问题,Cacti官方也推出spine,采用多线程的方式高效的轮询。
1.解决依赖关系
[root@localhost ~]# yum -y install net-snmp-devel openssl-devel mysql-devel help2man
2.安装spine,下载的版本最好与cacti版本一致
[root@localhost ~]# wget https://www.cacti.net/downloads/spine/cacti-spine-0.8.8g.tar.gz
[root@localhost ~]# tar xf cacti-spine-0.8.8g.tar.gz
[root@localhost ~]# cd cacti-spine-0.8.8g
[root@localhost cacti-spine-0.8.8g]# ./configure
[root@localhost cacti-spine-0.8.8g]# make -j 2 && make install
3.提供配置文件
[root@localhost ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
[root@localhost ~]# vim /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 --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
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再去调度数据收集方法。
7.解决在图像上方没法显示中文字符
解决方法:
安装中文语言包
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");
添加完成后刷新浏览器便可
9.安装插件
首先下载插件解压到plugins目录
安装 rsyslog
[root@localhost ]# yum install rsyslog rsyslog-mysql -y
建立syslog数据库
mysql> create database syslog character set utf8;
受权
mysql> grant all privileges on syslog.* to "syslog"@"localhost" identified by "password";
mysql> flush privileges;
编辑配置文件
vim syslog/config.php
32 $syslogdb_type = 'mysql';
33 $syslogdb_default = 'syslog';
34 $syslogdb_hostname = 'localhost';
35 $syslogdb_username = 'syslog';
36 $syslogdb_password = 'password';
37 $syslogdb_port = 3306;
编辑rsyslog.conf
vim /etc/rsyslog.conf
倒数第二行插入
. @@localhost:514
$ModLoad imudp.so
$UDPServerRun 514
$ModLoad ommysql
$template cacti_syslog,"INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values ('%syslogfacility-text%', '%syslogpriority-text%', '%timereported:::date-mysql%', '%timereported:::date-mysql%', '%HOSTNAME%', '%msg%')", SQL
. >localhost,syslog,syslog,password;cacti_syslog
重启 rsyslog 服务
service rsyslog restart