CentOS6.8 install Cacti 0.8.8g

Centos6.8 Cacti 0.8.8g
一、Cacti簡介

  1. cacti是用php語言實現的一個軟件,它的主要功能是用snmp服務獲取數據,然後用rrdtool儲存和更新數據,當用戶需要查看數據的時候用rrdtool生成圖表呈現給用戶。因此snmp和rrdtool是cacti的關鍵。Snmp關係着數據的收集,rrdtool關係着數據存儲和圖表的生成。
  2. Mysql配合PHP程序存儲一些變量數據並對變量數據進行調用,如:主機名、主機ip、snmp團體名、端口號、模板信息等變量。
  3. snmp抓到數據不是存儲在mysql中,而是存在rrdtool生成的rrd文件中(在cacti根目錄的rra文件夾下)。rrdtool對數據的更新和存儲就是對rrd文件的處理,rrd文件是大小固定的檔案文件(RoundRobinArchive),它能夠存儲的數據筆數在創建時就已經定義。

CentOS6.8 install Cacti 0.8.8g

CentOS6.8 install Cacti 0.8.8g

二、Cacti工作原理
Cacti操作可以分爲以下三部分:

CentOS6.8 install Cacti 0.8.8g

1.Data Retrieval
Cacti首先要做的工作就是收集數據,cacti使用Poller(輪詢器)收集數據。Poller是操作系統scheduler的擴展,如在類Unix系統中的crontab。現在的IT設施中會有許多不同的設備,如服務器、網絡設備等,cacti主要使用SNMP協議來從遠端的設備上收集數據,所有可以使用SNMP協議的設備都可以被cacti監控。
2.Data Storage
存儲收集到的數據有許多方法,可以使用數據庫、平面文件等,cacti使用的是RDDTool。RRD是Round Robin Database(環形數據庫)的縮寫,RRD用來存儲和顯示時間序列數據,如網絡帶寬、機房溫度、服務器負載等,RRD使用非常緊湊的方式存儲數據,數據不會隨着時間的推移而增大,RRD還可以生成美觀的圖形。這些特性使得cacti沒有存儲需求。RRD也做一席位其他的工作,如RRD會將原始數據與已整合的數據進行合併,以使得歷史數據的存儲節省空間,RRD支持的整合功能包括:AVERAGE, MAXIMUM, MINIMUM和LAST。
3.Data Presentation
Cacti最大的一個特點是內置了RRDTool畫圖功能,將其與通用的web服務器相結合,可以實現在任意平臺上使用瀏覽器就可以查看監控畫面。

Homepage: http://www.cacti.net/
plugins:http://docs.cacti.net/plugins
templates:http://docs.cacti.net/templates

三、安裝cacti
1.關閉防火牆和selinux
[root@localhost ~]#service iptables stop
[root@localhost ~]#chkconfig iptables off
[root@localhost~]#vi /etc/sysconfig/selinux

2.安裝cacti依賴的軟件
[root@localhost~]#yum -y install mysql mysql-server mysql-devel httpd php gd php-gd php-pdo php-snmp php-xml php-mysql lm_sensors net-snmp net-snmp-utils net-snmp-libs net-snmp-devel rrdtool rrdtool-devel perl-DBI perl-rrdtool perl-DBD-MySQL

3.snmpd配置
[root@localhost ~]#vim /etc/snmp/snmpd.confg
第41行:將 com2sec notConfigUser default public 中的 "default" 改爲 "127.0.0.1"
第62行:將 access notConfigGroup "" any noauth exact systemview none none 中的 "systemview" 改爲 "all"
第85行:將 #view all include .1 80 這一行前面的#號去掉

4.啓動服務
[root@localhost ~]#service snmpd start
[root@localhost ~]#service httpd start
[root@localhost ~]#service mysqld start

5.安裝並配置cacti
[root@localhost ~]#wget http://www.cacti.net/downloads/cacti-0.8.8g.tar.gz
[root@localhost ~]#tar -zxvf cacti-0.8.8g.tar.gz
[root@localhost ~]#mv cacti-0.8.8g/ /var/www/html/
[root@localhost ~]#chown root:root -R /var/www/html/

6.設置mysql數據庫
[root@localhost ~]#mysql -uroot -p
mysql>create database cacti character set utf8;
mysql>grant all privileges on cacti.* to "cacti"@"localhost" identified by 'cacti';
mysql> flush privileges;
mysql>use cacti;
mysql>source /var/www/html/cacti/cacti.sql;
mysql>exit

7.配置cacti
[root@localhost ~]#vim /var/www/html/include/config.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";

[root@localhost ~]#vim /var/www/html/include/global.php
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "cacti";
$database_port = "3306";
$database_ssl = false;

/ Default session name - Session name must contain alpha characters /
$cacti_session_name = "Cacti";

/ define default url path /
$url_path = "/";

8.修改rra目錄權限
[root@localhost ~]#mkdir /var/www/html/cache #創建緩存目錄
[root@localhost ~]#chown -R apache:apache /var/www/html/rra/ log/ cache/ #根據httpd服務啓動用戶修改

9.添加任務計劃
具體多長時間讓cacti生成一次監控圖表自己決定,這裏以cacti的默認時間5分鐘生成一次爲例,默認的採集方式是cmd.php
[root@localhost ]# touch /etc/cron.d/cacti
[root@localhost ]# vim /etc/cron.d/cacti

CentOS6.8 install Cacti 0.8.8g

10.配置好之後重啓輸入 http://ip/Prot new install , next...
此處如果沒有紅色字體"NOT FOUND"字樣則算通過,finish即可,如果有則要手動指定路徑,finish之後就出現cacti的登錄界面,默認用戶名和密碼都是admin.login之後cacti強制要求更改密碼,改完保存即可;到這裏前期的安裝工作就算全部結束了,之後就是配置監控。

四、Cacti優化之spine輪詢器
由於效率的原因,在需要大量採集數據時,如果使用自帶的cmd.php輪詢器會比較慢,1分鐘1次的採集頻率可能無法完成輪詢所有的被監控的機器。爲了解決效率問題,Cacti官方也推出spine,採用多線程的方式高效的輪詢。

1.解決依賴關係
[root@localhost ~]# yum -y install net-snmp-devel openssl-devel mysql-devel help2man

2.安裝spine,下載的版本最好與cacti版本一致
[root@localhost ~]# wget https://www.cacti.net/downloads/spine/cacti-spine-0.8.8g.tar.gz
[root@localhost ~]# tar xf cacti-spine-0.8.8g.tar.gz
[root@localhost ~]# cd cacti-spine-0.8.8g
[root@localhost cacti-spine-0.8.8g]# ./configure
[root@localhost cacti-spine-0.8.8g]# make -j 2 && make install

3.提供配置文件
[root@localhost ~]# cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf
[root@localhost ~]# vim /etc/spine.conf
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
如果忘記了數據庫配置可以參考:cacti/include/config.php

4.測試
[root@localhost ~]# /usr/local/spine/bin/spine --help
SPINE 0.8.8g Copyright 2002-2016 by The Cacti Group

5.在cacti的WEB頁面進行設置spine的路徑
Console -> Configureation -> Settings -> Alternate Poller Path -> Spine Poller File Path
輸入spine的路徑:默認安裝在/usr/local/spine/bin/spine

CentOS6.8 install Cacti 0.8.8g

6.修改Cacti默認的Poller Types

Console -> Cacti Settings -> Poller -> Poller Type
在下拉框中,選擇spine, 然後記得“Save”

CentOS6.8 install Cacti 0.8.8g

注意:Spine不必爲其添加計劃任務,Cacti well spawn Spine every 5 minutes instead of cmd.php
而poller.php需要定義計劃任務去執行,然後poller.php再去調度數據收集方法。

7.解決在圖像上方無法顯示中文字符

解決方法:

安裝中文語言包

yum install -y wqy-zenhei-fonts

或者

yum install dejavu-lgc-sans-fonts -y

yum groupinstall "Fonts" -y

8.編輯 functions.php 文件(系統安裝環境不同,目錄位置不同,直接使用find查找到Cacti根目錄下的lib下functions.php文件進行編輯即可)

CentOS6.8 install Cacti 0.8.8g

在倒數第二行插入:setlocale(LC_CTYPE,"zh_CN.UTF-8");

添加完成後刷新瀏覽器即可

CentOS6.8 install Cacti 0.8.8g

9.安裝插件

首先下載插件解壓到plugins目錄

CentOS6.8 install Cacti 0.8.8g

安裝 rsyslog

[root@localhost ]# yum install rsyslog rsyslog-mysql -y

創建syslog數據庫

mysql> create database syslog character set utf8;

CentOS6.8 install Cacti 0.8.8g

授權

mysql> grant all privileges on syslog.* to "syslog"@"localhost" identified by "password";

mysql> flush privileges;

編輯配置文件

vim syslog/config.php

32 $syslogdb_type = 'mysql';
33 $syslogdb_default = 'syslog';
34 $syslogdb_hostname = 'localhost';
35 $syslogdb_username = 'syslog';
36 $syslogdb_password = 'password';
37 $syslogdb_port = 3306;

編輯rsyslog.conf

vim /etc/rsyslog.conf

倒數第二行插入

. @@localhost:514
$ModLoad imudp.so
$UDPServerRun 514
$ModLoad ommysql
$template cacti_syslog,"INSERT INTO syslog_incoming(facility, priority, date, time, host, message) values ('%syslogfacility-text%', '%syslogpriority-text%', '%timereported:::date-mysql%', '%timereported:::date-mysql%', '%HOSTNAME%', '%msg%')", SQL
. >localhost,syslog,syslog,password;cacti_syslog

重啓 rsyslog 服務

service rsyslog restart

CentOS6.8 install Cacti 0.8.8g

CentOS6.8 install Cacti 0.8.8g

CentOS6.8 install Cacti 0.8.8g

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