CentOS6.5搭建Cacti
一、首先要安裝Apache、PHP、MySQL、Net-SNMP和RRDTool,運用yum命令(在線安裝)安裝所有cacti依賴軟件。過程如下:
#yum install mysql mysql-server php-mysql httpd php php-pdo lm_sensors net-snmp php-snmp net-snmp-utils perl-Net-Daemon perl-PlRPC perl-DBI rrdtool perl-rrdtool perl-DBD-MySQL net-snmp-libs
注:yum安裝rrdtool中,由於rrdtool依賴的包比較多,所以請首先增加源,方式如下:
#vi /etc/yum.repos.d/CentOS-Base.repo
文件末尾增加如下鏈接:
[dag]
name=Dag RPM Repository for Red Hat Enterprise Linux
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
enabled=1
(退出vi編輯器命令 :q!(退出不保存), :wq(保存並退出)
#rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
安裝完成以後,可以查看以下httpd和mysqld服務的狀態
#service httpd status
#service mysqld status
二、配置SNMP
#vi /etc/snmp/snmpd.conf
--將下邊這行中的default
com2sec notConfigUser default public
--改爲127.0.0.1
com2sec notConfigUser 127.0.0.1 public (注意:如果以後往cacti裏添加其他設備,只要在被監控的設備上把127.0.0.1改爲cacti服務器的地址就行了,其實這個地址就是cacti服務器地址)
--將下邊這行中的systemview
access notConfigGroup "" any noauth exact systemview none none
--改爲all
access notConfigGroup "" any noauth exact all none none
--將下邊這行的註釋"#"號去掉
#view all included .1 80
--啓動snmpd服務
#service snmpd start (查看服務狀態的命令:service 服務名稱 status,如service snmpd status)
--啓動httpd/mysql服務
#service httpd start
#service mysqld start
查看Apache是否運行正常的方法,瀏覽器輸入127.0.0.1,看是否出現Apache的測試頁面。
設置服務開機自啓的命令:
#chkconfig xxx(需要自啓服務的名稱) on 如下例:
#chkconfig httpd on
可以將httpd、mysqld、snmpd服務設置成開機自啓
三、安裝cacti
1、下載cacti:
#wget http://www.cacti.net/downloads/cacti-0.8.8d.tar.gz
#tar -zvxf cacti-0.8.8d.tar.gz
#mv cacti-0.8.8d /var/www/html/cacti --將其放到/var/www/html目錄下並改名
2、在數據庫中建庫、授權、導入數據庫結構
請記得給數據庫root設置一個密碼,以保護安全。可以使用如下的命令來設置數據庫root的密碼:
#mysqladmin --user=root password somepassword
#mysqladmin --user=root --password reload --爲用戶root設置數據庫密碼
#mysql -u root --使用root身份登陸mysql,如 mysql -u root –p
mysql> create database cacti; --創建一個名爲cacti的數據庫
mysql> grant all privileges on cacti.* to cacti@localhost(Linux用戶主機名) identified by 'cacti'(該用戶登錄數據庫的密碼)with grant option;
例如:mysql> grant all privileges on cacti.* to root@localhost identified by 'root' with grant option; --授權用戶root的(遠程)連接權限
mysql> grant all privileges on cacti.* to [email protected] identified by 'cacti' with grant option;
mysql> grant all on cacti.* to root;
mysql> grant all on cacti.* to root@localhost;
mysql> grant all on cacti.* to cacti;
mysql> grant all on cacti.* to cacti@localhost;
mysql> use cacti; --啓用cacti數據庫
mysql> source /var/www/html/cacti/cacti.sql; --導入數據庫結構
mysql> quit --退出數據庫
退出數據庫後,可以嘗試root是否還可以重新登錄mysql。
--配置cacti以連接數據庫
#vi /var/www/html/cacti/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "root";
$database_password = "剛纔設置的mysql數據庫root的密碼";
$database_port = "3306";
3、添加cacti用戶,否則cacti不能寫入rrd和log目錄,將會無法生成圖片(如果使用root用戶,則可以不用添加,跳過該步驟)
#useradd cacti -d /var/www/html/cacti -s /bin/false
#chown -R cacti /var/www/html/cacti/rra /var/www/html/cacti/log
4、增加入一個計劃任務,使得 cacti 每五分鐘生成一個監控圖表。
#crontab -e
--加入如下內容。注意poller.php的路徑
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
有可能存在crontab命令沒有安裝的情況,具體安裝方法如下:
1. 確認crontab是否安裝:
執行 crontab 命令如果報 command not found,就表明沒有安裝
2. 安裝 crontab
執行 yum install -y vixie-cron
3. 確認是否安裝成功:
執行 crontab -l
4. 看是否設置了開機自動啓動
chkconfig --list crond
5. 啓動crontab
service crond start
--如果暫時未看到圖表,可以手工執行,生成圖表
#php /var/www/html/cacti/poller.php > /dev/null 2>&1
5、到處完成cacti最後的配置,在瀏覽器輸入:http://localhost/cacti,將進入cacti登錄頁面,第一次登錄用戶名和密碼都是admin,它會要求你立即設置新密碼。
6、完成設置後,通過http://localhost/cacti/,添加要監控的服務器、交換機等等。
四、錯誤處理:
1、字體在圖形中顯示不正常的解決方法:下載並安裝cjkuni-fonts中文字體,字體名ukai.ttf;
#wget http://ftp.tw.debian.org/debian/pool/main/t/ttf-arphic-ukai/ttf-arphic-ukai_0.1.20060928.orig.tar.gz
#tar zxvf ttf-arphic-ukai_0.1.20060928.orig.tar.gz
#cd ttf-arphic-ukai-0.1.20060928/
#cp ukai.ttf /usr/share/fonts/ukai.ttf
2、cacti無法顯示監控圖表的解決方法:
1) 查看/var/www/html/cacti/rra目錄是否可寫,設置用戶權限;
2) 系統時間設置問題;
3) RRDTool版本設置是否正確(查看RRDTool版本命令:#rrdtool -v),設置方法:Console -> Cacti Settings -> Genera -> RRDTool Utility Version -> RRDTool 1.3.X;(根據自己安裝的rrdtool選擇,查看rrdtool版本的方法:rrdtool -v)
3、登陸http://localhost/cacti訪問cacti管理頁面,提示如下:
You don't have permission to access /cacti on this server. 原因是SeLinux的設置導致權限問題,因此,我們需要關閉 Selinux |
1).查看SELinux狀態:
# /usr/sbin/sestatus -v // 如果SELinux status參數爲enabled即爲開啓狀態
SELinux status: enabled
# getenforce //也可以用這個命令檢查
2).關閉SELinux:
a、臨時關閉(不用重啓機器):
# setenforce 0 // 設置SELinux 成爲permissive模式 (關閉SELinux)
# setenforce 1 // 設置SELinux 成爲enforcing模式 (開啓SELinux)
b、修改配置文件需要重啓機器:
# vi /etc/selinux/config
將SELINUX=enforcing 改爲SELINUX=disabled
重啓機器即可
附註:
在CentOS下添加和刪除用戶命令:
添加用戶 test:adduser test
修改test密碼:passwd test
刪除用戶test: userdel test
刪除用戶以及用戶目錄: userdel -f test
Service httpd start
Service mysqld start
Service snmpd start
Service crond start
Setenforce 0
Iptables –F
設置IP地址、網關、DNS
約定:
第一塊網卡爲外網
第二塊網卡爲內網(沒有外網的機器也要將內網配置在第二塊網卡上)
說明:CentOS 6.5默認安裝好之後是沒有自動開啓網絡連接的!
輸入賬號root
再輸入安裝過程中設置的密碼,登錄到系統
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #編輯配置文件,添加修改以下內容
BOOTPROTO=static #啓用靜態IP地址
ONBOOT=yes #開啓自動啓用網絡連接
IPADDR=192.168.21.129 #設置IP地址
NETMASK=255.255.255.0 #設置子網掩碼
GATEWAY=192.168.21.2 #設置網關
DNS1=8.8.8.8 #設置主DNS
DNS2=8.8.4.4 #設置備DNS
IPV6INIT=no #禁止IPV6
:wq! #保存退出
service ip6tables stop #停止IPV6服務
chkconfig ip6tables off #禁止IPV6開機啓動
service yum-updatesd stop #關閉系統自動更新
chkconfig yum-updatesd off #禁止開啓啓動
service network restart #重啓網絡連接
ifconfig #查看IP地址
設置主機名
約定:
主機名命名規範:業務.機房.主備.域名
這裏設置主機名爲:bbs.hz.m.osyunwei.com
1、hostname “bbs.hz.m.osyunwei.com”
#設置主機名爲bbs.hz.m.osyunwei.com
2、vi /etc/sysconfig/network #編輯配置文件
HOSTNAME= bbs.hz.m.osyunwei.com
#修改localhost.localdomain爲bbs.hz.m.osyunwei.com
:wq! #保存退出
3、vi /etc/hosts #編輯配置文件
127.0.0.1 bbs.hz.m.osyunwei.com localhost
#修改localhost.localdomain爲bbs.hz.m.osyunwei.com
:wq! #保存退出
shutdown -r now #重啓系統
Linux修改主機名
1.臨時修改主機名
顯示主機名:
spark@master:~$ hostname
master
修改主機名:
spark@master:~$ sudo hostname hadoop
spark@master:~$ hostname
hadoop
PS:以上的修改只是臨時修改,重啓後就恢復原樣了。
2.永久修改主機名
redhat/centos上永久修改
[root@localhost ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
GATEWAY=192.168.10.1
修改network的HOSTNAME項。點前面是主機名,點後面是域名。沒有點就是主機名。
[root@localhost ~]# vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
這個是永久修改,重啓後生效。目前不知道怎麼立即生效。
想立即生效,可以同時採用第一種方法。
還有一個修改是:
/etc/hosts
127.0.0.1 localhost.localdomain
127.0.0.1後面的那一部分。
deb/ubuntu上修改:
hostname
localhost.localdomain
sudo vi /etc/hostname
在/etc/hostname裏面直接填上hostname爲master
spark@localhost:~$ cat /etc/hostname
localhost
重啓後,提示符變成了。
spark@master:~$
如果不想重啓,則用hostname名令。
3. 其他修改方式
用sysctl 修改kernel.hostname
查看:
spark@master:~$ sysctl kernel.hostname
kernel.hostname = master
修改:
spark@master:~$ sudo sysctl kernel.hostname=hadoop
kernel.hostname = hadoop
重新打開shell就變成如下hostname了hadoop
spark@master:~$
centos徹底刪除mysql
yum remove mysql mysql-server mysql-libs compat-mysql51
rm -rf /var/lib/mysql
rm /etc/my.cnf
查看是否還有mysql軟件:
rpm –qa | grep mysql
有的話繼續刪除