cacti 是用 php 语言实现的一个软件,它的主要功能是用 snmp 服务获取数据, snmp 需要的变量数据是通过读取 mysql 数据库得到,然后用 rrdtool 储存和更新数据,当用户需要查看数据的时候用 rrdtool 生成图表呈现给用户。

1. Snmp 用来收集数据;

2. Rrdtool 用来存储数据和生成图表;

3. Mysql 用来配合 PHP 程序存储一些变量数据并对变量数据进行调用。

Cacti本身只是一个web界面的管理套件,通过调用Net-SNMP工具来采集检测数据,客户端必须支持SNMP协议。并结合RRDtool(Round Robin Database tool,轮询数据库工具)记录数据并绘制图片,最终,以Web页面的形式展示给管理员用户。

Cacti可以从逻辑上分为三个部分,

第一部分:被检测的对象,也就是客户端。

第二部分:检测平台,也就是服务器端。

第三部分:管理平台。

Cacti采用了两种结构实现功能,

一种是C/S结构,主要是实现服务器到客户端监控;

另外一种就是B/S,主要完成对Cacti平台的管理。

一. 安装apache

  1. 准备工作

(1)yum方式安装gcc、gcc-c++

# yum install gcc gcc-c++ -y

(2)安装pcre

pcre下载地址:

http://jaist.dl.sourceforge.net/project/pcre/pcre/8.35/

#tar zxf pcre-8.35.tar.gz

#cd pcre-8.35

#./configure prefix=/usr/local/pcre

#make && make install

(3)安装apr和apr-util

apr和apr-unit下载地址:

http://archive.apache.org/dist/apr/

1)解压文件

#tar zxf apr-1.5.0.tar.gz

#tar zxf apr-util-1.5.3.tar.gz

#tar zxf httpd-2.4.9.tar.gz

2)将apr和apr-util拷到http的srclib目录下,并去掉版本号

#cp -r apr-1.5.0 httpd-2.4.9/srclib/apr

#cp -r apr-util-1.5.3 httpd-2.4.9/srclib/apr-util

3)编译安装

安装apr

#cd httpd-2.4.9/srclib/apr

#./configure --prefix=/usr/local/apr

#make && make install

安装apr-util

#cd /root/httpd-2.4.9/srclib/apr-util/

#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

#make && make install

2.正式安装apache

Apache下载地址:

http://archive.apache.org/dist/httpd/

#cd httpd-2.4.9

#./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/

#make && make install

启动apache服务

#service httpd start

安装成功,启动httpd服务并加入开机启动

#chkconfig httpd on

二. 安装mysql

1.准备工作

(1)yum方式安装ncurses-devel

#yum install ncurses-devel –y

(2)安装cmake

cmake下载地址:

http://wwwNaNake.org/files/v3.0/

#tar zxf cmake-3.0.0.tar.gz

#cd cmake-3.0.0

#./configure

#make && make install

2.创建mysql的安装目录及数据库存放目录

#mkdir /usr/local/mysql/date -pv

/usr/local/mysql/          //mysql安装目录

/usr/local/mysql/data       //存在数据库

3.创建mysql用户和用户组

#groupadd mysql

#useradd -r -g mysql mysql

useradd [option] username

[option]:

-d<登入目录> 指定用户登入时的目录。

-g<群组> 初始群组。

-G<群组> 非初始群组。

-m 自动创建用户的家目录。

-M 不要创建用户的家目录。

-N 不要创建以用户名称为名的群组。

-s 指定用户登入后所使用的shell。

-c comment 给新用户添加备注

-d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话)

-e expire_date 用YYYYY-MM-DD格式指定一个账户过期的日期

-f inactive_days 指定这个帐户密码过期后多少天这个账户被禁用;

0表示密码一过期就立即禁 用,-1表示禁用这个功能

-k 必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录

-n 创建一个同用户登录名同名的新组

-r 创建系统账户

-p passwd 为用户账户指定默认密码

-s shell 指定默认登录shell

-u uid 为账户指定一个唯一的UID

4.源码方式安装mysql

Mysql下载地址:

http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz

#tar zxf mysql-5.6.17.tar.gz

#cd mysql-5.6.17

#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock -DWITH_DEBUG=0

#make && make install

参数说明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  //安装目录

-DMYSQL_DATADIR=/usr/local/mysql/data   //数据库存放目录

-DMYSQL_TCP_PORT=3306    //端口号

-DENABLED_LOCAL_INFILE=1   //允许从本地导入数据

5.配置mysql

(1)设置目录权限

#chown mysql:mysql /usr/local/mysql/ -R

(2)初始化mysql数据库

#cd /usr/local/mysql/

#./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/

(3)复制mysql服务启动脚本

#cp ./support-files/mysql.server /etc/init.d/mysqld

(4)配置环境变量

#vim /etc/profile

添加:

PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

重新加载重启生效

#source /etc/profile

(5)修改mysql主配置文件/etc/my.cnf

全部内容如下:

6.启动mysql

(1)开启守护进程,生成pid

#./mysqld_safe &

(2)启动mysql

#service mysqld restart

7.设置mysql管理员密码

#./mysqladmin password "123456" -u root

三. 安装PHP

  1. 准备工作

1)安装zlib

zlib下载地址:

http://www.zlib.net/

#tar zxf zlib-1.2.8.tar.gz

#cd zlib-1.2.8

#./configure --prefix=/usr/local/zlib

#make && make install

2)安装libpng

libpng下载地址:

http://sourceforge.net/projects/libpng/postdownload?source=dlp

注意:这里建议下载libpng-1.5.18版本,因为libpng与zlib存在版本兼容的问题,如果版本不合适,会make的时报错

已知 zlib-1.2.8和libpng-1.6.10之间就存在这种问题, zlib-1.2.8和libpng-1.5.18可以正常安装,有篇文章对此问题进行了一些描述

#tar zxf libpng-1.5.18.tar.gz

#cd libpng-1.5.18

#./configure --prefix=/usr/local/libpng

#make && make install

编译的时候后面加上--with-zlib-prefix=/usr/local/zlib/,还是提示相同的错误

明明已经安装了zlib,为什么提示zlib没有安装,原来是没有安装zlib-devel,下面我们使用yum方式安装zlib-devel

#yum install zlib-devel

下面编译就成功了

#./configure --prefix=/usr/local/libpng --with-zlib-prefix=/usr/local/zlib/

再安装

3)安装freetype

freetype下载地址:

http://sourceforge.net/projects/freetype/files/freetype2/2.5.3/

#cd freetype-2.5.3

#./configure --prefix=/usr/local/freetype

#make && make install

4)安装jpeg

jpeg下载地址:

http://www.ijg.org/files/

#tar zxf jpegsrc.v9.tar.gz

#cd jpeg-9/

#./configure --prefix=/usr/local/libjpeg

#make && make install

5)yum方式安装fontconfig、gd、libxml2*、libjpeg-devel

# yum install fontconfig gd –y

# yum install libxml2* libjpeg-devel –y

2.正式安装PHP

PHP下载地址:wget http://cn2.php.net/distributions/php-5.5.14.tar.gz

#tar zxf php-5.5.14.tar.gz

#cd php-5.5.14

#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-mysql=/usr/local/mysql/ --with-zlib-dir=/usr/local/zlib/ --with-png-dir=/usr/local/libpng/ --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --enable-mbstring --enable-sockets --enable-xml  --disable-fileinfo

#make && make install

最后建立一个软连接

ln -s /usr/local/php/bin/* /usr/local/bin/

四. 安装rrdtool

1.准备工作

(1)yum方式安装cairo-devel、pango、pango-devel、libpng-devel、libart_lgpl-devel、intltool、freetype-devel

#yum install cairo-devel pango pango-devel libpng-devel libart_lgpl-devel intltool freetype-devel –y

(2)yum方式安装perl-ExtUtils-CBuilder、perlExtUtils-MakeMaker

# yum install perl-ExtUtils-CBuilder perlExtUtils-MakeMaker –y

2.正式安装rrdtool

rrdtool下载地址:

http://download.chinaunix.net/down.php?id=35595&ResourceID=9078&site=1

#tar zxf rrdtool-1.4.5.tar.gz

#cd rrdtool-1.4.5

#./configure --prefix=/usr/local/rrdtool --disable-tcl

#make && make install

2.增加链接

ln -s /usr/local/rrdtool/bin/* /usr/local/bin/

五. 安装net-snmp

(1)yum方式安装net-snmp

# yum install net-snmp* -y

(2)配置net-snmp(主配置文件/etc/snmp/snmpd.conf

1)找到:

修改成:

其中的192.81.128.66就是你允许哪台主机可以访问到你(即cacti服务器)

2)找到:

将注释去掉,即:

3)找到:

将注释去掉

(3)启动net-snmp

service snmpd start

监控的端口是161,查看是否已打开

netstat -an |grep snmp

(4)验证是否有数据

1)localhost

snmpwalk -v 2c -c public localhost

2)本机ip测试

# snmpwalk -v 2c -c public 192.81.128.66

192.81.128.66就是被监控机的IP(这里测试的是本机,所以就是本机IP)

六. 安装cacti

cacti下载地址:

http://www.cacti.net/downloads/

1. 解压cacti后,把cacti的目录移到httpd里存放网页的htdocs目录,并去掉版本号

#tar zxf cacti-0.8.7h.tar.gz

#mv cacti-0.8.7h  /usr/local/apache/htdocs/cacti

2.增加cacti用户,并修改目录权限

cd /usr/local/apache/htdocs

useradd catic

chown -R cacti.cacti ./

3.root身份登陆mysql,新建数据并授权

mysql -uroot -p

> grant all on cacti.* to cacti@'localhost' identified by '123456';

> flush privileges;

4.导入数据库

cd /usr/local/apache/htdocs/cacti

/sur/local/mysql/bin/mysql -u cacti -p123456 cacti < cacti.sql

vim include /config.php

这里有cacti连接使用的数据库类型,用户名,密码信息,按照自己的需要进行配置

并增加:$url_path="/cacti/";

5.配置apache(配置文件/usr/local/apache/conf/httpd.conf

找到:

修改成:

检测一下httpd的配置文件语法重启httpd服务

 /usr/local/apache/bin/apachectl configtest

 yum install php-mysql -y

6.关闭防火墙和selinux,访问cacti安装界面

setenforce 0

service iptables stop

7.重启apache服务

service httpd restart

七. 登陆cacti,进行cacti安装

1.在浏览器输入http://192.81.128.66/cacti,进入web界面

点击Next

2.出现如1界面

依然点击Next

3.出现如下界面,没有错误,perfect

点击Finish

重新访问一下看看

这是就出现了cacti的登陆界面

4.第一次登陆,用户名,密码都是admin

7.这是成功登陆cacti

当出现上图情况时,cacti已安装完毕,可正常使用。

但cacti默认是使用cmc.php方式去画图的,但据说使用spine方式比较节省系统资源消耗,

8. 生成图形文件

在界面中点击graphs,图形不显示,使用如下命令生成图形文件

/usr/local/php/bin/php  /usr/local/apache/htdocs/cacti/poller.php 

此时,图片出现的可能都是乱码,那个因为/usr/share/fonts/下没有任何字符文件。

这个问题解决办法很简单,随便拷一个.ttf的文件到/usr/share/fonts/下就可以了

 就可以出图了

9. 加入crontab服务

*/5 * * * * env LANG=C /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php

10.过一段时间后,就会有数据图了

下载解压后只取两个文件

1、  PHP采集脚本:

cp percona-monitoring-plugins-1.1.6/cacti/scripts/ss_get_mysql_stats.php  /var/www/html/cacti/scripts/

chmod +x ss_get_mysql_stats.php

在被监控端mysql服务器上授权

mysql> grant process,super on *.* to'cacti'@'%' identified by 'cacti';

注意:MySQL 5.1.23和更旧版本中采集InnoDB图形需要SUPER权限。

在MySQL 5.1.24及更高版本中,所需的权限是PROCESS而不是SUPER。(官方)

[root@server2    mnt]# tar zxf cacti-0.8.8h.tar.gz

[root@server2    mnt]# yum install rrdtool php-mysql mysql-serverhttpd -y

(安装必要环境)

[root@server2    mnt]# mv cacti-0.8.8h /var/www/html/

(将cacti 移动到http目录下)

[root@server2    mnt]# cd /var/www/html/

[root@server2    html]# ln -s cacti-0.8.8h/ cacti

(建立软链接,方便输入查找)

[root@server2    html]# cd /mnt

[root@server2 mnt]# yum  install  php-snmp-5.3.3-26.el6.x86_64.rpm

[root@server2 mnt]#/etc/init.d/mysqld start

[root@server2 mnt]#mysql_secure_installation

(设置root 账户和密码,其他选项,一直输入 y 继续进行)

[root@server2 cacti]# cd/var/www/html/cacti/

[root@server2 cacti]#mysqladmin -padol create cacti

(创建cacti这个库)

[root@server2 cacti]# mysql -padol cacti < cacti.sql

(将cacti.sql导入cacti 库)

[root@server2 cacti]# mysql -padol -e "grant all on cacti.*  totest@localhost identified by 'adol';"(创建用户,给予cacti.*权限)

[root@server2 cacti]# cdinclude/

[root@server2 cacti]# vimconfig.php

搭建Cacti监控(2)相关推荐

  1. linux下搭建cacti监控

    一.cacti 监控软件简介         1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存         和更新数据,当用户需要查看数 ...

  2. 搭建Cacti监控系统(三)-- 监控Linux 主机

    三.监控Linux 主机 3.1.配置被监控的Linux服务器 平台:Rhel6.3_x64 IP :192.168.30.110   (1).安装net-snmp [root@vhost1 ~]# ...

  3. linux cacti 搭建,linux下搭建cacti监控(示例代码)

    一.cacti 监控软件简介 1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存         和更新数据,当用户需要查看数据的时候用rrd ...

  4. cisco+++mysql_搭建cacti监控linux服务器,cisco,华为,mysql,

    首先先安装cacti的依赖包: /etc/init.d/iptables stop  先将防火墙关闭,不然后面会报各种的错误. yum install  http php php-mysql php- ...

  5. 搭建cacti监控平台

    Cacti介绍: Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具.Cacti通常是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且你完 ...

  6. 搭建Cacti监控系统(一)-- 搭建LNMP 环境

    [实验环境] 系统版本:Rhel6.3_x64 平台:LNMP IP:192.168.30.100   相关软件包: cacti-0.8.8a.tar.gz        rrdtool-1.4.7. ...

  7. cacti监控搭建和告警

    目录 一.监控平台简介 . 1.1 系统监控需求 . 1.2 监控技术发展过程 . 1.3 常见监控平台比较 . 6 二.Cacti 安装与配置 . 2.1 工作原理 . 2.2 主要软件的版本信息 ...

  8. Cacti监控一台Webserver上多个Tomcatport的实现

    由于一台web应用server上面安装了多台tomcat,有多个port.比方默认的8080,还有兴许追加的9100,9300,9500等等.一个cacti_host_template_tomcat_ ...

  9. linux cacti 搭建,Cacti搭建部署

    一.搭建lamp或者lnmp环境. 1.推荐使用:http://lnmp.org/一键安装lamp环境即可. 2.修改php配置:#vim /usr/local/php/etc/php.ini 取消3 ...

最新文章

  1. 脱壳 VMProtect 1.70.4
  2. Binder相关面试总结(三):Binder机制是如何跨进程的
  3. Machine Learning - Andrew Ng on Coursera (Week 1)
  4. Selenium WebDriver- 使用Frame中的HTML源码内容操作Frame
  5. Cookie中不能有空格_PHP 使用cookie
  6. 如何查看oracle用户级别,用户级别的Oracle 导入导出
  7. ASP.NET Core使用Jaeger实现分布式追踪
  8. java定义js函数_JS中可以先使用函数,然后再定义.
  9. 计蒜客 蒜头君的数轴
  10. 为什么经常说Node.js不适合大型应用
  11. swoole怎么做mysql连接池_Swoole4创建Mysql连接池
  12. 腾讯word2vec模型缩小版
  13. MMA7455加速度传感器测量角度
  14. Unity 通过代码修改材质球属性
  15. [error]: Found option without preceding group in config file ....\my.ini at line:1
  16. 大数据管理与应用专业总结笔记
  17. 电信近期有充值送红包的活动
  18. 计算机最主要的硬盘,电脑硬盘应该分几个区比较合适?
  19. 欧拉回路(欧拉路径)
  20. java内存 phd文件抓取,WAS 常常有heapdump.phd和javacore.txt文件产生

热门文章

  1. 艾司博讯:拼多多一件代发怎么发货
  2. 织梦后台登陆提示验证码不正确
  3. Docker Are you trying to connect to a TLS-enabled daemon without TLS?
  4. Jetson Nano 从入门到实战(转载)(案例:Opencv配置、人脸检测、二维码检测)
  5. ‘真三国无双5’完美存档修改
  6. 基于SPH的流体仿真过程
  7. CSCD(2015-2016年)来源期刊目录中国科学引文数据库
  8. python计算复数的辐角_Python 自定义类中的函数和运算符重载
  9. 程派高式八卦掌传人——刘树行
  10. 对于rh v5系列服务器,华为rh2288v5服务器重定向问题引起pxe报错