zoukankan      html  css  js  c++  java
  • Linux下cacti的安装

            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:usrin>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:usrin>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

  • 相关阅读:
    python3 5个带key内置函数
    python3常用内置函数总结
    python入门基础-函数装饰器的理解
    python入门基础-三元表达式、命名空间、作用域、函数名本质、闭包
    python入门基础-初识函数
    第二章001编写脚本
    Appium 自动化测试第一天——基础知识
    python基础-读取文件
    linux6.4 安装python3 pip setuptools
    selenium+python之HTML测试报告
  • 原文地址:https://www.cnblogs.com/breg/p/3250206.html
Copyright © 2011-2022 走看看