使用cacti 批量监控服务器以及其PHP 运作环境配置

本文主要介绍说明用于支持 Cacti 运作的 PHP+RRDtool 环境的详细配置方法。使其能集中式监控多台,不同平台类型的服务器。以及支持 SNMP 网络设备运作状态。
    前言

Cacti 功能类似于我们所熟悉的 MRTG 。 MRTG 确实是非常好的老牌系统监控工具,但由于他历史实在很久了,使得许多功能以及配置等方面都比较落后。实现得比较费劲,管理起来很麻烦。比如我有几百个被监测点,分布在不同的机房,而且我需要将这些服务器和网络设备分类,这样的话我就要将这些被监测点放在不同的 mrtg 配置文件中,运行多个 crontab,而且还要自己写了一些 html 页面对其进行管理。

Cacti 其实是一套 php 程序,一个 rrdtool 工具。它运用 snmpget 采集数据,使用 rrdtool 绘图。界面非常漂亮,它提供了强大的数据管理和用户管理功能,一张图是属于一个 host 的,每一个 host 又可以挂载到一个树状的结构上。

用户的管理上,作为一个开源软件,它做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与 LDAP 结合进行用户的验证。 Cacti 还提供自己增加模板的功能,让你添加自己的 snmp_query 和 script 。功能相当强大!

本文前半部分是教程,主要介绍了 Cacti 以及其 PHP 运行环境的安装配置。后半部分将实际举例如何使用 Cacti 监控诸如 Linux,Windows 。以及支持 SNMP 管理协议的路由器等网络设备。

环境搭建

Cacit 运行环境需要 PHP + MySQL + rrdtool 以及 snmp 工具的支持。

下边是本次配置需要用到的软件。

Catci:

cacti-0.8.6j.tar.gz
    rrdtool-1.2.27.tar
    net-snmp-5.0.9-2.30E.15
    net-snmp-devel-5.0.9-2.30E.15
    net-snmp-libs-5.0.9-2.30E.15
    net-snmp-utils-5.0.9-2.30E.15
    PHP:

php-5.2.6.tar.gz
    curl-7.15.0.tar.gz
    freetype-2.1.9.tar.gz
    gettext-0.16.1.tar.gz
    gd-2.0.35.tar.gz
    jpegsrc.v6b.tar.gz
    libart_lgpl-2.3.17.tar.gz
    libpng-1.2.18.tar.gz
    libxml2-2.6.32.tar.gz
    ZendOptimizer-3.3.0a-linux-glibc21-i386.tar.gz
    zlib-1.2.3.tar.gz
    libxml2-2.6.32.tar.gz
    Apache:

httpd-2.2.6.tar.gz

Mysql:

mysql-5.1.24-rc.tar.gz

开始构建完整的 PHP 运行的环境,我们以全新安装的 RedHatAs4 updata4 操作系统环境为例。

首先编译安装Apache httpd server

# tar zxvf httpd-2.2.6.tar.gz
    # cd httpd-2.2.6
    # ./configure --prefix=/usr/local/apache26 --enable-module=so --with-mpm=worker --enable-module=rewrite
    # make && make install
    第二步安装 PHP+GD 等所需的支持插件

编译安装libxml

# tar zxvf libxml2-2.6.32.tar.gz
    # cd libxml2-2.6.32.tar.gz
    # ./configure --prefix=/usr/local/libxml2/
    # make && make install
    编译安装zlib

# tar zxvf zlib-1.2.3.tar.gz
    # cd zlib-1.2.3
    #./configure --prefix=/usr/local/zlib2/
    # make && make install
    编译安装jpeg支持

# tar -zxf jpegsrc.v6b.tar.gz
    # cd jpeg-6b/
    # ./configure --prefix=/usr/local/jpeg6
    # make
    # make install-lib
    # make install
    ( 该版本的 jpeg 在实际安装过程中,make install 的时候会出现好几个找不到目录,或目录不存在的 error 。只需按照提示人手创建缺失目录,然后再令其 make install 直到无任何错误提示且顺利完成为止。 )

编译安装 libpng

# tar zxvf libpng-1.2.18.tar.gz
    # cd libpng-1.2.18.tar.gz
    #cp scripts/makefile.gcmmx makefile
    #./configure --disable-shared --prefix=/usr/local/libpng2/
    # make && make install
    编译安装 freetype

# tar zxvf freetype-2.1.9.tar.gz
    # cd freetype-2.1.9
    #./configure --disable-shared --prefix=/usr/local/freetype2/
    # make && make install
    编译安装 libart_lgpl

# tar zxvf libart_lgpl-2.3.17.tar.gz
    # cd ibart_lgpl-2.3.17
    #./configure --disable-shared --prefix=/usr/local/libart/
    # make && make install
    编译安装 gettext

# tar zxvf gettext-0.16.1.tar.gz
    # cd gettext-0.16.1
    # ./configure --prefix=/usr/local/gettext/
    # make && make install
    编译安装 gd 库 :

# tar zxvf gd-2.0.35.tar.gz
    # cd gd-2.0.35
    # ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png=/usr/local/libpng2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype2/ --with-libart=/usr/local/libart/ --with-gettext=/usr/local/gettext/ --with-libxml=/usr/local/libxml2
    # make && make install
    编译安装 Curl 支持

# tar zxvf curl-7.15.0.tar.gz
    # cd curl-7.15.0
    # ./configure --prefix=/usr/local/curl
    # make && make install
    编译安装 PHP

# tar zxvf php-5.2.6.tar.gz
    # cd php-5.2.6
    # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache26/bin/apxs --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng2/ --with-gd=/usr/local/gd2/ --with-freetype-dir=/usr/local/freetype2/ --with-zlib-dir=/usr/local/zlib2/ --with-mysql=/usr/local/mysql --with-curl=/usr/local/curl --with-gettext=/usr/local/gettext
    # make && make install
    # cp php.ini-dist /usr/local/php/lib/php.ini ( 拷贝 PHP 配置文件至安装目录 )
    # vi /usr/local/apach26/conf/httpd.conf ( 修改 apache 配置文件并加载 PHP 支持 )

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyfsyp.html