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