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

  1. 云栖社区>
  2. 博客>
  3. 正文

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

技术小胖子 2017-11-09 18:11:00 浏览962
展开阅读全文

基于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/,截图如下:

wKioL1jlDJmzCk3VAADvW4mHUfY838.png

点击“next”之后,出现两个错误,截图如下:

wKioL1jlDVSRoTVsAABy5eJe_Rs828.png

先来解决第二个问题: 

#yum -y install php-process

#php -m |grep posix

好了,可以看到php已经支持posix了,重启apache就ok.

截图如下:

wKiom1jm_4yRLSREAADOz5_ovCI884.png

再来解决第一个问题,解决方法如下:

步骤一:先修改mysql时区,有三种方法,个人推荐使用第二种。

方法一:通过mysql命令行模式下动态修改。

 set time_zone='+8:00'; ##修改mysql时区为北京时间,即我们所在的东8区

 show variables like '%time_zone%';

wKiom1jnAgTBR4MpAAARla-Ij3A382.png

select now(); 

wKiom1jnAkqC_q5kAAAKpmv19QQ892.png

 flush privileges;##立即生效

方法二:通过修改my.cnf配置文件来修改时区

# vim /etc/my.cnf ##在[mysqld]区域中加上
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;##立即生效

下面刷新网页,截图如下:

wKiom1jnJPTRLVTNAAFL1vrrmSg977.png

问题解决方法:

wKioL1jnB2OCkZ3UAAAZIOBqrzM782.png

这里我们直接输入:

mysql_tzinfo_to_sql /usr/share/zoneinfo 

即可!

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





     本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1913756,如需转载请自行联系原作者



网友评论

登录后评论
0/500
评论
技术小胖子
+ 关注