设为首页 收藏本站
查看: 1537|回复: 0

[经验分享] Linux下cacti的安装RedHat9,RedHat AS4-gzmaster

[复制链接]

尚未签到

发表于 2019-1-12 10:36:51 | 显示全部楼层 |阅读模式
第三步、 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:\usr\bin>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:\usr\bin>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/b ... 2411338744f9c3.html
  RRDTool应用示例:
  http://hi.baidu.com/myfreezone/b ... 538e13b07ec5c1.html
  对RRDTool的总结
  http://hi.baidu.com/myfreezone/b ... d66b094b36d6f8.html
          第四步、Cacti的安装
  1.安装环境:redhat9.0
  2.安装版本的特别说明
  对cacti的poller type改为了cactid,他是用c语言写程序,目的是为了配合cacti工作,解决poller.php更新、获取数据慢的缺点;具有多进程多线程的特性
  安装rrdtool版本是1.2.11,此版本的特点是生成的图像比1.0.50版本更美观
  3.安装以下软件包:
  httpd-2.0.54.tar.gz
  mysql-4.0.18.tar.gz
  php-4.4.0.tar.gz
  rrdtool-1.2.11.tar.gz
  net-snmp-5.2.1.1.tar.gz
  cacti-0.8.6f.tar.gz
  cacti-cactid-0.8.6f-1.tar.gz
  都放到/tools下
  A.安装mysql
  # groupadd mysql
  # useradd -g mysql mysql
  # cd /tools
  # tar zxvf mysql-4.0.18.tar.gz
  # cd mysql-4.0.18
  #./configure --prefix=/usr/local/mysql --with- --with-extra-charsets=all --with-mysqld-user=mysql
  # make
  # make install
  # /usr/local/mysql/bin/mysql_install_db
  # echo /usr/local/mysql/lib/mysql >> /etc/ld.so.conf
  # su -
  # ldconfig
  # cd /home/admin/mysql-4.0.18/support-files/
  # cp mysql.server /etc/rc.d/init.d/mysql
  # chkconfig --add mysql
  # chown -R mysql.mysql /usr/local/mysql/var
  # chmod 700 /usr/local/mysql/var
  # /etc/rc.d/init.d/mysql start或者/usr/local/mysql/bin/mysqld_safe &
  # cp /usr/local/mysql/bin/mysql /usr/local/bin
  修改mysql的最大连接数
  # vi mysqld_safe
  找到:
  nohup $ledir/mysqld --basedir=$MY_BASEDIR_VERSION --datadir=$DATADIR \- --skip-locking >> $err_log 2>&1
  在--skip-locking与 >>之间插入-O max_connections=1000
  重起mysql
  B.安装apache
  # cd /tools/http
  #./configurs --prefix=/usr/local/http/
  # make
  # make install
  C.安装php
  # cd php
  #./configure --with-mysql --with-apxs2=/usr/local/http/bin/apxs --enable-track-vars --with-zlib-dir=/usr/include --with-gd
  # make
  # make install
  # cp php.ini-dist /usr/local/lib/php.ini
  D.安装rrdtool
  http://people.ee.ethz.ch/~oetike ... dtool-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.n ... 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
  F.安装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
  G.安装cacti-cactid
  http://www.cacti.net/downloads/c ... tid-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
  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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-662286-1-1.html 上篇帖子: CACTI简易教程 下篇帖子: 我使用了不少时间的CACTI监控 安装文档
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表