监控利器--Cacti
一、cacti概述
? ?1.1 cacti是用php語言實(shí)現(xiàn)的一個(gè)軟件,它的主要功能是用snmp服務(wù)獲取數(shù)據(jù),然后用rrdtool儲(chǔ)存和更新數(shù)據(jù),當(dāng)用戶需要查看數(shù)據(jù)的時(shí)候用rrdtool生成圖表呈現(xiàn)給用戶。因此,snmp和rrdtool是cacti的關(guān)鍵。Snmp關(guān)系著數(shù)據(jù)的收集,rrdtool關(guān)系著數(shù)據(jù)存儲(chǔ)和圖表的生成。
? ?1.2 Mysql配合PHP程序存儲(chǔ)一些變量數(shù)據(jù)并對(duì)變量數(shù)據(jù)進(jìn)行調(diào)用,如:主機(jī)名、主機(jī)ip、snmp團(tuán)體名、端口號(hào)、模板信息等變量。
? ?1.3 snmp抓到數(shù)據(jù)不是存儲(chǔ)在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對(duì)數(shù)據(jù)的更新和存儲(chǔ)就是對(duì)rrd文件的處理,rrd文件是大小固定的檔案文件(RoundRobin Archive),它能夠存儲(chǔ)的數(shù)據(jù)筆數(shù)在創(chuàng)建時(shí)就已經(jīng)定義。
? ?1.4 LAMP: Linux + Apache + Mysql + PHP ,另此Cacti 版本號(hào)為0.8.8H只能用于文檔centos6、PHP 5.6 、Mysql 5.6,高于以上版本會(huì)報(bào)錯(cuò);
? ?1.5 修改/etc/crontab配置文件,增加紅框內(nèi)的內(nèi)容重要:
二、安裝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?測(cè)試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?創(chuàng)建數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱可根據(jù)個(gè)人愛好去定義;
? ? ? mysqladmin--user=root -p create cacti
? ? ? 或是進(jìn)入mysql后臺(tái)創(chuàng)建數(shù)據(jù)庫(kù),如下圖:
? ? ??
? 5.3 導(dǎo)入數(shù)據(jù)庫(kù),此需要mysql-uroot -p cacti < cacti.sql
? 5.4?創(chuàng)建數(shù)據(jù)庫(kù)用戶,注,我個(gè)人比較懶mysql里設(shè)定的全是空密碼,在生產(chǎn)環(huán)境里必須設(shè)定密碼以保證數(shù)庫(kù)的安全;另外在生產(chǎn)環(huán)境需要設(shè)定獨(dú)立的數(shù)據(jù)庫(kù)用戶名,不要使用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?設(shè)置目錄權(quán)限
? ? ? chown -R apache rra/ log/
? ?5.7?配置計(jì)劃任務(wù)
? ? ? ?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/
? ? 默認(rèn)用戶名:admin 密碼:admin
? ? ? ?更改密碼
? ? 設(shè)置cacti用到的命令路徑
? ? ? ?
-------------------------------------------------------------------------------------
注:至此cacti設(shè)定完成,只需要交換機(jī)設(shè)定相關(guān)的SNMP服務(wù),Cacti就可以采集到相關(guān)的數(shù)據(jù)。因本文的重點(diǎn)不是數(shù)據(jù)采集,故對(duì)數(shù)據(jù)如何采集不作說明;
-------------------------------------------------------------------------------------
六、Plugins管理
???Plugins存放位置/var/www/html/cacti/plugins -->只做經(jīng)常用到的Plugin說明以及安裝使用
Configstore:用于管理交換機(jī)防火墻的configure的備份管理。這插件可以幫助對(duì)所有設(shè)備進(jìn)行分類批量進(jìn)行備份。
Weathermap :天氣圖就不用說了,這是我感覺對(duì)網(wǎng)絡(luò)拓?fù)鋱D監(jiān)控最為強(qiáng)大的一個(gè)插件,商業(yè)軟件有些功能不能解決的Weathermap都可以做到,比如你可以一張圖上圖示幾個(gè)AP接的終端用戶數(shù);你可以一張拓?fù)鋱D上顯示你的網(wǎng)絡(luò)架構(gòu)的流量、各設(shè)備的CPU、內(nèi)存等信息;你可以一張圖上顯示一個(gè)機(jī)房所有服務(wù)器設(shè)備運(yùn)行的網(wǎng)卡信息、I/0信息等;
Syslog用于收集所有網(wǎng)絡(luò)設(shè)備的Log;查看網(wǎng)絡(luò)設(shè)備日志對(duì)于網(wǎng)工來說很正常的一件事情,但當(dāng)你對(duì)面上千臺(tái)網(wǎng)絡(luò)設(shè)備時(shí),你如分析海量的設(shè)備信息?對(duì),syslog可以幫助你解你的煩惱,它可能快速收集所有設(shè)備信息,再根據(jù)你編寫的Alert分類,你就可以從分析日志繁重的工作中分離出來;
Thold用于設(shè)定各類的閥值,比如你的設(shè)備被***了CPU跑到100%,你是如何去發(fā)現(xiàn)以及解決問題?thold可以幫助你解決此類問題;?
?
七、Plugins:? Configstore使用?
? ?7.1 Linux上安裝tftp:? 需要安裝xinetd、tftp、tftp-server3軟件
如果能上網(wǎng),通過yum安裝:
? ? sudo yum install xinetd
? ? sudo yum install tftp
? ? sudo yum install tptp-server
如果不能上網(wǎng),可以直接安裝提供的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服務(wù)器,修改/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?? (系統(tǒng)默認(rèn)是enforcing)要改成disabled
chmod 777 /opt/backups ?修改/opt/backups文件夾的權(quán)限?
啟動(dòng)? service xinetd restart
o查看tftp服務(wù)是否開啟:netstat -a | grep tftp?顯示結(jié)果為? udp????0?? 0 *:tftp???? *:*??表示服務(wù)已經(jīng)開啟,tftp配置成功
? ?
?7.4?Configstore設(shè)定
設(shè)定各類別的Accounts以管理不同設(shè)備的權(quán)限?
添加交換機(jī)至設(shè)備組并設(shè)定備份時(shí)間,可分日/周/月三種,必須設(shè)定DeviceType以及認(rèn)證組別否則不能備份
下圖為已經(jīng)已經(jīng)進(jìn)行備份完成的設(shè)備
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));?[備注:此處為本機(jī)的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為收集設(shè)備日志數(shù)據(jù)庫(kù)]
? ? 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已經(jīng)安裝,此不作說明并作如下配置:
創(chuàng)建syslog 數(shù)據(jù)庫(kù)?
? ? mysql -uroot -p
? ? create database syslog;
? ? GRANT ALL ON syslog.* TO root@localhost ;[備注:在生產(chǎn)環(huán)境中要設(shè)定數(shù)據(jù)庫(kù)的密碼]?
進(jìn)入cacti的syslog插件目錄執(zhí)行下面命令
? ? ? mysql -uroot -p syslog < /var/www/html/cacti/plugins/syslog/syslog.sql ?[導(dǎo)入相關(guān)數(shù)據(jù)表]
?vi?/var/www/html/cacti/plugins/syslog/config.php 內(nèi)容如下:
修改/etc/crontab,增加如下內(nèi)容
*/1 * * * * root php /var/www/html/cacti/plugins/syslog/syslog_process.php
重啟以下服務(wù)
? ? ??/etc/init.d/syslog-ng restart
? ? ? /etc/init.d/mysqld restart
交機(jī)或是路由器增加log日志指向服務(wù)器
logging source-interface Loopback0
logging host 10.133.83.194
logging on
完成后系統(tǒng)收集的log,后面就可以根據(jù)收集到的數(shù)據(jù)進(jìn)行分類alert消息
九、Plugins: ?weathermap使用?
? ?weathermap監(jiān)控拓?fù)鋱D如下:
? ?
? ?下圖監(jiān)控狀態(tài)實(shí)例說明:
? ?
? ??---------> ? ??
? ?? --->
? ? ?------->
? ? ?IFSTATUS的配置如下:
? ?
轉(zhuǎn)載于:https://blog.51cto.com/arckyli/1967896
總結(jié)
以上是生活随笔為你收集整理的监控利器--Cacti的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Week06-接口、内部类
- 下一篇: 高性能业务架构解决方案(LVS+Keep