cacti安裝搭建

cacti是用php語言實現的一個軟件,使用snmp服務獲取數據,nnmp關係着數據的收集;使用rrdtool儲存和更新數據;當用戶須要查看數據的時候用rrdtool生成圖表mysql配合php程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ip、端口號等變量。php

cacti監控結構圖html

C/S模式,採集監測數據mysql

B/S 模式,管理監測平臺web

mysql 保存模版、配置等信息 sql

rrdtool 數據記錄、圖表繪製   繪圖工具數據庫

net-snmp採集各類監測數據  簡單網絡管理協議(監控與被監控上都要有)apache

 

1、部署監控服務器運行環境 (LAMP平臺)vim

1.1運行環境安全

#yum  -y   install  httpd   php   mariadb-server   mariadb php-mysql服務器

#systemctl  restart httpd ;systemctl  enable httpd

#systemctl  start mariadb ;systemctl  enable mariadb

# service httpd start;chkconfig httpd on   

 

1.2測試運行環境(測php可否連上mysql

vim /var/www/html/linkdb.php

<?php

$a=mysql_connect("localhost","chen","123456");

if($a){echo "ok";}else{echo  "err";}

?>

# elinks  --dump http://localhost/linkdb.php

 

、部署Cacti監控服務

2.1安裝cacti

RRDTool  繪圖工具

snmp  簡單網絡管理協議

# yum list | grep net-snmp

# yum -y install net-snmp net-snmp-devel   net-snmp-utils  rrdtool

#tar -zxvf cacti-0.8.8h.tar.gz   -C  /var/www/html/

#cd   /var/www/html/

# mv cacti-0.8.8h/ cacti

# chown  -R  apache:apache  cacti

 

2.2創建數據庫表

#mysql

mysql> create  database  cactidb  default character  set  utf8; 

mysql> grant all  on  cactidb.*  to   chen@"localhost" identified by "123456";

#mysql -uchen -p123456 cactidb < /var/www/html/cacti/cacti.sql

#mysql -uchen -p123456 cactidb  -e 「 show tables;」

 

2.3 調整配置文件

# vim  /var/www/html/cacti/include/config.php

   $database_type = "mysql";

   $database_default = "cactidb";

   $database_hostname = "localhost";

   $database_username = "chen";

   $database_password = "123456";

 

、登陸web頁面完成初始化安裝

 

3.1  firefox  http://192.168.4.13/cacti

用戶名 admin

初始密碼 admin

(首次登陸強制修改登陸密碼)

 

使用Cacti

a 查看已經監控的主機   Devices

b 查看已有的監控模版   Graph Trees

c 查看對已監控主機建立的監控圖片

 

3.2 安裝高速採集器

安裝cacti-spine

#rpm -q  mariadb-devel  gcc  gcc-++

#tar -zxvf  cacti-spine-0.8.8h.tar.gz

#cd cacti-spine-0.8.8h/

#./configure --with-mysql

#make   &&  make install

# ls /usr/local/spine/

 

修改配置

#cp /usr/local/spine/bin/spine  /usr/bin/

#cp /usr/local/spine/etc/spine.conf.dist   /etc/spine.conf

#vim  /etc/spine.conf

DB_Host         localhost

  DB_Database cactidb

DB_User         chen

DB_Pass         123456

DB_Port         3306

 

登陸管理頁面設置採集數據頻率(poller)和採集器程序(path)

# firefox  http://192.168.4.13/cacti

# ls /usr/local/spine/bin/spine

Settings--Paths--Alternate Poller Path-/usr/local/spine/bin/spine--Poller

 

4、  配置

4.1 監控本機

a 運行snmpd服務

#rpm  -q  net-snmp   net-snmp-utils  net-snmp-devel

# vim /etc/snmp/snmpd.conf

41行 com2sec notConfigUser  127.0.0.1       public   ////社區名稱映射爲安全名稱

62行 access  notConfigGroup ""      any       noauth    exact  all  none  none   

//賦予notConfigGroup組對all視圖的訪問權限

85行 view all    included  .1             80    //定義all視圖及相關權限,」爲本機  

 

# service snmpd  start  ;  chkconfig  snmpd on ; systemctl is-enabled  snmpd

經過netstat命令能夠查看該端口的監聽狀態,設置防火牆規則容許這兩個端口的入站數據。

# netstat  -untlap  | grep  snmpd   161  199

[root@router ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT

[root@router ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT

[root@router ~]# service iptables save

 

b 登陸管理頁面添加監控本機

1 添加監控新主機(名稱  ip地址  監控模版  監控項目)Devices   

2 選擇監控項    SNMP - Interface Statistics

建立監控圖像   Create Graphs for this Host

建立圖像樹(文件夾)並添加圖片  localhost-tree

   把監控本機的圖像 添加到圖像樹Graph Trees

執行收集數據的腳本 (php)

   編寫計劃任務

# vim  /etc/php.ini

878 date.timezone =  Asia/Shanghai

# php   /var/www/html/cacti/poller.php

# ls /var/www/html/cacti/rra

# crontab  -e

*/1  *  *  *  *  php   /var/www/html/cacti/poller.php

# service  crond status

# crontab  -l

6 查看監控信息

# ll  -sh /var/www/html/cacti/rra

MariaDB [(none)]> use cactidb;

MariaDB [cactidb]> select * from  host \G;

 

 

4.2 監控遠端主機 192.168.4.12

7.2.1 配置遠端主機

a 運行snmpd服務

# sed -i '41s/default/192.168.4.13/' /etc/snmp/snmpd.conf

# sed -i '62s/systemview/all/' /etc/snmp/snmpd.conf

# sed -i '85s/^#//' /etc/snmp/snmpd.conf

#service snmpd restart ; systemctl enable  snmpd

# netstat  -utnalp  | grep  snmpd

7.2.2 配置監控服務器

1 添加監控新主機(名稱  ip地址  監控模版  監控項目)

2 建立圖像

3 建立圖像樹   web12-tree

4 把監控本機的圖像 添加到圖像樹

6 查看監控信息

+++++++++++++++++++++++++++++

7.3 監控報警

插件文件安裝目錄 /var/www/html/cacti/plugins

a 安裝插件 並激活插件(Plugin Management)

#tar -zxvf monitor-v1.3-1.tgz

#mv monitor  /var/www/html/cacti/plugins/

#tar -zxvf settings-v0.71-1.tgz

#mv settings  /var/www/html/cacti/plugins/

#tar -zxvf thold-v0.5.0.tgz

#mv thold /var/www/html/cacti/plugins/

b  配置插件實現監控報警

要求:監控本機登陸的用戶數 作監控報警     >1  報警  >2報錯 ,達到監控閥值時給本機的cacti@localhost郵箱發郵件。

 

1、在本機準備郵件服務並添加郵箱賬號

#rpm  -q  postfix   ||  yum  -y  install  postfix

#service  postfix status

#useradd  cactiuser

# mail -s "aaa" cactiuser < /etc/hosts

# mail  -u    cactiuser

 

2 配置監控報警

a 建立郵箱列表Notification Lists通知列表;sendmail ; big 1 war  big 2 err ;root@localhost, cactiuser@localhost

b 添加監控報警Thresholds

c  指定郵件服務器

d 查看監控報警項是否被觸發  thold  Triggered**yes

e 查看是否收到報警郵件

 

 

 

[root@cacti ~]# cd /var/www/html/cacti

[root@cacti cacti]# patch \

> -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff  //打補丁

 

 

 

 

 

 

 

 

 

案例1:部署Cacti監控平臺 

案例2:構建Cacti監測系統 

1 案例1:部署Cacti監控平臺

1.1 問題

本案例要求部署一臺Cacti監控主機,並安裝相關監控組件,爲進一步執行具體的監控任務作準備:

安裝net-snmpnet-snmp-utils

安裝LAMP及相關依賴軟件包

部署Cacti監控平臺

初始化監控頁面

1.2 方案

使用1臺RHEL7虛擬機,安裝部署LAMP環境、Cacti及相關的snmp組件包,配置數據庫並對Cacti監控平臺進行初始化操做。

1.3 步驟

實現此案例須要按照以下步驟進行。

步驟一:準備基礎軟件包

1)安裝LAMP環境

Cacti監控須要經過Web頁面展現出來,而且還須要使用MySQL來存儲一些變量數據,所以須要先爲Cacti準備基礎LAMP環境。由於Cacti監控其餘主機數據時使用的是snmp協議,因此還須要安裝net-snmp和net-snmp-utils軟件包。

[root@svr5 ~]# yum -y install httpd php php-mysql php-ldap \

>php-xml mysql mysql-server net-snmp net-snmp-utils  lm_sensors

[root@svr5 ~]# service httpd start;chkconfig httpd on        //啓動httpd服務

[root@svr5 ~]# service mysqld start;chkconfig mysqld on        //啓動mysqld服務

[root@svr5 ~]# mysqladmin -u root password '111'            //設置數據庫管理員密碼

2)源碼安裝RRDTool

Cacti監控的數據存儲和繪圖功能主要依賴於該軟件,若是沒有該軟件則Cacti沒法存儲監控數據並繪製出監控圖像。

[root@svr5 ~]# tar zxf rrdtool-1.4.5.tar.gz

[root@svr5 ~]# cd rrdtool-1.4.5

[root@svr5 rrdtool-1.4.5]# ./configure --prefix=/usr/local

[root@svr5 rrdtool-1.4.5]# make && make install

步驟二:部署Cacti套件

1)解壓部署Cacti軟件包

Cacti是由PHP開發的Web頁面套件,PHP代碼經過使用snmp協議來得到監控數據,並代用RRDTool存儲數據和繪製監控圖像,因此在安裝完成基礎LAMP環境後,首先須要作的就是將Cacti軟件包解壓放置在Web服務器的網頁根路徑下。

[root@svr5 ~]# tar zxf cacti-0.8.7g.tar.gz

[root@svr5 ~]# mv cacti-0.8.7g/ /var/www/html/cacti

[root@svr5 ~]# cd /var/www/html/cacti

[root@svr5 cacti]# useradd cactiuser

[root@svr5 cacti]# chown -R root.root ./

[root@svr5 cacti]# chown -R cactiuser.cactiuser rra/  log/

2)建立數據庫並初始化

Cacti須要使用MySQL來存儲部分動態數據,這裏還須要給Cacti建立一個數據庫,並使用Cacti提早準備好的數據文件,對數據庫進行初始化。

[root@svr5 cacti]# mysql -u root -p

Enter password:                                        //密碼爲前面初始化的密碼

mysql> CREATE DATABASE cactidb DEFAULT CHARACTER SET utf8;  //建立數據庫

mysql> GRANT all ON cactidb.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'pwd123';    //建立帳戶並賦權

mysql> QUIT

[root@svr5 cacti]# mysql -u cactiuser -p cactidb < cacti.sql  //初始化數據庫

3)修改Cacti的PHP源碼文件,指定數據庫名稱及相關帳戶信息。

[root@svr5 ~]# cd /var/www/html/cacti

[root@svr5 cacti]# vim include/config.php

<?php

$database_default = "cactidb";                     //設置數據庫名稱

$database_username = "cactiuser";                     //設置帳戶名稱

$database_password = "pwd123";                     //設置密碼

……

?>

[root@localhost cacti]# vi lib/functions.php

<?php

setlocale(LC_CTYPE,"zh_CN.UTF-8");                    //定義語言

……

4)調整http配置文件,從新定義根路徑

httpd配置文件使用DocumentRoot "/var/www/html"語句來定義網站頁面根路徑,默認路徑爲/var/www/html/,這裏須要修改成/var/www/html/cacti。

[root@svr5 ~]# vim /etc/httpd/conf/httpd.conf

.. ..

DocumentRoot "/var/www/html/cacti"

.. ..

5)訪問Cacti監控頁面,並進行初始化設置

第一次登陸Cacti須要進行一些簡單的初始化操做,主要是設置幾個主要的依賴程序的存儲位置。

2 案例2:構建Cacti監測系統

2.1 問題

沿用練習一,爲監控客戶端主機安裝net-snmp並設置監控權限,並經過調整Cacti服務端配置,實現如下目標:

主機192.168.1.200上搭建Cacti系統

監測網關、網站、郵件三臺Linux服務器

監控被監控端的CPU負載、網絡流量、磁盤空間

發郵件給root@localhost

2.2 方案

準備4臺Linux虛擬機,1臺部署Cacti監控系統,3臺做爲服務器同時也是被監控的對象,拓撲結構如圖-1所示。

 

-1

實驗沿用練習一的成果,cacti監控平臺已經部署完畢,目前須要給全部被監控節點安裝net-snmp,並經過修改配置文件設置監控權限。

2.3 步驟

實現此案例須要按照以下步驟進行。

步驟一:被監控主機設置

注意:因爲全部被監控主機均容許cacti監控服務器從本機提取監控數據,所以全部被監控主機都須要作以下操做,下面以網關服務器爲例。

1)安裝net-snmp軟件

Cacti監控其餘主機是經過簡單網絡管理協議(SNMP)收集被監控端數據信息,所以被監控端服務器都須要安裝net-snmp以及lm_sensors。lm_sensors軟件能夠幫助咱們來監控硬件信息如CPU的工做電壓等數據。

[root@router ~]# yum -y install net-snmp lm_sensors

2)修改snmp配置文件

SNMP配置文件主要包括四個部份內容須要修改,第一步映射通信名稱到安全用戶名稱,第二步將用戶加入到組中,第三步爲組賦予訪問視圖 的權限,第四步定義all視圖。主配置文件設置完成後重啓服務便可經過客戶端訪問該服務器得到系統信息,SNMP使用的端口號爲UDP 161端口以及TCP 199端口。

[root@router ~]# vim /etc/snmp/snmpd.conf

……

com2sec notConfigUser  192.168.1.200    public    //社區名稱映射爲安全名稱

group   notConfigGroup v1           notConfigUser    //將帳戶加入組

group   notConfigGroup v2c           notConfigUser

access  notConfigGroup ""  any   noauth   exact  all none none  //賦予notConfigGroup組對all視圖的訪問權限

view all    included  .1        80                //定義all視圖及相關權限

……

[root@router ~]# service snmpd start;chkconfig snmpd on

3)查看SNMP服務運行狀態,設置防火牆

默認SNMP監聽udp的161端口和tcp的199端口,經過netstat命令能夠查看該端口的監聽狀態,設置防火牆規則容許這兩個端口的入站數據。

[root@router ~]# netstat -anpu | grep "snmpd"

udp       0      0  0.0.0.0:161      0.0.0.0:*        16452/snmpd

[root@router ~]# iptables -I INPUT -p udp --dport 161 -j ACCEPT

[root@router ~]# iptables -I INPUT -p tcp --dport 199 -j ACCEPT

[root@router ~]# service iptables save

步驟二:設置Cacti監控服務器

注意:本練習案例要求將3臺被監控端主機均加入到Cacti系統,這裏以Web服務器爲例添加監控對象並生成監控圖像。其它監控節點作相關操做便可。

1)添加監控主機

登陸Web控制檯(http://192.168.1.200),默認的管理帳號、密碼爲 admin,首次登陸時要求強制重設密碼。添加被監控端主機時須要設置目標地址,並正確選擇主機模板、設置社區名稱。

登陸Web控制檯後,進入Devices菜單後點擊Add添加被監控主機,如圖-2所示。此時系統會要求填寫相關表單信息,須要填寫的 項目參數描述見表-1,填寫完所需項目表單後點擊右下角的Create便可建立新的設備主機,同時在下方會出現圖形模版以及數據查詢模版,管理員能夠根據 實際須要繼續添加須要監控的參數對象,肯定後點擊Save保存全部設置,效果如圖-3所示。

/

-2

-1 項目參數描述表

 

 

-3

2)建立監控圖像

經過以上操做,設備主機以及須要監控的性能指標已經建立完成,下面須要經過New Graphs菜單爲Web服務器建立圖形。進入新建圖形界面後在Host列表中選擇上一步添加的設備主機,並在須要監控的性能模版後點選對勾,設置完成後 選擇Create爲被監控設備添加圖形,如圖-4所示。

 

-4

3)建立監控圖像樹

Cacti監控系統最終經過樹狀列表來查看被監控主機性能圖形,咱們能夠建立多棵圖形樹,在每棵圖形樹下能夠插入多個設備主機的圖形信 息。Cacti初始狀態有一個名爲Default的圖形樹,本案例中咱們將建立一棵新的圖形樹,並將被監控端主機的圖形添加進來。經過點擊Graph Trees菜單打開圖形樹的設置界面。選擇Add能夠添加新的圖形樹,如圖-5所示,提示輸入Name(圖形樹名稱)後點擊Create(建立),本案例 設置名稱爲Web,此時在Graph Trees界面中會出現Default與Web兩棵圖形樹。點擊進入Web樹中,選擇Add按鈕添加上一步操做中建立的圖形,如圖-6所示。

 

-5

 

-6

4)監控服務器按期收集被監控端主機信息

Cacti監控服務器須要經過SNMP收集數據信息並最終生成圖形窗口,在Cacti軟件包中已經自帶了這麼一個用於收集數據的PHP腳本,默認Cacti系統須要每五分鐘收集一次數據,管理員能夠經過計劃任務實現每五分鐘執行該腳本,也能夠手動執行該腳本當即同步數據。

5)查看監控頁面效果

最後,經過Cacti平臺的graphs選項卡進入圖形窗口,該窗口將以樹狀顯示,案例中咱們建立了一棵名爲Web的圖形樹,並在Web樹下添加了3臺被監控主機的圖形,最終查看效果如圖-7所示。

[root@cacti ~]# crontab -e

*/5 * * * * /usr/local/php5/bin/php /usr/local/apache2/htdocs/cacti/poller.php

 

-7

步驟三:實現郵件報警機制

1)安裝插件補丁

[root@cacti ~]# tar -xzf cacti-plugin-0.8.7g-PA-v2.9.tar.gz

[root@cacti ~]# mv cacti-plugin-arch /var/www/html/cacti/

[root@cacti ~]# cd /var/www/html/cacti

[root@cacti cacti]# patch \

> -p1 -N < cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.9.diff  //打補丁

[root@cacti cacti-plugin-arch]# pwd

/var/www/html/cacti/cacti-plugin-arch

[root@cacti cacti-plugin-arch]# mysql –u cactiuser –ppwd123 cactidb <pa.sql //插入數據庫

2)修改配置文件,正確設置數據庫信息

[root@cacti cacti]# vim /var/www/html/cacti/include/global.php

$database_type = "mysql"

$database_default = "cactidb"

$database_hostname = "localhost"

$database_username = "cactiuser"

$database_password = "pwd123"

$database_port = "3306"

[root@cacti cacti]# vim /var/www/html/cacti/include/config.php

$url_path = "/cacti/"

3)修改權限

默認admin帳戶並無開啓插件功能,須要點擊"User Management"菜單,在刷新出來的頁面中找到"admin"帳戶,如圖-8所示。點擊進入admin帳戶設置頁面。在"Realm Permissions"選項卡下找到"Plugin Management"並點選對勾賦予帳戶插件管理權限,如圖-9所示。

 

-8

 

-9

4)安裝郵件報警插件

插件便是PHP源代碼文件,解壓後複製到Cacti目錄下便可。

[root@cacti ~]# tar -xzf thold-v0.4.9-3.tgz

[root@cacti ~]# tar -xzf setting-v0.71-1.tgz

[root@cacti ~]# tar –xzf monior-v1.3-1.tgz

[root@cacti ~]# mv monitor settings thold /var/www/html/cacti/plugins

刷新Web控制檯查看Plugin Management頁面內容如圖-10所示。下一步還須要點擊插件名稱左邊的圖標(向下的箭頭)進行安裝。

 

-10

5)啓用Thold插件

首先須要定義報警郵件列表,點擊"Notification Lists",在刷新出的頁面中點擊「Add"按鈕,在彈出的頁面中填寫報警通知的郵件帳戶列表,如圖-11所示。

 

-11

其次,還須要設置發送郵件的服務器,效果如圖-12所示。

 

-12

6)使用Thold監控具體對象參數

監控web服務器的/boot空間,若是該分區的已用空間已達到80M以上,那麼將發送郵件報警。

點擊"Thresholds",在彈出的頁面中選擇"Add"按鈕添加被監控主機及監控圖像,具體報警參數設置如圖-13至圖-15所示。

 

 

-14

 

-15

7)驗證

web服務上向/boot分區寫入較大的文件,使得該分區已用空間超過80%,測試報警是否正確工做。

相關文章
相關標籤/搜索