Cacti教程(一)概述及安装

发布于 2022-10-15 08:12:30 字数 13126 浏览 21 评论 0

Cacti教程(一)概述及安装

1.概述
           cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。Snmp关系着数据的收集,rrdtool关系着数据存储和图表的生成。

           Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。

snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。关于RRDTool的知识请参阅RRDTool教学。

2.Cacti的架构及工作流程
2.1 Cacti的架构

2011-1-17 15:18 上传下载附件 (14.6 KB)

2.2 Cacti的工作流程

2011-1-17 15:18 上传下载附件 (18.34 KB)

3. 安装条件

  ØApache

  Øhp

  ØMySQL

  ØRRDTool

  ØNet-SNMP

4.安装过程

        系统环境:Ubuntu Server 9.04 64位

Apache与MySQL的安装此处省略

4.1 PHP安装

•在zlib的configure时,不要指定—prefix,如果指定了prefix在下面类安装时,会提示找不到zlib;
•libpng的安装时,要根据操作系统修改参数,如果操作系统为32位,则采用脚本中的参数,如果为64位,则需要在cp scripts/makefile.std makefile执行完成以后,修改makefile中CFLAGS的值,在后面加上-fPIC参数,否则会出现“usr/local/lib/libpng.a: could not read symbols: Bad value”的错误;
•在安装PHP之前,由于开启了Mysql模块,所以一定要安装Mysql,而且Cacti的数据也需要Mysql数据库进行存储;
HP的configure时,一定要加上--enable-sockets 选项,否则无法运行,PHP安装完成以后,它的配置文件为/usr/local/php/etc/php.ini。
•安装完成以后,在/usr/local/apache/htdocs下建立test.php,测试运行

  1. <?php
  2. phpinfo();
  3. ?>
  4. 复制代码安装脚本如下:
  5. #!/bin/sh
  6. cd /usr/local/src/php
  7. #1.zlib install
  8. #http://www.zlib.net/ zlib-1.2.5.tar.gz
  9. url:http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.gz/download
  10. cd /usr/local/src/php
  11. tar zxvf zlib-1.2.5.tar.gz
  12. cd zlib-1.2.5
  13. #./configure --prefix=/usr/local/zlib zlib not installed
  14. ./configure
  15. make
  16. make install
  17. #/usr/local/lib
  18. #2.libxml install libxml2-2.7.2.tar.gz
  19. #download url:http://xmlsoft.org/sources/
  20. cd /usr/local/src/php
  21. tar zxvf libxml2-2.7.2.tar.gz
  22. cd libxml2-2.7.2
  23. ./configure --prefix=/usr/local/libxml
  24. make
  25. make install
  26. #3.jpeg6 install jpegsrc.v6b.tar.gz
  27. #download url:http://www.ijg.org/files/
  28. mkdir /usr/local/libjpeg
  29. mkdir /usr/local/libjpeg/bin
  30. mkdir /usr/local/libjpeg/lib
  31. mkdir /usr/local/libjpeg/include
  32. mkdir /usr/local/libjpeg/man
  33. mkdir /usr/local/libjpeg/man/man1
  34. cd /usr/local/src/php
  35. tar zxvf jpegsrc.v6b.tar.gz
  36. cd jpeg-6b
  37. cp /usr/local/src/php/libtool libtool
  38. ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static
  39. make
  40. make install
  41. #4.libpng install libpng-1.5.0beta34.tar.gz
  42. #download url:http://sourceforge.net/projects/libpng/files/
  43. cd /usr/local/src/php
  44. tar zxvf libpng-1.5.0beta34.tar.gz
  45. cd libpng-1.5.0beta34
  46. cp scripts/makefile.std makefile
  47. #如果服务器是64版本,需要修改makefile的 CFLAGS参数,加入 -fPIC
  48. make
  49. make install
  50. #/usr/local/lib /usr/local/bin
  51. #5.freetype install freetype-2.4.0.tar.gz
  52. #download url:http://sourceforge.net/projects/freetype/files/
  53. cd /usr/local/src/php
  54. tar zxvf freetype-2.4.0.tar.gz
  55. cd freetype-2.4.0
  56. ./configure --prefix=/usr/local/freetype
  57. make
  58. make install
  59. #6 GD2 install gd-2.0.35.tar.gz
  60. #download url:http://www.libgd.org/
  61. #/usr/local/lib/libpng.a: could not read symbols: Bad value
  62. #http://blog.c1gstudio.com/archives/152
  63. cd /usr/local/src/php
  64. tar zxvf gd-2.0.35.tar.gz
  65. cd gd-2.0.35
  66. ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/libjpeg --with-png=/usr/local/lib --with-zlib=/usr/local/lib --with-freetype=/usr/local/freetype
  67. make
  68. make install
  69. #7. php install
  70. cd /usr/local/src/php
  71. tar zxvf php-5.3.2.tar.gz
  72. #mv php*.tar.gz backup
  73. cd php-5.3.2
  74. #we should install mysql first
  75. #open the funcation:--enable-sockets DTžÄdatetimezone
  76. ./configure --prefix=/usr/local/php --with-libxml-dir=/usr/local/libxml --with-gd=/usr/local/gd --with-jpeg-dir=/usr/local/libjpeg --with-zlib-dir=/usr/local/lib --with-png-dir=/usr/local/lib --with-freetype-dir=/usr/local/freetype --enable-mbstring --enable-sockets --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc
  77. #if error install :apt-get install flex
  78. make
  79. make install
  80. cp php.ini-development /usr/local/php/etc/php.ini
  81. sed -i '/<FilesMatch/s/^/<FilesMatch \\.php$>\
  82. SetHandler application\/x-httpd-php \
  83. <\/FilesMatch>\
  84. <FilesMatch "\.ph(p[2-6]?|tml)$">\
  85. SetHandler application\/x-httpd-php\
  86. <\/FilesMatch>\
  87. <FilesMatch "\.phps$">\
  88. SetHandler application\/x-httpd-php-source\
  89. <\/FilesMatch>\
  90. \ /' /usr/local/apache/conf/httpd.conf
  91. sed -i '/DirectoryIndex/s/$/ index.php/' /usr/local/apache/conf/httpd.conf
  92. service apache stop
  93. service apache start

复制代码复制代码4.2 RRDTool安装
执行脚本如下

  1. #!/bin/sh
  2. export BUILD_DIR=/usr/local/src/rrdtool
  3. export INSTALL_DIR=/usr/local/rrdtool
  4. #mkdir -p $BUILD_DIR
  5. cd $BUILD_DIR
  6. export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig
  7. export PATH=$INSTALL_DIR/bin:$PATH
  8. export LDFLAGS="-Wl,--rpath -Wl,${INSTALL_DIR}/lib"
  9. #pkg-config
  10. cd $BUILD_DIR
  11. gunzip -c pkg-config-0.23.tar.gz | tar xf -
  12. cd pkg-config-0.23
  13. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
  14. make
  15. make install
  16. #zlib
  17. cd $BUILD_DIR
  18. gunzip -c zlib-1.2.5.tar.gz | tar xf -
  19. cd zlib-1.2.5
  20. ./configure --prefix=$INSTALL_DIR --shared
  21. make
  22. make install
  23. cd $BUILD_DIR
  24. #wget http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.18.tar.gz
  25. gunzip -c libpng-1.2.18.tar.gz | tar xf -
  26. cd libpng-1.2.18
  27. env CFLAGS="-O3 -fPIC" ./configure --prefix=$INSTALL_DIR
  28. make
  29. make install
  30. #freetype
  31. cd $BUILD_DIR
  32. #wget http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.3.5.tar.gz
  33. gunzip -c freetype-2.3.5.tar.gz | tar xf -
  34. cd freetype-2.3.5
  35. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
  36. make
  37. make install
  38. #libxml2
  39. cd $BUILD_DIR
  40. gunzip -c libxml2-2.6.32.tar.gz | tar xf -
  41. cd libxml2-2.6.32
  42. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
  43. make
  44. make install
  45. #fontconfig
  46. cd $BUILD_DIR
  47. gunzip -c fontconfig-2.4.2.tar.gz | tar xf -
  48. cd fontconfig-2.4.2
  49. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --with-freetype-config=$INSTALL_DIR/bin/freetype-config
  50. make
  51. make install
  52. #pixman
  53. cd $BUILD_DIR
  54. #wget http://oss.oetiker.ch/rrdtool/pub/libs/pixman-0.10.0.tar.gz
  55. gunzip -c pixman-0.10.0.tar.gz | tar xf -
  56. cd pixman-0.10.0
  57. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
  58. make
  59. make install
  60. #cairo
  61. cd $BUILD_DIR
  62. #wget http://oss.oetiker.ch/rrdtool/pub/libs/cairo-1.6.4.tar.gz
  63. gunzip -c cairo-1.6.4.tar.gz | tar xf -
  64. cd cairo-1.6.4
  65. ./configure --prefix=$INSTALL_DIR \
  66. --enable-xlib=no \
  67. --enable-xlib-render=no \
  68. --enable-win32=no \
  69. CFLAGS="-O3 -fPIC"
  70. make
  71. make install
  72. #Glib
  73. cd $BUILD_DIR
  74. #wget http://oss.oetiker.ch/rrdtool/pub/libs/glib-2.15.4.tar.gz
  75. gunzip -c glib-2.15.4.tar.gz | tar xf -
  76. cd glib-2.15.4
  77. apt-get -y install gettext
  78. #must have gettext support in C library :apt-get install gettext
  79. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC"
  80. make
  81. make install
  82. #pango
  83. cd $BUILD_DIR
  84. #wget http://oss.oetiker.ch/rrdtool/pub/libs/pango-1.21.1.tar.bz2
  85. bunzip2 -c pango-1.21.1.tar.bz2 | tar xf -
  86. cd pango-1.21.1
  87. ./configure --prefix=$INSTALL_DIR CFLAGS="-O3 -fPIC" --without-x
  88. make
  89. make install
  90. #rrdtool
  91. cd $BUILD_DIR
  92. gunzip -c rrdtool-1.3.9.tar.gz | tar xf -
  93. cd rrdtool-1.3.9
  94. ./configure --prefix=$INSTALL_DIR --disable-tcl --disable-python
  95. make
  96. make install

复制代码复制代码4.3 Net-Snmp和Cacti安装
    在安装过程中,错误主要出现在net-snmp安装时,如果提示“grep: /usr/lib/libbeecrypt.la: No such file or director”,则缺少libbecrypt类,通过apt-get -y install libbeecrypt7解决;如果提示“usr/bin/ld: cannot find -lperl”,说明共享库中没有perl,通过“ln -s /usr/lib/libperl.so.5.10 /usr/lib/libperl.so”命令解决。
    安装完成以后,输入http://ip/cacti 测试,如果不能正常测试,则使用http://ip/cacti/index.php 进行测试;在配置界面中输入相应rrdtool和net-snmp的安装位置进行登录界面,初始的登录用户名和密码都是admin,初次登录修改密码,修改为******
    执行脚本如下:

  1. #!/bin/sh
  2. #net-snmp installation net-snmp-5.5.tar.gz http://www.net-snmp.org/
  3. cd /usr/local/src/cacti
  4. #error:/usr/lib/libbeecrypt.la' is not a valid libtool archive
  5. #short of libbeecrypt
  6. apt-get -y install libbeecrypt7
  7. tar zxvf net-snmp-5.5.tar.gz
  8. cd net-snmp-5.5
  9. #apt-get install libiconv-hook-dev
  10. ./configure --prefix=/usr/local/net-snmp --enable-mfd-rewrites --with-default-snmp-version="2" --with-sys-contact="admin" --with-sys-location="China" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp"
  11. ln -s /usr/lib/libperl.so.5.10 /usr/lib/libperl.so
  12. make
  13. make install
  14. ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
  15. cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
  16. #vim snmp.conf
  17. /usr/local/net-snmp/sbin/snmpd
  18. #vim /etc/rc.local /usr/local/net-snmp/sbin/snmpd
  19. #cd $BUILD_DIR
  20. cd /usr/local/src/cacti
  21. tar xvfz cacti-0.8.7g.tar.gz
  22. mv cacti-0.8.7g /usr/local/apache/htdocs/cacti
  23. sed -i 's/$database_default = "cacti"/$database_default = "cactidb"/g' /usr/local/apache/htdocs/cacti/include/config.php
  24. sed -i 's/$database_password = "cactiuser"/$database_password = "cactipwd"/g' /usr/local/apache/htdocs/cacti/include/config.php
  25. groupadd cacti
  26. useradd -g cacti cactiuser
  27. chown -R cactiuser /usr/local/apache/htdocs/cacti/rra/
  28. chown -R cactiuser /usr/local/apache/htdocs/cacti/log/
  29. #cacti-spine settings cacti-spine-0.8.7g.tar.gz spine默认安装在/usr/local/spine
  30. cd /usr/local/src/cacti
  31. apt-get -y install autoconf automake libtool
  32. tar zxvf cacti-spine-0.8.7g.tar.gz
  33. cd cacti-spine-0.8.7g
  34. ./configure --with-snmp=/usr/local/net-snmp --with-mysql=/usr/local/mysql
  35. make
  36. make install
  37. chgrp -R cacti /usr/local/apache/htdocs/cacti/
  38. #MySql Configuration
  39. /usr/local/mysql/bin/mysql -uroot -proot <<EOF
  40. create database cactidb;
  41. grant all on cactidb.* to cactiuser@localhost identified by "cactipwd";
  42. use cactidb;
  43. source /usr/local/apache/htdocs/cacti/cacti.sql
  44. EOF
  45. #vim /usr/local/php/etc/php.ini date.timezone = Asia/Shanghai
  46. sed -i '/Date/s/$/\
  47. date.timezone = Asia\/Shanghai/' /usr/local/php/etc/php.ini
  48. service apache stop
  49. service apache start

复制代码复制代码
Cacti安装完成

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文