Cacti安裝環境:CentOS6.0 (64位)系統,採用最小安裝
Cacti安裝具體步驟說明
一、軟件準備工作
1、 批量下載並安裝軟件包(需要可以訪問外網,且在/etc/resolv.conf設置nameserver):
yum -y install httpd mysql-server php php-mysql gd net-snmp php-snmp net-snmp-utils net-snmp-devel mysql-devel openssl-devel
2、 更新yum
yum clean all
yum list (可能會不成功,需要多嘗試幾次,這取決於你的網絡和歐美服務器之間的穩定性)
3、 安裝rrdtool
yum install rrdtool
4、 設置相關服務開機自動啓動:
chkconfig httpd on
chkconfig mysqld on
chkconfig snmpd on
使用chkconfig –list 查看當前已開啓開機啓動的服務列表(2、3、4、5爲on即可)
二、MySQL數據庫設置
1、啓動mysql服務:# servicemysqld start
2、爲root用戶設置密碼,並更改登錄權限,默認密碼爲空
# mysql -uroot -p 提示輸入密碼,初次安裝直接回車即可
mysql> use mysql
mysql> update user set password=PASSWORD('szfounder') where user='root';
mysql> grant all privileges on *.* to root@localhost identified by 'szfounder' with grant option;
mysql> flush privileges;
3、創建數據庫cacti和cacti用戶,併爲其設置權限
mysql> create database cacti default character set utf8; //數據庫字符集設置utf8,否則亂碼
mysql> grant all privileges on cacti.* to cacti@localhost identified by 'szfounder' with grant option;
mysql> flush privileges;
三、下載並安裝Cacti
1、 獲取最新版本的cacti:wget http://www.cacti.net/downloads/cacti-0.8.8h.tar.gz
如果提示沒有wget命令,使用sudo yum -y install wget進行下載
2、 安裝下載的文件:tarzxvf cacti-0.8.8h.tar.gz
3、 將安裝目錄移動並重命名爲cacti:mvcacti-0.8.8h /var/www/cacti
4、 修改配置文件:vi/var/www/cacti/include/config.php中的幾個參數如下:
5、 創建並且編輯文件:vi/etc/httpd/conf.d/cacti.conf
文件內容如下:
Alias/cacti /var/www/cacti
<Directory/var/www/cacti>
AllowOverride None
Order Deny,Allow
Deny from all
Allow from 219.232.0.0/16
Allow from 10.0.0.0/8
Allow from 172.16.0.0/11
Allow from ::1
Options Indexes Includes FollowSymLinks
</Directory>
# Thesedirectories do not require access over HTTP
#
<Directory/var/www/cacti/cli>
Order Deny,Allow
Deny from All
Allow from None
</Directory>
6、 導入數據庫並啓動服務
mysql -ucacti -pszfounder cacti </var/www/cacti/cacti.sql
service mysqld restart
service httpd restart
service snmpd restart
在cent OS7.0中,使用的數據爲mariadb,需要重啓使用命令:
systemctl restart mariadb.service
7、 創建新用戶cacti,並添加訪問指定目錄的權限
useradd cacti
chown -R cacti /var/www/cacti/rra/ /var/www/cacti/log/
chown -R root.root *
8、 修改文件:vi/var/www/cacti/include/global.php 修改內容如下:
9、 在防火牆中啓用80端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
四、在瀏覽器輸入http://ip/cacti進入安裝界面
如果進入不了請嘗試以下步驟:
1、 setenforce 0 (手動關閉selinux,如果可以,則進入文件vi /etc/selinux/config 修改SELINUX=disabled防止重啓自動啓動)
2、 查看cacti.conf文件中的allow是否生效
3、 檢查防火牆設置,centos7.0中在防火牆開放TCP 80端口的命令是:
firewall-cmd --zone=public --add-port=80/tcp --permanent
然後重啓防火牆:systemctl restart firewalld.service
進入後,點擊下一步,在登錄界面輸入默認賬號和密碼分別是admin,admin然後修改密碼登陸即可!
五、添加相關插件
1、 下載並安裝spine高效輪詢器
需要和下載的cacti版本匹配,使用
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8h.tar.gz
tar -zxvf cacti-spine-0.8.8h.tar.gz
cd cacti-spine-0.8.8h
./configure
make && make install
以上步驟如提示錯誤:未發現gcc,則使用命令yum install gcc 然後重複倒數兩步即可;如果提示:configure: error: Cannot find MySQL headers,則需要yum installmysql-devel
2、 配置spine
1 cd/usr/local/spine/etc/
2 mvspine.conf.dist /etc/spine.conf
3 vispine.conf
填寫數據庫信息,即Cacti數據庫。
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass szfounder
DB_Port 3306
3、 在web界面設置spine對應的文件路徑爲 /usr/local/spine/bin/spine
4、 在輪詢中,選擇輪詢器爲spine
六、在系統中加入輪詢任務計劃:
crontab –e
輸入:*/1 * * * * /usr/bin/php /var/www/cacti/poller.php 2>&1>/dev/null
1分鐘輪序1次!
七、下載常用插件:
可以到官網http://docs.cacti.net/plugins 找到對應鏈接進行下載並安裝,安裝完畢之後
將對應的插件移動到/cacti/plugins/目錄下即可!要特別說明的是weathermap插件的下載地址爲:http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
注意:要安裝syslog和thold插件需要安裝settings插件
tar xvfzsettings-v0.71-1.tgz
mv settings/var/www/cacti/plugins/settings
在系統中執行yum install -yunzip zip 安裝解壓zip類型的文件。
完成後效果圖如下:
將系統的spine修改爲1分鐘輪詢一次,包括RRA的各種參數,data template參數,步進。
查看crond計劃運行情況:
tail -fn 100 /var/log/cron
另外修改文件讀寫權限:chmod 777 –R +目錄
修改目錄及目錄文件下的擁有者: chown –R root +目錄
修改目錄及目錄文件下的所有組: chgrp –R root +目錄
查看linux系統使用空間:
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 250G 1.6G 249G 1% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.4M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 1014M 144M 871M 15% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
查看某個目錄佔用的空間大小:
[root@localhost ~]# du -sh /var/www/cacti
7.8M /var/www/cacti
擴容root空間大小:
把/home內容備份,然後將/home文件系統所在的邏輯卷刪除,擴大/root文件系統,新建/home:
tar cvf /tmp/home.tar /home #備份/home
umount /home #卸載/home,如果無法卸載,先終止使用/home文件系統的進程
lvremove /dev/mapper/cl-home #刪除/cl-home所在的lv
lvextend -L +50G /dev/mapper/cl-root #擴展/cl-root所在的lv,增加50G
xfs_growfs /dev/mapper/cl-root #擴展/root文件系統
lvcreate -L 100G -n /dev/mapper/cl-home #重新創建home lv
mkfs.xfs /dev/mapper/cl-home #創建文件系統
mount /dev/mapper/cl-home #掛載
然後使用df –h查看掛載情況
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-root 250G 1.6G 249G 1% /
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 0 7.8G 0% /dev/shm
tmpfs 7.8G 8.4M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 1014M 144M 871M 15% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0
/dev/mapper/cl-home 100G 33M 100G 1% /home
在centos7版本里,使某個服務開機啓動命令爲:systemctl enable mysqld.service
運行某個服務:systemctl start mysqld.service以此類推
常見問題解析:
第一大類:無法進入cacti的web安裝界面
1、 提示無權限:請嘗試關閉SELinux
2、 提示爲空白頁HTTP500,嘗試重新安裝php: yum install php* --skip-broken -y
第二大類:不出圖
1、 仙人掌始終無法畫圖,且使用rrdtool查看發現找不到文件。
解決辦法:首先檢查目錄權限、所有者、所有組是否正常,使用ll+目錄來查看具體情況;檢查系統時區設置是否正常,這個在php.ini中查找,沒有設置的話要設置爲PRC(即中國),不知道具體目錄使用
find / -name php.ini 來在全局模式查找該文件,然後使用vi進行編輯即可。
通過命令tail -fn100 cacti.log 查看日誌記錄,確認spine是否按照計劃執行!
2、 Weathermap無法畫圖,提示未安裝 GD library,使用命令:yum -y install php-gd 安裝完畢後,重啓httpd服務即可。
3、 使用tail -fn100 /var/www/cacti/log/cacti.log 查看具體日誌來分析!
4、 檢查系統時間:
查詢中國時區的全稱 timedatectllist-timezones | grep Shanghai 會得到:Asia/Shanghai
設置時區:timedatectlset-timezone Asia/Shanghai
設置時間:date -s"2018-04-10 11:06:50"
寫入CMOS: clock-w
查看硬件時間:hwclock --show
5、
第三大類:weathermap無法添加相關configuration file:
進入cacti數據庫查看是否存在這些表SHOW TABLES FROM cacti;,沒有則創建:
CREATE TABLE weathermap_maps (
id int(11) NOT NULL auto_increment,
sortorder int(11) NOT NULL default 0,
group_id int(11) NOT NULL default 1,
active set('on','off') NOT NULL default 'on',
configfile text NOT NULL,
imagefile text NOT NULL,
htmlfile text NOT NULL,
titlecache text NOT NULL,
filehash varchar (40) NOT NULL default '',
warncount int(11) NOT NULL default 0,
debug set('on','off','once')NOT NULL default 'off',
runtime double NOT NULL default0,
lastrun datetime,
config text NOT NULL default '',
thumb_width int(11) NOT NULL default 0,
thumb_height int(11) NOT NULL default 0,
schedule varchar(32) NOT NULL default '*',
archiving set('on','off') NOT NULL default 'off',
PRIMARY KEY (id)
) ENGINE=MyISAM;
CREATE TABLE weathermap_auth (
userid mediumint(9) NOTNULL default '0',
mapid int(11) NOT NULLdefault '0'
) ENGINE=MyISAM;
CREATE TABLE weathermap_groups (
`id` INT(11) NOTNULL auto_increment,
`name` VARCHAR( 128 ) NOT NULLdefault '',
`sortorder`INT(11) NOT NULL default 0,
PRIMARY KEY (id)
) ENGINE=MyISAM;
INSERT INTO weathermap_groups(id,name,sortorder) VALUES (1,'Weathermaps',1);
CREATE TABLE IF NOT EXISTS weathermap_data(id int(11) NOT NULL auto_increment,
rrdfile varchar(255) NOT NULL,data_source_name varchar(19) NOT NULL,
last_time int(11) NOTNULL,last_value varchar(255) NOT NULL,
last_calc varchar(255) NOT NULL, sequence int(11) NOT NULL,local_data_id int(11) NOT NULL DEFAULT 0, PRIMARY KEY (id), KEY rrdfile (rrdfile),
KEY local_data_id(local_data_id), KEY data_source_name (data_source_name) ) ENGINE=MyISAM;
後期的維護:
後期cacti.log文件會因不斷寫入日誌而變得非常佔用空間,使用echo “”> /var/www/cacti/log/cacti.log命令,將文件內容清空,保證磁盤空間利用率。