centos7上安裝cacti監控

 簡介php

在企業網絡運維過程當中,管理員必須時刻關注服務器的運行狀態,如CPU、內存、磁盤空間使用狀況等。爲了可以及時的發現問題,儘可能減小故障的發生。當網絡中的設備,服務器等數量較多時,能夠部署一套監控系統來實時跟蹤服務器,咱們一般會藉助一些軟件來實現html

今天咱們就以Cacti套件爲例,介紹服務器集中監測體系的構建和使用python

1、Cacti基本監測體系概述

Cacti是一款使用PHP語言開發的性能與流量監測工具,監測的對象可使linuxwindows服務器也能夠是路由交換等網絡設備,主要是基於SNMPSimple Network Management Protocol 簡單網絡管理協議)來蒐集CPU、佔用、內存使用、運行進程數以及磁盤使用空間、網卡流量等各類數據。說白了就是監控服務器狀態。mysql

實際上Cacti自己只是一個Web界面的管理套件,經過調用Net-SNMP工具來採集檢測數據 並結合RRDtoolRound Robin Database tool 輪詢數據庫工具)記錄數據並繪製圖片。如圖1所示linux

 

1web

Cacti提供了優秀的整合和協調能力,充分利用LAMP技術平臺、SNMP協議工具以及RRDtool數據引擎、不只配置簡單、直觀、並且支持插件和數據模板,使用時很是整潔,便於擴展。sql

實際上Cacti能夠從邏輯上分爲三個部分、第一部分:被檢測的對象,也就是客戶端。第二部分:檢測平臺,也就是服務器端。第三部分:管理平臺。Cacti採用了兩種結構實現功能,一種是C/S結構主要是實現服務器到客戶端監控另一種就是B/S主要完成對Cacti平臺的管理。從圖1咱們能夠看出,管理端是在Web上對Cacti進行管理。數據庫

簡單的整理一下Cacti的工做過程。vim

首先經過LAMP平臺部署Cacti監控工具,以後經過客戶端的web登陸Cacti進行多其餘客戶端的設置,能夠從圖1看到Cacti採集數據時必需要使用SNMP協議來鏈接客戶端進而可以採集數據嗎,也就是說客戶端必須支持SNMP協議。監控以後經過RRDtool來生成圖表,其實這個圖表是靜態的,通過頻繁的數據採集,咱們也能夠認爲是動態的,也就是說Cacti是基於某段時間的監控。windows

2、服務器配置(控制端——client

實驗拓撲

主機 

操做系統 

IP地址 

主要軟件

centos1 

CentOS 7 x86_64 

192.168.92.130 

Cacti-0.8.8b.tar.gz

Rrdtool-1.4.8.tar.gz

centos2 

CentOS 7 x86_64 

192.168.1.132

Mysql.5.5.tar.gz

 

Cacti集中監測平臺的服務器端時,應提早安裝好LAMP或者是LNMP平臺,以及Net-SNMPRRDtool等軟件支持,而後下載Cacti源碼包

1、安裝Net-SNMPRRDtool軟件支持

1)構建數據庫及Web平臺

前面已經學習過了如何部署源碼包的LAMPLNMP平臺,爲了方便演示這裏直接以RPM包的LAMP平臺爲基礎搭建Cacti。所需安裝包以下所述。若還提示缺乏一些包請在以YUM的方式進行安裝便可。

# yum -y install httpd
# yum -y install mariadb mariadb-server
# yum -y install zlib freetype libjpeg fontconfig gd libxml2 libxml2-devel php-gd 
 //安裝PHP須要的庫文件
# yum -y install php php-mysql
# systemctl start httpd.service
# chkconfig httpd on
# systemctl start mariadb
# chkconfig mariadb on
# setenforce 0
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# mysqladmin -u root -p password '123.abc'
Enter password: (此處直接回車便可) 

服務啓動以後咱們能夠編寫測試頁來驗證LAMP平臺的協同工做

# cat /var/www/html/test.php 
<?php
$link=mysql_connect('localhost','root','123.abc');
if ($link) echo "mysql connect is ok!!";
mysql_close();
phpinfo();
?>

 訪問頁面測試

通過測試LAMP平臺已經可以徹底的結合在一塊兒並運行。

以後在客戶端進行訪問

2)安裝net-snmp-utils軟件包

Cacti平臺經過SNMP協議採集檢測數據,這些工具由net-snmp-utils軟件包提供,所需安裝的軟件包以下所示。

# yum -y install net-snmp net-snmp-utils

3)安裝rrdtool軟件包

 下載rrdtool軟件到/root目錄下

 經過YUM確認並安裝相關軟件包 

# yum -y install cairo-devel zlib libxml2 libxml2-devel glib2 glib2-devel libpng libpng-devel freetype freetype-devel libart_lgpl pango pango-devel perl-CPAN

若是提示須要其餘軟件包,在另行安裝。

 安裝rddtool源碼包

# tar -xvf rrdtool-1.4.5.tar.gz
# cd rrdtool-1.4.5/
# ./configure --prefix=/usr/local && make && make install

2、部署Cacti、設置數據庫鏈接

1)部署Cacti源碼包

下載到root目錄下

將下載的源碼包解壓到root下並移動到網頁文檔根目錄下更名爲cacti

# wget http://www.cacti.net/downloads/cacti-0.8.8b.tar.gz
# tar -xvf cacti-0.8.8b.tar.gz
# mv cacti-0.8.8b /var/www/html/cacti

添加一個用戶,用來讀寫檢測數據的用戶帳戶(如cacti),並調整期目錄的屬主,以便正常讀取以及寫入數據

# useradd cacti
# chown -R cacti:cacti /var/www/html/cacti/

2)創建數據庫,表結構

先建立一個用於cacti檢測平臺的數據庫,並受權一個用戶cactiuser而後使用cacti源碼目錄下的cacti.sql腳本,導入預設的各類數據表 

# mysql -uroot -p123.abc
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database cacti default character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on cacti.* to cactiuser@'localhost' identified by '123.abc';
Query OK, 0 rows affected (0.11 sec)

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.16 sec)

導入

# cd /var/www/html/cacti/
# mysql -u cactiuser -p cacti < cacti.sql
Enter password:   //輸入密碼
[root@localhost cacti]# mysql -uroot -p123.abc
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.56-MariaDB MariaDB Server

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use cacti;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [cacti]> show tables;    //驗證是否導入表到cacti庫中
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
| graph_template_input_defs |
| graph_templates           |
| graph_templates_gprint    |
| graph_templates_graph     |
| graph_templates_item      |
| graph_tree                |
| graph_tree_items          |
| host                      |
| host_graph                |
| host_snmp_cache           |
| host_snmp_query           |
| host_template             |
| host_template_graph       |
| host_template_snmp_query  |
| plugin_config             |
| plugin_db_changes         |
| plugin_hooks              |
| plugin_realms             |
| poller                    |
| poller_command            |
| poller_item               |
| poller_output             |
| poller_reindex            |
| poller_time               |
| rra                       |
| rra_cf                    |
| settings                  |
| settings_graphs           |
| settings_tree             |
| snmp_query                |
| snmp_query_graph          |
| snmp_query_graph_rrd      |
| snmp_query_graph_rrd_sv   |
| snmp_query_graph_sv       |
| user_auth                 |
| user_auth_perms           |
| user_auth_realm           |
| user_log                  |
| version                   |
+---------------------------+
52 rows in set (0.00 sec) 

上訴操做中,建立Cacti庫時,指定默認的編碼字符集爲utf8,便於中文支持,導入預設庫時最好是使用cactiuser導入。最後驗證一下是否導入。

3)調整cacti配置文件

cacti的配置文件位於源碼目錄下的include/目錄下,名稱爲config.php,要使Cacti系統可以正常訪問並使用數據庫,必須修改config.php文件,卻保數據庫鏈接參數正確。

# vim include/config.php
$database_type = "mysql";			 //指定鏈接的類型
$database_default = "cacti";			 //鏈接的庫
$database_hostname = "localhost";        //登陸源
$database_username = "cactiuser";        //用戶名
$database_password = "123.abc";         //用戶密碼
$database_port = "3306";			//鏈接的端口
$database_ssl = false;				//不啓用ssl
$url_path = "/";					//指定cacti的根目錄,這個目錄是cacti的文件目錄下,咱們後面還須要修改httpd的主配置文件。

  3Cacti的初始化安裝

1)調整httpd配置

修改httpd的主配置文件,設置好網頁文檔根目錄、自動索引頁

# vim /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html/cacti"			
<Directory "/var/www/html/cacti">			
    Options Indexes none						
 	 AllowOverride None						
	 Order allow,deny							
    Allow from all								
</Directory>										
DirectoryIndex  index.php  index.html index.html.var 
AddDefaultCharset UTF-8						

 重啓服務

# systemctl restart httpd

2)初始化Cacti系統

在遊覽器中訪問Cacti服務器的Web服務,如http://192.168.1.1,除此訪問時會自動跳轉至安裝指南界面如圖3所示

以上就是安裝界面,內容是一些歡迎信息,直接點擊下一步繼續

選擇新的安裝,點擊Next繼續

以上信息必須所有都爲綠色,若是出現紅色,請檢查相關步驟。點擊Finish完成安裝

 

只要看到了這個登陸界面,那麼咱們今天的Cacti就部署完成了,默認的用戶名和密碼都是admin,首次登陸以後須要修改密碼。我的建議先不要進行登陸,先進行一下操做,以後在進行登陸。

3、客戶端的配置

不管是路由器、交換機、仍是linuxwindows服務器,只要正確支持SNMP協議,並容許Client服務器採集數據,就可以對其進行監測。下面僅介紹在linux服務器中啓用SNMP支持並設置共同體名的簡單方法

ps:共同體名,值的是一種驗證機制,全部的client都必須使用同一個共同體名,就像咱們以前學習的hsrp的組同樣,只有組號相同才能是一個組的,這裏也是如此,只有共同體名相同的時候,Cacti才能經過這個共同體名對client進行監控。

須要安裝net-snmplm_sensors軟件包,而後經過修改其配置文件/etc/snmp/snmpd.conf,並啓動snmpd服務,並創建規則,默認監聽UDP161號端口。

# yum -y install net-snmp lm_sensors
# vim /etc/snmp/snmpd.conf


com2sec notConfigUser  192.168.90.130       public
access  notConfigGroup ""      any       noauth    exact  all none none
view all    included  .1                               80

192.168.92.130 指的是Cacti的服務器IP(默認是default),表示容許其查詢本機數據,public指的就是共同體名,用來識別及驗證

all表示開放全部的SNMP查詢權限(默認是 SystemView

去掉註釋以後,以便支持各類查詢。

# systemctl start snmpd
# iptables -I INPUT -p udp --dport 161 -j ACCEPT

4、使用CactiWeb控制檯

配置好Cacti的主控端、被控端以後,就能夠設置集中監測任務了。下面講學習在Cacti系統的Web控制檯的基本操做,以及如何經過添加插件來擴展集中監測功能。

在遊覽器中訪問Cacti系統,如http://192.168.1.1,輸入用戶和密碼,便可登陸到Web控制檯界面

 

 

 未完待續。。。

相關文章
相關標籤/搜索