bdjhx 发表于 2019-1-9 11:23:36

基于LAMP的cacti安装和配置&&问题处理(一)

基于LAMP的cacti安装和配置&&问题处理(一)

[*]  背景介绍:
  1. cacti是用php语言实现的一个软件,它的主要功能是用snmp服务获取数据,当用户需要查看数据的时候用rrdtool生成图表呈现给用户。因此,snmp和rrdtool是cacti的关键。
  2. Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如:主机名、主机ip、snmp团体名、端口号、模板信息等变量。
  3. snmp抓到数据不是存储在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目录的rra文件夹下)。rrdtool对数据的更新和存储就是对rrd文件的处理,rrd文件是大小固定的档案文件(Round Robin Archive),它能够存储的数据笔数在创建时就已经定义。
  注:
  1.我在这里使用的是新建的虚拟机,里面没有搭建任何平台!
  2.虚拟机系统是Centos6.7
  3.关掉iptables
  4.关闭selinux
  

[*]  实施步骤:

  (1)安装 epel 扩展源
  #yum install -y epel-release
  (2)搭建lamp,安装mysql、apache、php
  #yum install -y httpd php php-mysql mysql mysql-server mysql-devel php-gd libjpeg libjpeg-devel libpng libpng-devel
  (3)安装 cacti net-snmp rrdtool

  #yum install -y cacti net-snmp net-snmp-utils rrdtool
  其中rrdtool是显示图形化的工具
  (4)启动服务:

  /etc/init.d/mysqld start
  /etc/init.d/httpd start
  /etc/init.d/snmpd start
  (5)编辑 httpd 配置文件

  vim /etc/httpd/conf.d/cacti.conf
  把 "Deny from all"改为 "Allow from all"
  /etc/init.d/httpd restart
  (6)导入数据创建 cacti 库
  # mysql -u root (进入数据库)
  mysql> create database cacti;(创建数据库cacti)
  创建 cacti 用户:
  mysql> grant all on cacti.* to 'cacti'@'127.0.0.1' identified by 'cacti';(将cacti库与表所有权限授给cacti用户下本地主机,认证密码是cacti)
  刷新下,命令: FLUSH PRIVILEGES;(或者重启数据库)
  注:有些数据库版本使用flush privileges;
  mysql> exit(退出数据库)
  

  导入 sql 文件
  mysql -uroot cacti < /usr/share/doc/cacti-1.0.4/cacti.sql
(7)编辑 cacti 配置文件
  vim /usr/share/cacti/include/config.php 更改如下:
  $database_type = "mysql";
  $database_default = "cacti";
  $database_hostname = "127.0.0.1";
  $database_username = "cacti";
  $database_password = "cacti";
  $database_port = "3306";
  $database_ssl = false;
(8)修改配置文件vim /etc/snmp/snmpd.conf
  com2sec notConfigUser default public改为com2sec notConfigUser localhost public
  access notConfigGroup "" any noauth exact systemview none none改为access notConfigGroup "" any noauth exact all none none
  #view all included .1 80去掉#变为view all included .1 80
  测试: snmpwalk -v 2c -c public localhost system 目的查看配置是否正确

  (9) web 访问 cacti 并安装
  http://ip/cacti/,截图如下:
https://s1.运维网.com/wyfs02/M00/8F/8F/wKioL1jlDJmzCk3VAADvW4mHUfY838.png
  点击“next”之后,安装出现两个错误,截图如下:
https://s2.运维网.com/wyfs02/M01/8F/8F/wKioL1jlDVSRoTVsAABy5eJe_Rs828.png
先来解决第二个问题:
#yum -y install php-process

#php -m |grep posix
好了,可以看到php已经支持posix了,重启apache就ok.
截图如下:
https://s3.运维网.com/wyfs02/M01/8F/9D/wKiom1jm_4yRLSREAADOz5_ovCI884.png
再来解决第一个问题,解决方法如下:
步骤一:先修改mysql时区,有三种方法,个人推荐使用第二种。
方法一:通过mysql命令行模式下动态修改。
set time_zone='+8:00'; ##修改mysql时区为北京时间,即我们所在的东8区

show variables like '%time_zone%';
https://s4.运维网.com/wyfs02/M02/8F/9E/wKiom1jnAgTBR4MpAAARla-Ij3A382.png
select now();
https://s1.运维网.com/wyfs02/M02/8F/9E/wKiom1jnAkqC_q5kAAAKpmv19QQ892.png

flush privileges;##立即生效
方法二:通过修改my.cnf配置文件来修改时区
  # vim /etc/my.cnf ##在区域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重启mysql使新时区生效

方法三:如果不方便重启mysql,又想临时解决时区问题,可以通过php或其他语言在初始化mysql时初始化mysql时区
这里,以php为例,在mysql_connect()下使用:
mysql_query("SET time_zone = '+8:00'")

这样可以在保证你不重启的情况下改变时区。但是mysql的某些系统函数还是不能用如:now()。
  步骤二:以root用户身份进入数据库,做如下操作:
  grant all on mysql.* to 'cacti'@'127.0.0.1' identified by 'cacti';
  flush privileges;##立即生效
  
  下面刷新网页,截图如下:
https://s4.运维网.com/wyfs02/M01/8F/A0/wKiom1jnJPTRLVTNAAFL1vrrmSg977.png
  问题解决方法:
https://s2.运维网.com/wyfs02/M00/8F/9D/wKioL1jnB2OCkZ3UAAAZIOBqrzM782.png

  这里我们直接输入:
  mysql_tzinfo_to_sql /usr/share/zoneinfo

  即可!
  到这里我们就可以点击cacti界面左下角“next”按钮了!


  

  





  

  


  


  


  




页: [1]
查看完整版本: 基于LAMP的cacti安装和配置&&问题处理(一)