1. 程式人生 > >服務器監控Cacti

服務器監控Cacti

cacti

在企業網絡運維過程中,管理員必須時刻關註服務器的運行狀態,如CPU、內存、磁盤空間使用情況等。為了能夠及時的發現問題,盡量減少故障的發生。當網絡中的設備,服務器等數量較多時,可以部署一套監控系統來實時跟蹤服務器,我們通常會借助一些軟件來實現。今天就以Cacti套件為例,介紹服務器集中監測體系的構建和使用。

cacti服務器監控系統與windows操作系統中的“性能監視器”屬於同一類,都是為了監控cpu占用,內存使用,運行進程數,磁盤空間,網卡流量等各種數據。但不同的是,cacti不僅可以監控linux,也可以監控windows服務器,路由器,交換機等網絡設備,主要基於snmp協議來搜集數據。Cacti本身是一個web界面的軟件,通過調用net-snmp工具來采集檢測數據,並結合RRDtool(輪詢數據庫工具)記錄數據並繪制圖片,最終以web頁面展示給管理員用戶。cacti需要運行在lamp平臺上,配置簡單,直觀,而且支持插件和數據模板,可擴展其功能。下面給大家介紹搭建的過程。

工作原理:

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

簡單的整理一下Cacti的工作過程

首先通過LAMP平臺部署Cacti監控工具,之後通過客戶端的web登錄Cacti進行對其他客戶端的設置,可以從下圖看到Cacti采集數據時必須要使用SNMP協議來連接客戶端進而能夠采集數據,也就是說客戶端必須支持SNMP協議,監控之後通過RRDtool來生成圖表。

Cacti工作原理示意圖:

技術分享圖片

實驗環境:

一臺Cacti服務器、一臺MySQL服務器、一臺客戶機

技術分享圖片

一、服務器配置(主控端——Cacti)

  1. 安裝支持軟件

(1)構建數據庫及web平臺

技術分享圖片

編寫一個PHP測試頁

技術分享圖片

技術分享圖片

技術分享圖片

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

Cacti平臺通過snmp協議采集檢測數據,這些工具程序由net-snmp-utils軟件包提供

技術分享圖片

(3)安裝rrdtool軟件包

首先安裝相關的軟件包

技術分享圖片

安裝rrdtool源碼包

技術分享圖片

2.部署Cacti、設置數據庫連接

(1)部署Cacti源碼包

將下載的Cacti源碼包釋放至Web服務器的網頁目錄

技術分享圖片

添加一個用來讀寫監測數據的用戶賬號,並調整目錄的屬主,以便正常讀取及寫入數據

技術分享圖片

(2)建立數據庫、表結構

先創建用於Cacti監測平臺的數據庫,並授予一個數據庫用戶,然後使用Cacti源碼目錄下的Cacti.sql腳本,導入預設的各種數據表

技術分享圖片


技術分享圖片


技術分享圖片


技術分享圖片

(3)調整Cacti配置文件

Cacti的配置文件位於源碼目錄中的include/文件夾下,名稱為config.php。要使Cacti系統能夠正確訪問並使用數據庫,必須修改config.php文件,確保數據庫連接參數正確無誤。

技術分享圖片


$database_type = "mysql"; //指定連接的類型

$database_default = "cacti"; //連接的庫

$database_hostname = "localhost"; //登錄源

$database_username = "cacti"; //用戶名

$database_password = "cacti"; //用戶密碼

$database_port = "3306"; //連接的端口

$database_ssl = false; //不啟用ssl

$url_path = "/"; //指定cacti的根目錄,這個目錄是cacti的文件目錄下,我們後面還需要修改httpd的主配置文件。


技術分享圖片

3.Cacti的初始化安裝

(1)調整httpd配置

修改httpd服務的主配置文件,設置好網站根目錄,默認首頁,默認字符集等,然後重新加載httpd服務

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


技術分享圖片

(2)初始化Cacti系統

在瀏覽器中輸入http://192.168.1.1,然後根據提示安裝

技術分享圖片


技術分享圖片


技術分享圖片

技術分享圖片


技術分享圖片

到此為止服務器配置完成了,下面開始配置一臺linux客戶端(mysql192.168.1.2),然後使用cacti監控客戶端

二、配置客戶端(被控端——snmpd)

無論是路由器、交換機、還是linux或windows服務器,只要正確支持SNMP協議,並允許Client服務器采集數據,就能夠對其進行監測。下面僅介紹在linux服務器中啟用SNMP支持並設置共同體名的簡單方法。

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

需要安裝net-snmp、lm_sensors軟件包,然後通過修改其配置文件/etc/snmp/snmpd.conf,並啟動snmpd服務,並建立規則,默認監聽UDP的161號端口。

技術分享圖片

修改配置文件

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片


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

第62行 all表示開放所有的SNMP查詢權限(默認是 SystemView)

第85行 去掉註釋之後,以便支持各種查詢。


技術分享圖片


技術分享圖片

三、使用Cacti的Web控制臺(下面以5個部分說明)

l 登錄Web控制臺

l 添加被控設備/主機,設置監控項目

l 生成監測圖像

l 定期采集監測數據

l 查看監測結果

1、登錄web控制臺

在瀏覽器中輸入http://192.168.1.1,輸入用戶名和密碼登錄,默認都是admin

技術分享圖片


2、添加被控設備/主機,設置監控項目

(1)單擊導航欄中的“management(管理)”下的“devices(設備)”,可以管理被控設備或主機。點擊devices---Add

技術分享圖片


修改五個地方,如下圖,

然後單擊右下角的“create”創建,將自動連接目標執行snmp查詢

技術分享圖片

技術分享圖片

(2)設置要監測的項目

成功連接被控端後會看到save successful提示,如下圖

技術分享圖片

技術分享圖片


添加項的時候選擇頁面右側的add,完成之後點擊右下方的save按鈕保存

技術分享圖片


3、生成檢測圖像

(1)創建圖像

單擊導航欄中create下的new graphs(圖表),選擇被控端,選中最需要的圖像條目,最後單擊下方的create按鈕完成創建。

技術分享圖片

(2添加圖像至監測樹

單擊導航欄中的management下的graph trees,在單擊default tree就可以對默認的圖像監測樹進行管理。單擊右側的add,可以向監測樹種添加“樹項目”,完成之後點擊create,並點擊save保存。

技術分享圖片


技術分享圖片


技術分享圖片

4、定期采集監測數據

Cacti系統通過poller.php頁面采集監測數據,可以結合計劃任務定期采集(默認的刷新間隔是5分鐘)

(執行完成之後,會出現很多的提示信息,一般情況下是指時區不正確,建議你將時區改為Asia/Chongqing

由於是php報的錯誤,所以我們通過php.ini這個主配置文件解決這個問題)

技術分享圖片

技術分享圖片

做一個任務計劃


技術分享圖片

技術分享圖片

5、查看監測結果

單擊cacti管理控制臺左上方的graphs標簽,然後展開左側的default tree樹,選擇被控主機後即可看到各監測圖像。

技術分享圖片

技術分享圖片

技術分享圖片

6.安裝percona-mysql-monitor插件

Cacti工具默認的模板只能監控機器的cpu,內存和磁盤等信息,如果想要監控mysql,就需要安裝插件,操作如下

在Cacti服務器上操作

技術分享圖片

技術分享圖片

mysql數據庫授權用戶

技術分享圖片

技術分享圖片


為設備添加項目

在Cacti管理界面中進行添加,點擊Consose——Import Templates——選擇文件, 將宿主機下的壓縮目錄解壓到一個文件夾內,選擇解壓後的cacti\templat目錄下的cacti_host_template_percona_mysql_server_ht_0.8.6i-sver1.1.4.xml,最後單擊import導入。

技術分享圖片

技術分享圖片


添加模板

技術分享圖片

創建圖像

技術分享圖片


技術分享圖片

重新采集

技術分享圖片

查看檢測結果

技術分享圖片

技術分享圖片

服務器監控Cacti