监控利器--Cacti
一、cacti概述
? ?1.1 cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,然后用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此,snmp和rrdtool是cacti的關鍵。Snmp關系著數據的收集,rrdtool關系著數據存儲和圖表的生成。
? ?1.2 Mysql配合PHP程序存儲一些變量數據并對變量數據進行調用,如:主機名、主機ip、snmp團體名、端口號、模板信息等變量。
? ?1.3 snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(RoundRobin Archive),它能夠存儲的數據筆數在創建時就已經定義。
? ?1.4 LAMP: Linux + Apache + Mysql + PHP ,另此Cacti 版本號為0.8.8H只能用于文檔centos6、PHP 5.6 、Mysql 5.6,高于以上版本會報錯;
? ?1.5 修改/etc/crontab配置文件,增加紅框內的內容重要:
二、安裝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后臺創建數據庫,如下圖:
? ? ??
? 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用到的命令路徑
? ? ? ?
-------------------------------------------------------------------------------------
注:至此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可以幫助你解決此類問題;?
?
七、Plugins:? Configstore使用?
? ?7.1 Linux上安裝tftp:? 需要安裝xinetd、tftp、tftp-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
? ??
? ?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配置成功
? ?
?7.4?Configstore設定
設定各類別的Accounts以管理不同設備的權限?
添加交換機至設備組并設定備份時間,可分日/周/月三種,必須設定DeviceType以及認證組別否則不能備份
下圖為已經已經進行備份完成的設備
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 內容如下:
修改/etc/crontab,增加如下內容
*/1 * * * * root php /var/www/html/cacti/plugins/syslog/syslog_process.php
重啟以下服務
? ? ??/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消息
九、Plugins: ?weathermap使用?
? ?weathermap監控拓撲圖如下:
? ?
? ?下圖監控狀態實例說明:
? ?
? ??---------> ? ??
? ?? --->
? ? ?------->
? ? ?IFSTATUS的配置如下:
? ?
轉載于:https://blog.51cto.com/arckyli/1967896
總結
以上是生活随笔為你收集整理的监控利器--Cacti的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Week06-接口、内部类
- 下一篇: 高性能业务架构解决方案(LVS+Keep