性能监控程序cacti的安装(mysql+apache+php)

cacti是实时显示服务器的状态, Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。

它通过snmpget来获取数据,使用 RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。

用户可以通过自己开发cacti的php页面自己开发对设备的监控代码

 

nagios是对服务器的状态进行监控, 当达到设定的阈值后出发报警,

ZABBIX也是一款开源的性能监控程序

 

cacti侧重实时展示服务器的状态, 而nagios则侧重监控服务器状态。

如果在运行过程当中提示找不到某个类库, 如果可以通过find命令找到这个库, 

则可以编译 /etc/ld.so.conf文件, 将这个库所在的目录添加到该文件当中, 然后运行ldconfig命令让其生效。

还可以将将这个库所在的目录添加到LD_LIBRARY_PATH环境变量当中

 

 

cacti有可能需要用到libxml jpeg6 freetype zlib libpng fontconfig gd等公共库, 建议最好都安装上

 

 

 

 

1. 安装mysql

    有些说法是只需要装 mysql-standard就可以了。

    a. 创建mysql group和mysql用户和权限目录(本步骤为可选)

        groupadd mysql 

        useradd -g mysql mysql 

        #修改mysql目录权限 

        hown -R root /usr/local/mysql 

        chgrp -R mysql /usr/local/mysql 

        chown -R mysql /usr/local/mysql/data 

    b. 安装mysql服务器

        rpm -ivh  MySQL-server-5.0.45-0.i386.rpm

    c. 安装mysql客户端

        rpm -ivh MySQL-client-5.0.45-0.i386.rpm     

    d. 初始化mysql数据库(一般不需要执行这一步骤)

        /path/to/script/mysql_install_db --user=mysql&  

    e. 启动mysql数据库

        /usr/bin/safe_mysqld --user=mysql&  或 /etc/init.d/mysql start

        如出现 Starting mysqld daemon with databases from /usr/local/mysql/data 代表正常启动mysql服务了.

    f. 安装 MySQL-devel

        rpm -ivh MySQL-devel-5.0.45-0.i386.rpm 

       如果不安装MySQL-devel的话, php生成编译脚本时有可能报错说找不到mysql头文件

    g. 安装MySQL-shared

        rpm -ivh  MySQL-shared-5.5.8-1.rhel5.i386.rpm 

    如果不安装MySQL-shared的话, 编译cacti-spine 有可能报 libmysqlclient_r.so找不到的错误

 

    // 源码安装, 可以参考 http://wenku.baidu.com/view/837a27fc700abb68a982fb7c.html

    ./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql 

    #prefix=/usr/local/mysql mysql安装的目标目录 

    #sysconfdir=/etc my.ini配置文件的路径 

    #localstatedir=/var/lib/mysql 数据库存放的路径 

 

 

 

 

2. 安装apahce

    a. 新建apche安装目录

        mkdir -p /usr/local/apache2 

    b. 生成makefile文件

        ./configure --prefix=/usr/local/apache2  --enable-module=so [--enable-rewrite] 或

        ./configure --prefix=/usr/local/apache2  --enable-module=so  --enable-module=alias  --enable-module=all  --enable-shared=max --enable-module=vhost_alias --enable-shared=vhost_alias  --enable-deflate --enable-cache --enable-disk-cache --enable-mem-cache --enable-file-cache --enable-rewrite --enable-static-support 

    c. make && make install

    d. 启动apache

  当apache没有找到默认的启动页面时, 使用/etc/httpd/conf.d/welcome.conf中指定的默认页面, 有时是/var/www/error/noindex.html  

  启动脚本 /usr/local/apache2/bin/apachectl start|stop|restart, 

  配置脚本 /usr/local/apache2/conf/httpd.conf  

 

 

3. 安装Net-SNMP

    ./configure --prefix=/usr/local/net-snmp  --enable-developer; make; make install

    // 运行snmpget -V, snmpwalk -V  命令测试是否安装成功

 

 

4. 安装php 

    a. 生成编译脚本

        ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs  --with-config-file-path=/usr/local/lib --enable-sockets  --with-snmp[=DIR]  --with-mysql[=/var/lib/mysql/]  或

        ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --enable-gd-native-ttf  --enable-gd-jis-conv --enable-xml --enable-mbstring --enable-sockets --enable-soap [--with-ttf]

    b. 编译与安装

        make; make install

    c. 拷贝配置文件

        cp php.ini-dist /usr/local/php/lib/php.ini 

    d. 测试安装是否正确

      安装完php后, 在/usr/local/apache2/bin/htdocs目录下创建index.php文件, 内容如下:

        <?php

            phpinfo();

        ?>

      然后启动apche, 打开http://10.46.142.56/index.php, 检查php是否正常  

注意: 

  安装php的时候, 有可能提示找不到libmysqlclient.so文件, 这时可以尝试通过源码安装mysql-5.0.20a.tar.gz(./configue; make; make install)

  php的session存在哪里?

  php的配置文件通常位为 php.ini 

  因为cacti-0.8.7不少接口在php5.3环境当中已经不支持, 运行当中可能存在问题,  建议最好安装php5.2版本

 

 

5. 配置apache, 让其支持php

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

    找到AddType application/x-gzip .gz .tgz, 添加

    AddType application/x-httpd-php .php

    AddType application/x-httpd-php-source .phps

 

    找到DirectoryIndex index.html, 修改成

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

 

 

6. 安装rrdtool

    ./configure –prefix=/usr/local/rrdtool; make; make install;

    装完后,执行rrdtool看是否正确,如果执行不成功,提示命令不存在,则建立rrdtool到执行目录的符号连接或者直接拷贝

    cp /usr/local/rrdtool/bin/* /usr/local/bin

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

 

 

7. spine(rrdtoold)

    ./configure --with-snmp=/usr/local/net-snmp/   --with-mysql

   运行spine命令检查安装是否成功

 

 

8. 安装cacti

    a. 拷贝cacti到apache的安装目录

      tar -zxvf cacti-0.8.7b.tar.gz

      cd cacti-0.8.7b

      mv cacti-0.8.7b /usr/local/apache2/htdocs/cacti

      cd /usr/local/apache2/htdocs/cacti/

    b. 增加cactiuser用户以及授权

      useradd cactiuser

      chown -R cactiuser rra

      chgrp -R cactiuser /usr/local/apache2/htdocs/cacti/

    c. 配置数据库以及执行初始化脚本

        shell>mysql –u root –p

        mysql>create database cactidb; (新建一个数据库)

        mysql>grant all privileges on  cactidb.* to cactiuser@localhost identified by "cactipw";(新增一个数据库用户并授权)

        mysql>quit;

        shell>mysql -u cactiuser -pcactipw (以cactiuser用户登录)

        mysql>use cactidb; (使用cactidb数据库)

        mysql>source cacti.sql(执行数据库初始化脚本)

    d. 增加性能采集的定时任务

      crontab -ucactiuser -e

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

 

忘记cacti admin密码

进入mysql

mysql> show databases; 

mysql> use cacti;

mysql> show tables; 

mysql> update user_auth set password=md5("newpassword") where id='1';

 

 

9. 安装cactid

    shell>tar -zxvf cacti-cactid-0.8.6g.tar.gz 

    shell>cd cacti-cactid-0.8.6g

    shell>./configure --with-mysql=/usr/local/mysql 

    shell>make; make install;

    shell>cp cactid cactid.conf /usr/local/cactid/

 

 

 

 

 

php

用户名/密码输入正确、数据库的user_log表中正确记录了登录信息,并且result为1(验证成功),

但是页面始终停留在index.php,不能进入. 可能存在以下原因:

 1. 因为php的session异常。

    经检查发现,在这台机器上,由于另一服务的日志突然暴增,导致/分区的磁盘容量用尽,session无地方可写。

    删除异常的日志文件后,问题得到了解决。

 2. 还有可能是php编译选项不够全, 可以参照如下编译选项

    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir--with-zlib-dir --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv--enable-xml --enable-mbstring --enable-sockets --enable-soap

 3. /var/lib/php/session 对当前运行apache的账户nobody无写权限。

    chmod 777 session 后。问题消失。 

 

 

手工编译安装php后,如果一切顺利解决了的话,重启apache时,libphp5.so: cannot restore segment prot after reloc: Permission denied 错误:

有可能是因为开了seliunx,将其关闭即, 或者用chcon命令修改libphp5.so文件的标签。 

如果 没有开selinux 的话,找到libphp5.so,然后chmod 777 libphp5.so 

    chcon -t texrel_shlib_t /usr/local/apache2/modules/libphp5.so 

<chcon是selinux有关的命令,更改文件的标签。ls命令在命令后加个 -Z 或者加 –context 查看标签> 

 

 

关闭SELINUX的方法:

  方法1.

    vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启

    这个方法可能会对服务器带来风险。

  方法2. 开启SELINUX的方法:

    shell> setenforce 0 | 1

    0 关闭, 1 开启selinux

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值