Cacti安装手册

第一步、  Cacti的架构

第二步、 Cacti的工作流程

第三步、 Cacti简介

1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

2. Mysql配合PHP程序存储一些变量数据并对变量数据的调用如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。另外,当生成图片时对采集的数据的处理方式:有gauge、counter、derive、absolute。参考以下例子:
类型:如果输入数据依序为 98 100 98:

GAUGE(个別值,像CPU loading):产生图形时画 98 100 98

COUNTER (累计值,像流量资料):产生图形时画 2 -2

DERIVE (累计值,像流量资料),小于0画0:产生图形时画 2 0

ABSOLUTE 如同 COUNTER,但 COUNTER 可能 overflow(数值过大),所以会取绝对值
     补充说明,COUNTER/DERIVE/AVSOLVTE 虽是取差值,但会再除以两次间隔间的秒数,如上 COUNTER 例,两次间隔间为 300 秒,那画出来的就是 2/300,-2/300 的值

数据采集中可以看到定义的是什么数据类型:Counter和gauge

C:\usr\bin>snmpget -v 2c -c public 192.168.224.1 .1.3.6.1.2.1.6.5.0

TCP-MIB::tcpActiveOpens.0 = Counter32: 1927

C:\usr\bin>snmpget -v 2c -c public 192.168.224.1 .1.3.6.1.2.1.6.9.0

TCP-MIB::tcpCurrEstab.0 = Gauge32: 0

4. rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。

[root@localhost rra]# ls 220_181_11_156_mem_*

220_181_11_156_mem_buffers_30.rrd 220_181_11_156_mem_cache_31.rrd 220_181_11_156_mem_free_32.rrd

(可以看出一个图形对应好几个rrd文件---即对应几个数据源---但也可以一个rrd文件包含几个数据源)

具体RRDTool的知识见以下网页:

使用Cacti监测系统与网络性能:

http://hi.baidu.com/myfreezone/blog/item/7f00fd247d2411338744f9c3.html

RRDTool应用示例:

http://hi.baidu.com/myfreezone/blog/item/4720f0f280538e13b07ec5c1.html

对RRDTool的总结

http://hi.baidu.com/myfreezone/blog/item/18973aad8ad66b094b36d6f8.html

安装rrdtool

http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/pub/rrdtool-1.2.11.tar.gz

由于rrdtool1.2.11需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下sh脚步就可以完成安装:

注意:将cgilib-0.5.tar.gz、zlib-1.2.2.tar.gz、libpng-1.2.8-config.tar.gz、freetype-2.1.9.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.11.tar.gz放到/root/rrdtool-1.2.11

将脚本保存为/root/rrdtool-1.2.11/rrdtoolinstall,并给执行权限chmod 766 /root/rrdtool-1.2.11/rrdtoolinstall。

#!/bin/sh

BUILD_DIR=/root/rrdtool-1.2.11

INSTALL_DIR=/usr/local/rrdtool

cd $BUILD_DIR

tar zxf cgilib-0.5.tar.gz

cd cgilib-0.5

make CC=gcc CFLAGS="-O3 -fPIC -I."

mkdir -p $BUILD_DIR/lb/include

cp *.h $BUILD_DIR/lb/include

mkdir -p $BUILD_DIR/lb/lib

cp libcgi* $BUILD_DIR/lb/lib

cd $BUILD_DIR

tar zxf zlib-1.2.2.tar.gz

cd zlib-1.2.2

env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb

make

make install

cd $BUILD_DIR

tar zxvf libpng-1.2.8-config.tar.gz

cd libpng-1.2.8-config

env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \

./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

cd $BUILD_DIR

tar zxvf freetype-2.1.9.tar.gz

cd freetype-2.1.9

env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \

./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

cd $BUILD_DIR

tar zxvf libart_lgpl-2.3.17.tar.gz

cd libart_lgpl-2.3.17

env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb

make

make install

IR=-I$BUILD_DIR/lb/include

CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"

LDFLAGS="-L$BUILD_DIR/lb/lib"

CFLAGS=-O3

export CPPFLAGS LDFLAGS CFLAGS

cd $BUILD_DIR

tar zxf rrdtool-1.2.11.tar.gz

cd rrdtool-1.2.11

./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install

E.安装net-snmp

Unix系统安装的都是net-snmp或ucd-snmp(其实两个都是同一组人写的)。如果没有安装snmp,可以到net-snmp.sourceforge.org上下载源码编译安装。

我这里说的安装SNMP服务并不是要求安装SNMPD,其实是Cacti需要用到net-snmp中的两个命令――snmpwalk和snmpget进行数据的采集。我们可以直接在系统中运行snmpwalk和snmpget看是否有该命令,如果有则不用安装了。

http://prdownloads.sourceforge.net/net-snmp/net-snmp-5.2.1.1.tar.gz

# tar zxf net-snmp-5.2.1.1.tar.gz

# cd net-snmp-5.2.1.1

#./configure --prefix=/usr/local/net-snmp --enable-developer

# make

# make install

安装cacti

http://www.cacti.net/downloads/cacti-0.8.6f.tar.gz

# cp cacti-0.8.6f.tar.gz /usr/local/http/htdocs/

# cd /usr/local/http/htdocs/

# tar zxvf cacti-0.8.6f.tar.gz

# mv cacti-0.8.6f cacti

安装cacti-cactid

http://www.cacti.net/downloads/cactid/cacti-cactid-0.8.6f-1.tar.gz

CACTID 的安装需要以下支持:

· net-snmp-devel   (需要编译安装net-snmp时添加--enable-developer选项)

· mysql

· mysql-devel       (mysql源文件编译安装后默认支持)

· openssl-devel     (redhat9.0默认安装)

因此需要检查是否具备安装的环境。

# tar zxf cacti-cactid-0.8.6f-1.tar.gz

# cd cactid0.8.6-f1

# ./configure ;make

这是此目录下你将看到cactid 和cactid.conf

# mkdir  /usr/local/cactid

# cp cactid cactid.conf /usr/local/cactid/

H.安装完成后配置cacti

1.配置apache

# vi /usr/local/http/conf/httpd.conf

加入 AddType application/x-tar .tgz

AddType application/x-httpd-php .php

AddType image/x-icon .ico

DirectoryIndex index.php index.html index.html.var

# /usr/local/http/bin/apachectl stop

# /usr/local/http/bin/apachectl start

编辑测试php文件 test.php内容如下:

<?

phpinfo();

?>

2.配置mysql

建立cacti需用的数据库

# /usr/local/mysql/bin/mysql

mysql> create database cactidb;

Query OK, 1 row affected (0.00 sec)

mysql> grant all on cactidb.* to root;

Query OK, 0 rows affected (0.01 sec)

mysql> grant all on cactidb.* to root@localhost;

Query OK, 0 rows affected (0.01 sec)

mysql> grant all on cactidb.* to cactiuser;

Query OK, 0 rows affected (0.00 sec)

mysql> grant all on cactidb.* to cactiuser@localhost;

Query OK, 0 rows affected (0.01 sec)

mysql> set password for cactiuser@localhost=password('cactipw');

Query OK, 0 rows affected (0.00 sec)

mysql> exit

# cd /usr/local/http/htdocs/cacti

# /usr/local/mysql/bin/mysql –u root cactidb < cacti.sql

3.配置cacti-cactid

# vi /usr/local/cactid/cactid.conf

DB_Host         localhost

DB_Database     cactidb

DB_User         cactiuser

DB_Pass         cactipw

4.配置cacti

# useradd cactiuser

# chown –R cactiuser rra/

# vi /usr/local/http/htdocs/cacti/include/config.php

$database_type = "mysql";

$database_default = "cactidb";

$database_hostname = "localhost";

$database_username = "cactiuser";

$database_password = "cactipw";

为cactiuser创建crontab

*/5 * * * * /usr/local/bin/php /usr/local/http/htdocs/cacti/poller.php > /dev/null 2>&1

5.完成配置

http://IP/cacti开始配置

默认用户名密码admin/admin

更改默认密码

设定

snmpwalk Binary Path             /usr/local/net-snmp/bin/snmpwalk

snmpget Binary Path               /usr/local/net-snmp/bin/snmpget

RRDTool Binary Path                /usr/local/rrdtool/bin/rrdtool

PHP Binary Path                       /usr/local/bin/php

Cacti Log File Path                   /usr/local/httpd/htdocs/cacti/log/cacti.log

Cactid Poller File Path                    /usr/local/cactid/cactid

另外,进入cacti后需确认更改一下位置:(如下图)

Console>Settings>General

Console>Settings>Poller

Linux下cacti的安装的更多相关文章

  1. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  2. Linux下MongoDB服务安装

    Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...

  3. Windows下的Memcache安装 linux下的Memcache安装

    linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...

  4. linux下subversion server安装手册

    linux下subversion server安装手册 安装基于的Linux版本为:Red Hat Enterprise Linux Server release 6.3. 一 准备需要的安装包. ( ...

  5. Linux下Perl的安装(转)

    原文地址:Linux下Perl的安装 今天在虚拟机测试shell脚本的时候,有些命令使用不了. 比如说 mysqlhotcopy ,它提示Perl的版本太低. 我用的 RedHat9 的Perl才5. ...

  6. 细说Linux下软件包的安装与管理

    一 源码安装方式      由于linux操作系统开放源代码,因而在其上安装的软件大部分也都是开源软件,例如apache.tomcat.php等软件.开源软件基本都提供源码下载,源码安装的方式:源码安 ...

  7. Linux下Qt的安装与配置

    参考资料:http://www.cnblogs.com/emouse/archive/2013/01/28/2880142.html Linux 下编译.安装.配置 QT 下载qt 这里用的是4.7. ...

  8. Linux下OpenSSL的安装与使用

    Linux下OpenSSL的安装与使用 OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux.Windows.Mac OS ...

  9. Linux下Kafka单机安装配置方法(图文)

    Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计.这个独特的设计是什么样的呢 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了 ...

随机推荐

  1. wordpress 使用固定链接

    官方文档 无插件移除url中category 目录前缀 设置 >> 固定链接,设置固定链接为自定义为: /%category%/%postname%/或者/%category%/%post ...

  2. C++11中提供了std::bind

    再来看看std::bind C++11中提供了std::bind.bind()函数的意义就像它的函数名一样,是用来绑定函数调用的某些参数的. bind的思想实际上是一种延迟计算的思想,将可调用对象保存 ...

  3. 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps

    CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...

  4. 浅谈Sql各种join的用法

    1.left join.right join.inner join三者区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右 ...

  5. 洛谷 4721 【模板】分治 FFT——分治FFT / 多项式求逆

    题目:https://www.luogu.org/problemnew/show/P4721 分治FFT:https://www.cnblogs.com/bztMinamoto/p/9749557.h ...

  6. VC++中如何让RadioButton分组,并且互斥

    首先让两个RadioButton的Group属性为False. 将两个RadioButton放入一个GroupBox里面,即可如果分成多个组,则将多组Radio分别用GroupBox框起来,并将每组的 ...

  7. java二维数组求每行最大值,每列最小值,及输出数组主对角线上的元素

    总结:完全搞不懂,行和列是怎么弄的,,,,, package com.c2; import java.util.Scanner; public class Oaa { public static vo ...

  8. codeforce 985A Chess Placing(暴力)

    Chess Placing time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. 记录一下学习Android的小知识

    目前要设计即时通讯的整体架构,包括服务端.Android.IOS.PC.平板等等系统,所以需要研究一下手机的实现方式,开始从Android入手,偶尔在这记录下小知识. ADT: 1.页面功能请求结构, ...

  10. 使用Kismet进行网络扫描

    执行命令启动Kismet root@sch01ar:~# kismet 这个界面是用来设置颜色的,单击Yes按钮,默认颜色灰色 这个界面显示正在使用root用户运行Kismet工具,单击OK 这个界面 ...