您好,登錄后才能下訂單哦!
基于LAMP的cacti安裝和配置&&問題處理(一)
背景介紹:
1. cacti是用php語言實(shí)現(xiàn)的一個(gè)軟件,它的主要功能是用snmp服務(wù)獲取數(shù)據(jù),當(dāng)用戶需要查看數(shù)據(jù)的時(shí)候用rrdtool生成圖表呈現(xiàn)給用戶。因此,snmp和rrdtool是cacti的關(guān)鍵。
2. Mysql配合PHP程序存儲(chǔ)一些變量數(shù)據(jù)并對變量數(shù)據(jù)進(jìn)行調(diào)用,如:主機(jī)名、主機(jī)ip、snmp團(tuán)體名、端口號、模板信息等變量。
3. snmp抓到數(shù)據(jù)不是存儲(chǔ)在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數(shù)據(jù)的更新和存儲(chǔ)就是對rrd文件的處理,rrd文件是大小固定的檔案文件(Round Robin Archive),它能夠存儲(chǔ)的數(shù)據(jù)筆數(shù)在創(chuàng)建時(shí)就已經(jīng)定義。
注:
1.我在這里使用的是新建的虛擬機(jī),里面沒有搭建任何平臺(tái)!
2.虛擬機(jī)系統(tǒng)是Centos6.7
3.關(guān)掉iptables
4.關(guān)閉selinux
實(shí)施步驟:
(1)安裝 epel 擴(kuò)展源
#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)啟動(dòng)服務(wù):
/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)導(dǎo)入數(shù)據(jù)創(chuàng)建 cacti 庫
# mysql -u root (進(jìn)入數(shù)據(jù)庫)
mysql> create database cacti;(創(chuàng)建數(shù)據(jù)庫cacti)
創(chuàng)建 cacti 用戶:
mysql> grant all on cacti.* to
'cacti'
@
'127.0.0.1'
identified by
'cacti'
;(
將cacti庫與表所有權(quán)限授給cacti用戶下本地主機(jī),認(rèn)證密碼是cacti)
刷新下,命令: FLUSH PRIVILEGES;(或者重啟數(shù)據(jù)庫)
注:有些數(shù)據(jù)庫版本使用flush privileges;
mysql>
exit(退出數(shù)據(jù)庫)
導(dǎo)入 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去掉#變?yōu)関iew all included .1 80
測試: snmpwalk -v 2c -c public localhost system 目的查看配置是否正確
(9) web 訪問 cacti 并安裝
http://ip/cacti/,截圖如下:
點(diǎn)擊“next”之后,安裝出現(xiàn)兩個(gè)錯(cuò)誤,截圖如下:
先來解決第二個(gè)問題:
#yum -y install php-process
#php -m |grep posix
好了,可以看到php已經(jīng)支持posix了,重啟apache就ok.
截圖如下:
再來解決第一個(gè)問題,解決方法如下:
步驟一:先修改mysql時(shí)區(qū),有三種方法,個(gè)人推薦使用第二種。
方法一:通過mysql命令行模式下動(dòng)態(tài)修改。
set time_zone='+8:00'; ##修改mysql時(shí)區(qū)為北京時(shí)間,即我們所在的東8區(qū)
show variables like '%time_zone%';
select now();
flush privileges;##立即生效
方法二:通過修改my.cnf配置文件來修改時(shí)區(qū)
# vim /etc/my.cnf ##在[mysqld]區(qū)域中加上
default-time_zone = '+8:00'
# /etc/init.d/mysqld restart ##重啟mysql使新時(shí)區(qū)生效
方法三:如果不方便重啟mysql,又想臨時(shí)解決時(shí)區(qū)問題,可以通過php或其他語言在初始化mysql時(shí)初始化mysql時(shí)區(qū)
這里,以php為例,在mysql_connect()下使用:
mysql_query("SET time_zone = '+8:00'")
這樣可以在保證你不重啟的情況下改變時(shí)區(qū)。但是mysql的某些系統(tǒng)函數(shù)還是不能用如:now()。
步驟二:以root用戶身份進(jìn)入數(shù)據(jù)庫,做如下操作:
grant all on mysql.* to 'cacti'@'127.0.0.1' identified by 'cacti';
flush privileges;##立即生效
下面刷新網(wǎng)頁,截圖如下:
問題解決方法:
這里我們直接輸入:
mysql_tzinfo_to_sql /usr/share/zoneinfo
即可!
到這里我們就可以點(diǎn)擊cacti界面左下角“next”按鈕了!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。