Cacti的安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:
一、 Cacti 的安装
1.安装环境: RedHat AS 4
2.安装Apache、MySQL、PHP
(1).安装MySQL
  //查看系统中是否已经安装了MySQL,如果是卸载所有以mysql开头的包。
# rpm –qa | grep mysql
# rpm –e mysql-*
//查找/etc/my.cnf(MySQL的选项配置文件),如果有请删除它,以免影响新安装版本的启动。
# rm –f /etc/my.cnf
# tar –zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
# cp –rf mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/
//建立符号链接,如果以后有新版本的MySQL的话,你可以仅仅将源码解压到新的路径,然后重新做一个符号链接就可以了。这样非常方便,数据也更加安全。
# ln –s mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql
//添加用于启动MySQL的用户及用户组(如果以前安装过MySQl,用户及用户组可能已存在)。
# useradd mysql
# groupadd mysql
//初始化授权表
# cd /usr/local/mysql
# scripts/mysql_install_db
//修改MySQl目录的所有权
# cd /usr/local
# chgrp –R mysql mysql-standard-5.0.27-linux-i686-glibc23
# chgrp –R mysql mysql
# chown –R mysql mysql-standard-5.0.27-linux-i686-glibc23/data
# chown –R mysql mysql/data
# ln –s /usr/local/mysql/bin/* /usr/local/bin/
//启动Mysql
# bin/safe_mysqld  --user=mysql &
//配置系统启动时自动启动MySQl
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
//修改MySQL的最大连接数
# vi /etc/my.cnf
//添加以下行
[mysqld]
set-variable=max_connections=1000
set-variable=max_user_connections=500
set-variable=wait_timeout=200
//max_connections设置最大连接数为1000
//max_user_connections设置每用户最大连接数为500
//wait_timeout表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接不影响。
//保存退出,并重新启动MySQL
//重新启动MySQL后使用下面的命令查看修改是否成功
# mysqladmin -uroot -p variables
Password:
//可以看到以下项说明修改成功
| max_connections                 | 1000
| max_user_connections            | 500
| wait_timeout                    | 200
 
(2).安装Apache
# tar –zxvf  httpd-2.2.4.tar.gz
# cd httpd-2.2.4
# ./configure --prefix=/usr/local/apache --enable-so
//编译时加上加载模块参数--enable-so
# make
# make install
#vi /usr/local/apache/conf/httpd.conf
   //修改Apache配置文件,添加ServerName  [url]www.yourdomain.com[/url]                           (或ServerName 本机ip)
# vi /etc/rc.d/rc.local
   //在rc.local上加入一行/usr/local/apache/bin/apachectl –k start,系统启动时启动Apache服务。
(3).安装PHP
先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库(Cacti的WeatherMap插件必须要较新GD库的支持)
库文件下载地址: [url]http://oss.oetiker.ch/rrdtool/pub/libs/[/url]
1).安装zlib
    tar zlib-1.2.3.tar.gz
    cd zlib-1.2.3
    ./configure --prefix=/usr/local/zlib
    make
    make install

2).安装libpng
    tar zxvf libpng-1.2.16.tar.tar
    cd libpng-1.2.16
    cd scripts/
    mv makefile.linux ../makefile
    cd ..
    make
    make install
    注意,这里的makefile不是用./configure生成,而是直接从scripts/里拷一个

3).安装freetype
    tar zxvf freetype-2.3.4 .tar.gz
    cd freetype-2.3.4   
    ./configure --prefix=/usr/local/freetype
    make
    make install

4).安装Jpeg
     tar -zxf jpegsrc-1.v6b.tar.gz
     cd jpeg-6b/
     mkdir /usr/local/libjpeg
     mkdir /usr/local/libjpeg/include
     mkdir /usr/local/libjpeg/bin
     mkdir /usr/local/libjpeg/lib
     mkdir /usr/local/libjpeg/man
     mkdir /usr/local/libjpeg/man/man1
   //可以用mkdir -p /usr/local/libjpeg/man/man1 一步创建多层目录
     ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
     make && make install
注意,这里configure一定要带--enable-shared参数,不然,不会生成共享库
 
5).安装Fontconfig
tar -zxvf fontconfig-2.4.2.tar.gz
cd fontconfig-2.4.2
./configure  --with-freetype-config=/usr/local/freetype
make
make install

6).安装GD
    tar -zxvf gd-2.0.34.tar.gz
    cd gd-2.0.34
    ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg
   make
    make install
编译时显示以下信息:
** Configuration summary for gd 2.0.34:

     Support for PNG library:                yes
     Support for JPEG library:               yes
     Support for Freetype 2.x library: yes
     Support for Fontconfig library:     yes
     Support for Xpm library:                no
     Support for pthreads:                     yes
 
7).编辑/etc/ld.so.conf,添加以下几行到此文件中。
        /usr/local/zlib/lib
        /usr/local/freetype/lib
        /usr/local/libjpeg/lib
        /usr/local/libgd/lib
        并执行ldconfig命令,使用动态装入器装载找到共享库
 
8).安装libxml,RedHat AS 4默认安装libxml包,但版本太低,PHP5需要更高版本的libxml包。
           # tar –zxvf libxml2-2.6.25.tar.gz
           # cd libxml2-2.6.25
           # ./configure
           # make
           # make install
 
9).安装PHP
tar -zxvf    php-5.2.3.tar.gz
cd php-5.2.3
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets
# make
# make install
# cp php.ini-recommended /usr/local/php/lib/php.ini
# ln –s /usr/local/php/bin/* /usr/local/bin/
# vi /usr/local/apache/conf/httpd.conf
查找AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在其下加入 AddType application/x-tar .tgz
AddType application/x-httpd-php .php
AddType image/x-icon .ico
修改DirectoryIndex 行,添加index.php
修改为DirectoryIndex index.php index.html index.html.var
# vi /usr/local/apache/htdocs/test.php
添加以下行:
//php标记(用<代替[)
[?php             
  Phpinfo();
?]
wq保存退出。
# /usr/local/apache/bin/apachectl –k stop
#/usr/local/apache/bin/apachectl –k start
在浏览器中输入: [url]http://www.yourdomain.com[/url]/test.php进行测试。
 
对php编译选项的解释:
--prefix=/usr/local/php    //指定PHP的安装目录
--with-apxs2=/usr/local/apache2/bin/apxs           //支持Apache模块
--with-mysql=/usr/local/mysql       //支持MySQl
--with-gd=/usr/local/libgd         //支持GD库
--enable-gd-native-ttf         //激活对本地 TrueType 字符串函数的支持
--with-ttf         //激活对 FreeType 1.x 的支持
--with-freetype-dir=/usr/local/freetype       //激活对 FreeType 2.x 的支持
--with-jpeg-dir=/usr/local/libjpeg //激活对 jpeg-6b 的支持
--with-png-dir=/usr     //激活对 png 的支持
--with-zlib-dir=/usr/local/zlib //激活对zlib 的支持
--enable-mbstring       //激活mbstring模块
--enable-gd-jis-conv //使JIS-mapped可用,支持日文字体
--with-mail     //支持Mail函数
--enable-xml         //支持XML
--enable-sockets           //支持套接字
         
1.安装RRDTool
由于rrdtool-1.2.23需要一些库文件支持,故需先安装配置支持的环境,然后编译安装。直接运行以下bash脚本就可以完成安装:
注意:将cgilib-0.5.tar.gz、zlib-1.2.3.tar.gz、libpng-1.2.18.tar.gz、freetype-2.3.5.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.23.tar.gz放到/root/rrdtool-1.2.23目录下,将脚本保存为/root/rrdtool-1.2.23/rrdtoolinstall.sh,并给执行权限chmod u+x /root/rrdtool-1.2.23/rrdtoolinstall.sh。
以下链接是我重新打好的一个rrdtool-1.2.23的安装包,里面包括了所有用到的库文件和安装脚本,下载解压后执行脚本rrdinstall.sh即可以完成RRDTool的安装。
点击下载rrdtool-1.2.23.tar.gz
如果以上脚本安装失败,可以试试以下安装包:
#!/bin/sh
BUILD_DIR=`pwd`
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.3.tar.gz
cd zlib-1.2.3
env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb
make
make install
cd $BUILD_DIR
tar zxvf libpng-1.2.18.tar.gz
cd libpng-1.2.18
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.3.5.tar.gz
cd freetype-2.2.5
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.23.tar.gz
cd rrdtool-1.2.23
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl && make && make install

//完成后建立符号连接 
ln –s /usr/local/rrdtool/bin/* /usr/local/bin/
//执行rrdtool看是否安装正确
2.安装net-snmp
RedHat默认安装了SNMP服务,但好象没有snmpwalk,snmpget这两个命令,所以需要编译安装NET-SNMP。
NET-SNMP官方网站: [url]http://www.net-snmp.org/[/url]
# tar zxvf net-snmp-5.2.4.tar.gz
#cd net-snmp-5.2.4
#./configure --prefix=/usr/local/net-snmp   --enable-developer
#make
#make install
# ln –s /usr/local/net-snmp/bin/* /usr/local/bin/
#cp EXAMPLE.conf   /usr/local/net-snmp/share/snmp/snmpd.conf
//修改snmpd.conf(修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等)。
# /usr/local/net-snmp/sbin/snmpd         //启动SNMP服务
# vi /etc/rc.d/rc.local
      //在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。
 
3.安装Cacti
Cacti官方网站: [url]www.cacti.net/[/url]
# tar –zxvf cacti-0.8.6j.tar.gz
# mv –r cacti-0.8.6j /usr/loca/apache/htdocs/cacti
# vi /usr/local/apache/htdocs/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
 
// 添加 cacti 用户
# useradd cacti
// rra 目录的所有权给 cacti 用户
# chown –R cacti /usr/loca/apache/htdocs/cacti/rra
// 修改 cacti 目录所属组
# chgrp –R cacti /usr/loca/apache/htdocs/cacti
//为cacti用户添加cron任务
# su – cacti
# crontab –e
*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null 2>&1
注意:首次执行poller.php时请使用cacti用户,否则生成的rrd文件cacti将没有写入权限。
         
4.安装Cactid
CACTID 的安装需要以下支持:
     net-snmp-devel (需要编译安装net-snmp时添加--enable-developer选项)
     mysql                            
     mysql-devel         (mysql源文件编译安装后默认支持)
     openssl-devel    (Redhat默认安装)
# tar -zxvf cacti-cactid-0.8.6i.tar.gz
# cd cacti-cactid-0.8.6i
# ./configure --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp
# make
//这时你将在此目录下看到多出了cactid、cactid.conf两个文件
# mkdir /usr/local/cactid
# cp cactid cactid.conf /usr/local/cactid
# vi   /usr/local/cactid/cactid.conf             //修改cactid配置文件
DB_Host                 127.0.0.1
DB_Database         cacti
DB_User                 cacti
DB_Pass                 cacti
         
5.数据库配置
#mysql –uroot –p
Password:
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
 
mysql> grant all on cacti.* to cacti@localhost identified by “cacti”;
Query OK, 1 row affected (0.00 sec)
 
mysql>exit
# cd /usr/local/apache/htdocs/cacti
# mysql –uroot –p cacti < cacti.sql
Password:
         
6.完成cacti的安装
1).在浏览器中输入: [url]http://www.yourdomain.com/cacti/[/url]
默认用户名:admin 密码:admin
2).更改密码
3).设置cacti用到的命令路径
snmpwalk Binary Path          /usr/local/ bin/snmpwalk
snmpget Binary Path                 /usr/local/ bin/snmpget
RRDTool Binary Path                  /usr/local/ bin/rrdtool
PHP Binary Path              /usr/local/bin/php
Cacti Log File Path           /usr/local/apache/htdocs/cacti/log/cacti.log
Cactid Poller File Path      /usr/local/cactid/cactid
4).进入cacti后需确认更改以下位置:(如下图)
Console> Settings >General
 
Console> Settings >Poller

本文转自自由心行博客51CTO博客,原文链接http://blog.51cto.com/xiaojiang2008/147040如需转载请自行联系原作者


xiaojiang

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
消息中间件 存储 负载均衡
|
存储 Linux Docker
Docker NFS volume 创建与使用
Docker NFS volume 创建与使用
Docker NFS volume 创建与使用
|
4月前
|
XML 前端开发 Android开发
一篇文章带你走近Android自定义view
这是一篇关于Android自定义View的全面教程,涵盖从基础到进阶的知识点。文章首先讲解了自定义View的必要性及简单实现(如通过三个构造函数解决焦点问题),接着深入探讨Canvas绘图、自定义属性设置、动画实现等内容。还提供了具体案例,如跑马灯、折线图、太极图等。此外,文章详细解析了View绘制流程(measure、layout、draw)和事件分发机制。最后延伸至SurfaceView、GLSurfaceView、SVG动画等高级主题,并附带GitHub案例供实践。适合希望深入理解Android自定义View的开发者学习参考。
489 84
|
11月前
|
存储 缓存 索引
从底层数据结构和CPU缓存两方面剖析LinkedList的查询效率为什么比ArrayList低
本文详细对比了ArrayList和LinkedList的查询效率,从底层数据结构和CPU缓存两个方面进行分析。ArrayList基于动态数组,支持随机访问,查询时间复杂度为O(1),且CPU缓存对其友好;而LinkedList基于双向链表,需要逐个节点遍历,查询时间复杂度为O(n),且CPU缓存对其帮助不大。文章还探讨了CPU缓存对数组增删操作的影响,指出缓存主要作用于读取而非修改。通过这些分析,加深了对这两种数据结构的理解。
191 2
|
弹性计算 数据中心
阿里云香港服务器详细介绍_BGP多线精品测试_CN2高速网络
阿里云香港服务器中国香港数据中心网络线路类型BGP多线精品,中国电信CN2高速网络高质量、大规格BGP带宽,运营商精品公网直连中国内地,时延更低,优化海外回中国内地流量的公网线路,可以提高国际业务访问质量。阿里云百科来详细介绍阿里云香港云服务器
|
12月前
|
JSON 关系型数据库 MySQL
EXPLAIN Extra Information
`EXPLAIN` 输出的 `Extra` 列提供了 MySQL 解析查询的附加信息。此列可能的值及其对应的 JSON 属性如下: - **Using filesort / using_filesort**:需额外排序。 - **Using temporary / using_temporary_table**:需创建临时表。 - **Deleting all rows**:删除所有行。 - **Distinct / distinct**:寻找不同值。 - **FirstMatch(tbl_name)**:使用半连接策略。
|
存储 机器学习/深度学习 安全
一文搞懂什么是Raid
一文搞懂什么是Raid
1090 0
|
Java Spring
Command line is too long. Shorten command line for Application or also for Spring Boot default confi
Command line is too long. Shorten command line for Application or also for Spring Boot default confi
159 1
|
搜索推荐 安全 UED
域名一定需要备案吗?什么情况下不用备案?
买了域名一定要备案吗? 老鸟的回答的“”不!
3202 3