CentOS6.8 install Cacti 0.8.8g

Centos6.8 Cacti 0.8.8g
1、Cacti簡介php

  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

2、Cacti工做原理
Cacti操做能夠分爲如下三部分:html

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服務器相結合,能夠實如今任意平臺上使用瀏覽器就能夠查看監控畫面。mysql

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

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

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-MySQLsql

3.snmpd配置
[root@localhost ~]#vim /etc/snmp/snmpd.conf
第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 startapache

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/
vim

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強制要求更改密碼,改完保存便可;到這裏前期的安裝工做就算所有結束了,以後就是配置監控。

4、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

相關文章
相關標籤/搜索