監控利器--Cacti

一、cacti概述

   1.1 cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,然後用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此,snmprrdtoolcacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。

   1.2 Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ipsnmp團體名、端口號、模板信息等變量。

   1.3 snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(RoundRobin Archive),它能夠存儲的數據筆數在創建時就已經定義。

   1.4 LAMP: Linux + Apache + Mysql + PHP ,另此Cacti 版本號爲0.8.8H只能用於文檔centos6PHP 5.6 Mysql 5.6,高於以上版本會報錯;

   1.5 修改/etc/crontab配置文件,增加紅框內的內容重要:wKiom1nE1vHTQWnLAABv7uoysvs343.png

二、安裝rrdtool

   2.1 rpm-ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

   2.2 yum install rrdtool -y


三、安裝配置net-snmp

   3.1 安裝net-snmp

       yum install net-snmp net-snmp-libs net-snmp-utils

   3.2 配置net-snmp,在/etc/snmp/snmpd.conf中修改:

       view systemview included  .1.3.6.1.2.1.1爲:view  systemview  included  .1.3.6.1.2.1

   3.3 測試net-snmp

       service snmpd start

       snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1.0

       SNMPv2-MIB::sysDescr.0 = STRING: Linux cronos 2.4.28 #2 SMP ven jan 1414:12:01 CET 2005 i686


四、安裝LAMP

yum install httpd php php-mysql php-snmp php-xml php-gd mysqlmysql-server


五、安裝cacti

5.1 cd /home

    wget http://www.cacti.net/downloads/cacti-0.8.8h.tar.gz

    tar xzf cacti-0.8.8h.tar.gz

    mv cacti-0.8.8h /var/www/html/cacti

      cd /var/www/html/cacti

  5.2 創建數據庫,數據庫名稱可根據個人愛好去定義;

      mysqladmin--user=root -p create cacti

      或是進入mysql後臺創建數據庫,如下圖:

      wKiom1nE2BKRyYptAAAGGd4YNF4086.png

  5.3 導入數據庫,此需要mysql-uroot -p cacti < cacti.sql

  5.4 創建數據庫用戶,注,我個人比較懶mysql裏設定的全是空密碼,在生產環境裏必須設定密碼以保證數庫的安全;另外在生產環境需要設定獨立的數據庫用戶名,不要使用root;

    shell> mysql -u root -p      

    mysql> GRANT ALL ON cacti.* TO root@localhost ;

    mysql> flush privileges;

   5.5 配置include/config.php

    $database_type = "mysql";

    $database_default = "cacti";

    $database_hostname = "localhost";

    $database_username = "root";

    $database_password = "";

   5.6 設置目錄權限

      chown -R apache rra/ log/

   5.7 配置計劃任務

       echo"*/5 * * * * cactiuser php /var/www/html/cacti/poller.php > /dev/null2>&1">>/etc/crontab

       servicecrond restart

       servicehttpd restart

   5.8 完成cacti的安裝

       在瀏覽器中輸入:http://XX.XX.XX.XX/cacti/

    默認用戶名:admin 密碼:admin

       更改密碼

    設置cacti用到的命令路徑

       wKiom1nE25bQcKu5AAF3n25OEDw818.jpg

-------------------------------------------------------------------------------------

注:至此cacti設定完成,只需要交換機設定相關的SNMP服務,Cacti就可以採集到相關的數據。因本文的重點不是數據採集,故對數據如何採集不作說明;

-------------------------------------------------------------------------------------

六、Plugins管理

   Plugins存放位置/var/www/html/cacti/plugins -->只做經常用到的Plugin說明以及安裝使用

  • Configstore:用於管理交換機防火牆的configure的備份管理。這插件可以幫助對所有設備進行分類批量進行備份。

  • Weathermap :天氣圖就不用說了,這是我感覺對網絡拓撲圖監控最爲強大的一個插件,商業軟件有些功能不能解決的Weathermap都可以做到,比如你可以一張圖上圖示幾個AP接的終端用戶數;你可以一張拓撲圖上顯示你的網絡架構的流量、各設備的CPU、內存等信息;你可以一張圖上顯示一個機房所有服務器設備運行的網卡信息、I/0信息等;

  • Syslog用於收集所有網絡設備的Log;查看網絡設備日誌對於網工來說很正常的一件事情,但當你對面上千臺網絡設備時,你如分析海量的設備信息?對,syslog可以幫助你解你的煩惱,它可能快速收集所有設備信息,再根據你編寫的Alert分類,你就可以從分析日誌繁重的工作中分離出來;

  • Thold用於設定各類的閥值,比如你的設備被***了CPU跑到100%,你是如何去發現以及解決問題?thold可以幫助你解決此類問題; 

wKiom1nE4Z2AOyjhAACLskPhBX0141.png 

七、Plugins:  Configstore使用 

   7.1 Linux上安裝tftp:  需要安裝xinetdtftptftp-server3軟件

  • 如果能上網,通過yum安裝:

    sudo yum install xinetd

    sudo yum install tftp

    sudo yum install tptp-server

  • 如果不能上網,可以直接安裝提供的rpm包:

    sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm

    sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm

    sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm

   7.2 配置tftp服務器,修改/etc/xinetd.d/tftp文件

     disable=yes 改爲  disable=no

     server_args=-s /var/lib/tftpboot  改爲  server_args=-s /opt/backups  -c

   wKioL1nE54DwLSoDAABtPheRAxY667.png 

   7.3 檢查tftp

  • 修改/etc/sysconfig/selinux文件 :SELINUX=disabled   (系統默認是enforcing)要改成disabled

  • chmod 777 /opt/backups  修改/opt/backups文件夾的權限 

  • 啓動  service xinetd restart

  • o查看tftp服務是否開啓:netstat -a | grep tftp 顯示結果爲  udp    0   0 *:tftp     *:*  表示服務已經開啓,tftp配置成功

   wKiom1nE6rKz3NZRAAANIrjPy9k279.png

 7.4 Configstore設定

  • 設定各類別的Accounts以管理不同設備的權限 wKioL1nFBhPxak9NAAG2rP7qcdA453.png

  • 添加交換機至設備組並設定備份時間,可分日/周/月三種,必須設定DeviceType以及認證組別否則不能備份

    wKiom1nFB8bB8wjXAAI9eVibad0777.png

  • 下圖爲已經已經進行備份完成的設備

    wKioL1nFCSrjHXCpAALT7dKjNC0287.png

  • configstore下載 https://forums.cacti.net/viewtopic.php?f=19&t=39573&hilit=configstore

八、Plugins:  syslog使用 

  8.1 安裝syslog-ng

      rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

             yum install -y syslog-ng

 8.2 配置syslog-ng  

      vi /etc/syslog-ng/syslog-ng.conf,在此配置文件最後加上如下:

# Remote logging

        source s_remote {

        tcp(ip(XXX.XXX.XXX.XXX) port(514)); [備註:此處爲本機的IP]

        udp(ip(XXX.XXX.XXX.XXX) port(514));

        };

      destination d_separatedbyhosts {

         file("/var/log/syslog-ng/$HOST/messages" owner("root") group("root") perm(0640) dir_perm(0750) create_dirs(yes));

     };

    log { source(s_remote); destination(d_separatedbyhosts); };

    destination d_mysql {

    program("mysql  -u root syslog" [備註:syslog爲收集設備日誌數據庫]

    template("INSERT INTO syslog_incoming (host, facility, priority, date, time, message, status)

    VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$YEAR-$MONTH-$DAY', '$HOUR:$MIN:$SEC', '$MSG', '0' );\n")

    template-escape(yes));

    };

    log {source(s_remote);destination(d_mysql);};


  8.3. 安裝syslog插件,此syslog已經安裝,此不作說明並作如下配置:

  • 創建syslog 數據庫 

    mysql -uroot -p

    create database syslog;

    GRANT ALL ON syslog.* TO root@localhost ;[備註:在生產環境中要設定數據庫的密碼] 

  • 進入cacti的syslog插件目錄執行下面命令

      mysql -uroot -p syslog < /var/www/html/cacti/plugins/syslog/syslog.sql  [導入相關數據表]

  •  vi /var/www/html/cacti/plugins/syslog/config.php 內容如下:

    wKioL1nFDKrybnkAAABCS_0i_HY714.png

  • 修改/etc/crontab,增加如下內容

    */1 * * * * root php /var/www/html/cacti/plugins/syslog/syslog_process.php

    wKiom1nFDYDDpyBiAAAOGKQ5W2w735.png

  • 重啓以下服務

      /etc/init.d/syslog-ng restart

      /etc/init.d/mysqld restart

  • 交機或是路由器增加log日誌指向服務器

    logging source-interface Loopback0

    logging host 10.133.83.194

    logging on

  • 完成後系統收集的log,後面就可以根據收集到的數據進行分類alert消息

    wKiom1nFDk-B6Oq_AALHM0D6710522.png

九、Plugins:  weathermap使用 

   weathermap監控拓撲圖如下:

   wKioL1nFFf7zTffVAAKvp2mnBck803.png

   下圖監控狀態實例說明:

   347f40fbd84b6b2da13221dc398646b4.png

    3123928e3c61e205d33e81acb91df585.png--------->     f893d2127eaf6141efadaf57f7322d5b.png



    6e4de22912c2811e580fd776cd6ee2d4.png --->7f64968354449d672bc20cf4a7496620.png



     b7933284e264e6603097087f1cda27cc.png------->9d22c21fa25f50356cc3cba272f86e22.png


     IFSTATUS的配置如下:ef89f2aeef129033d6e04e8ac179b2da.png



   

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