本文共 2754 字,大约阅读时间需要 9 分钟。
基于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 并安装
点击“next”之后,安装出现两个错误,截图如下:
先来解决第二个问题:
#yum -y install php-process
#php -m |grep posix
好了,可以看到php已经支持posix了,重启apache就ok.
截图如下:
再来解决第一个问题,解决方法如下:
步骤一:先修改mysql时区,有三种方法,个人推荐使用第二种。
方法一:通过mysql命令行模式下动态修改。
set time_zone='+8:00'; ##修改mysql时区为北京时间,即我们所在的东8区
show variables like '%time_zone%';
select now();
# 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';
下面刷新网页,截图如下:
问题解决方法:
这里我们直接输入:
mysql_tzinfo_to_sql /usr/share/zoneinfo
即可!
到这里我们就可以点击cacti界面左下角“next”按钮了!
本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1913756,如需转载请自行联系原作者