cacti的部署(網絡蒐集加自己整理)

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命令,將文件內容清空,保證磁盤空間利用率。




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