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. Android 进阶11:进程通信之 ContentProvider 内容提供者

    学习启舰大神,每篇文章写一句励志的话,与大家共勉. When you are content to be simply yourself and don't compare or compete, e ...

  2. (一)Nginx正向代理与反向代理

    引言:身为前端开发人员来说对于Nginx的作用或许很少听到,这个东西是后端使用的,Nginx对前端而言意味着什么,有什么用呢?大白会整理出几篇文章给大家细细道来. 1.正向代理的概念 正向代理,也就是 ...

  3. MySQL免安装版安装配置、修改密码

    一:MySQL的下载安装 1.1 下载 我下载的是 ZIP Archive 版的,win7 64位的机器支持使用,而且相对而言,简单.干净. 首先,进入MySQL的官方网址,依次点击Downloads ...

  4. Switch能否使用String做参数

    在Java语言中Swith可以使用参数类型有:Only convertible int values, strings or enum variables are permitted 可以自动转换为整 ...

  5. elasticsearch snapshot快照备份和恢复

    环境:mac   使用brew 安装elasticsearch   1.在 /usr/local/etc/elasticsearch/elasticsearch.yml 文件中配置快照地址     p ...

  6. Free Online SQL Formatter

    SQL Formatter Web Service Free Online SQL Formatter SQL Parser engine used by SQL formatter 今日找了几个在线 ...

  7. IIS安装步骤(WIN10)

    打开控制面板 点开程序   点击“启动或关闭Windows功能,进入到启用或关闭windows功能之后我们选中“Internet Infomation Services”并勾选   点击确定     ...

  8. 浅谈CSRF跨站点请求

    CSRF是什么?      (Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One C ...

  9. ASM概述

    ASM的全称是 Automatic Storage Management,ASM 是为存放oracle 数据文件而设计的一个volume manager 和 文件系统 管理的技术. ASM 支持ora ...

  10. bzoj 1499 [NOI2005]瑰丽华尔兹——单调队列优化dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1499 简单的单调队列优化dp.(然而当时却WA得不行.今天总算填了坑) 注意滚动数组赋初值应 ...