基於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/,截圖如下:

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”按鈕了!













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章