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

[经验分享] 性能监控程序cacti的安装(mysql+apache+php)

[复制链接]

尚未签到

发表于 2015-11-22 11:46:39 | 显示全部楼层 |阅读模式
    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
  
  
  
  
  
  
  
  

运维网声明 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-142099-1-1.html 上篇帖子: CentOS 6下yum安装cacti 下篇帖子: CentOS6.2安装cacti远程监控服务器小纪
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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