天天看點

linux下mrtg,cacti,nagios,ganglia的搭建和win/linux主機等的監控

在51cto做的監控沙龍的ppt,給大家整理成word文檔了,這樣可以友善大家閱讀,也可以友善大家複制裡面的指令,希望大家多給給評論,不要看看就走了!!!!

沙龍的講座内容:

監控軟體mrtg

監控軟體cacti

監控軟體nagios

監控軟體ganglia

第一款監控軟體Mrtg

mrtg這款軟體是在網際網路應用的比較早的監控軟體,像在05,06年的時候,它是非常吃香的。它的原理比較簡單:通過snmp與被管裝置通信,把資料取回來,然後生成圖檔,直接顯示出來,不需要把資料寫到資料庫裡面,非常簡潔,如果單純想監控主機/路由器/交換機等裝置的接口流量的話,mrtg是首選的監控軟體。下面是監控圖

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_13127681910LhR.jpg"></a>

搭建步驟:

一.前提條件:

系統必須已經安裝以下軟體,這些軟體都是CD光牒裡自帶的:

gd;libpng;perl;gpeg;apache;snmp(也可以安裝源碼包)。

二.安裝mrtg。大家用源碼包或者rpm包都可以,在這裡我選擇用rpm包了,在rhel4以後的版本裡面已經把mrtg內建進去了,直接用CD光牒的rpm包安裝就可以了。

具體操作:搭建一個本地yum庫

編輯yum配置檔案: vi /etc/yum.repos.d/rhel-debuginfo.repo内容如下:

[rhel-debuginfo]

name=Red Hat Enterprise Linux $releasever - $basearch - Debugbaseurl=file:///mnt/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

挂在CD光牒到/mnt: mount /dev/hdc /mnt

執行yum update 來 更新yum庫。

yum -y install 軟體名稱

三.用mrtg來監控路由器/交換機/伺服器的接口流量。

1. cfgmaker --global “WorkDir:/var/www/html” --global “Options[]:growright,bits” --show-op-down --ifref=name --output mrtg.cfg password1@路由器ip password2@伺服器ip ….

解釋一下:

cfgmaker指令是用來生成mrtg的配置檔案的

--global是兩個全局配置參數來指定mrtg的工作目錄和流量的增長機關

--show-op-down是顯示所有接口流量,預設隻顯示有流量的接口

--ifref=name表示生成的流量圖檔上方的标題是接口的名稱

--output=mrtg.cfg表示mrtg的配置檔案的名稱

password1@路由器ip,注意@前面是snmp的團體名稱,是來做身份驗證的,相當于密碼,該團體名稱要在被管裝置上面提起設定好,這個需要大家注意一下。

2. env LANG=C /usr/bin/mrtg mrtg.cfg

這條指令大家應該清楚什麼意思吧:把環境變量LANG設定為C(中文chinese),用mrtg指令來處理剛才生成的mrtg的配置檔案。注意該指令需要執行3次。

3. indexmaker --output=/var/ww/html/index.html --title=網頁标題 /var/www/html/mrtg.cfg

indexmaker是用來生成網頁檔案的,後面需要指定一下mrtg的配置檔案。

4 啟動一下apache,然後通過http://搭建mrtg的ip就可以通路到監控内容了

寫一個計劃任務讓它每五分鐘執行一次來達到實時監控的目的.

crontab -e

*/5 * * * * env LANG=C /usr/bin/mrtg /var/www/html/mrtg.cfg

注意:A. 如果監控網絡裝置,一定要提前在裝置上開啟snmp,否則是監控不到的。

比如:華為或者h3c的裝置啟用snmp的指令是: snmp-agent community read 共同體名

思科的裝置啟用snmp的指令是: snmp community 共同體名 ro/rw

B .如果監控windows用戶端,windows要安裝“簡單網絡管理協定”(在添加删除程式裡面),然後在服務裡面就可以找到snmp:如圖

給它添加一個團體名稱就可以了。

<a></a>

監控linux主機

從RHEL5CD光牒中安裝net-snmp軟體包

* 先安裝依賴包 lm_sensors-2.10.0-3.1.i386.rpm

* 再安裝 net-snmp-5.3.1-14.el5.i386.rpm

調整snmpd.conf配置檔案

<b>vi /etc/snmp/snmpd.conf</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768194Ftte.jpg"></a>

第二款監控軟體cacti

先看一下cacti的原理圖:

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768195K4aH.png"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768196E524.jpg"></a>

下面看一下cacti的搭建過程:

配置被監測端

* 要能夠支援以SNMP協定提供監測資料

* 對于Linux主機可以安裝net-snmp軟體包

配置監測服務端

* 安裝并配置以Cacti套件為主的各種工具

* 包括AMP平台、SNMP資料采集工具、RRDTool工具

使用Cacti監測系統

* 添加被監測主機或裝置

* 設定被監測的具體項目

* 生成及檢視監測圖像

一.被監控端(一台linux伺服器)的操作:在mrtg中已做介紹,這裡就省略了

二.伺服器端的操作:

安裝依賴軟體

* AMP平台,從RHEL5CD光牒中安裝下列軟體包

yum -y install httpd mysql mysql-server mysql-connector-odbc

yum -y install php php-mysql php-common php-pdo

SNMP資料采集工具

* lm_sensors、net-snmp、net-snmp-utils

* yum -y install lm_sensors net-snmp net-snmp-utils

RRDTool引擎

* 下載下傳軟體包:rrdtool-1.2.27.tar.gz

* 配置:./configure --prefix=/usr/local

* 編譯安裝: make &amp;&amp; make install

小提示:期間可能會報錯:intltool太老(也可能沒安裝)

解決方法:yum -y install intltool

<b>安裝Cacti</b><b>程式套件</b>

cacti-0.8.7g.tar.gz -C /var/www/html/

進入/var/www/html/目錄:

mv cacti-0.8.7 cacti

useradd cactiuser

<b>chown -R cactiuser.cactiuser cacti/rra/ cacti/log/</b>

<b>啟動mysql</b><b>: service mysqld start</b>

<b>登陸 mysql -u root -p</b>

<b>mysql&amp;gt; create database cactidb default character set utf8;</b>

<b>mysql&amp;gt; grant all on cactidb.* to cactiuser@localhost identified by '1234';</b>

<b>mysql&amp;gt; quit</b>

<b>用sql</b><b>語句導入資料庫内容.</b>

<b>[root@localhost html]# mysql -u cactiuser -p cactidb &lt; cacti/cacti.sql</b>

編輯cacti的配置檔案/var/www/html/cacti/include/config.php

$database_type = "mysql"; 資料庫類型

$database_default = "cactidb"; 資料庫名稱

$database_hostname = "localhost"; 資料庫伺服器位置

$database_username = "cactiuser"; 連接配接資料庫的使用者

$database_password = "1234"; 該使用者的密碼

$database_port = "3306"; 資料庫端口

修改apache主配檔案

DirectoryIndex 後面添加index.php

然後就可以啟動apache了: service httpd start

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768197DUcp.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768200Chhj.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768202taUw.png"></a>

如何添加裝置

添加裝置:ConsoleàDevicesàAdd

需要填寫的内容主要是:裝置描述 裝置ip或主機名 snmp版本 團體名

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_13127682032HUd.jpg"></a>

能夠看到snmp information證明添加成功了。

生成圖像

然後選擇要為哪個裝置生成圖像,把右側要生成圖像的内容的勾号都勾選上。

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768207TLvY.jpg"></a>

把圖像挂載到圖像樹下面去

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768207ykIA.jpg"></a>

如果想生成連續的圖像需要寫一個計劃任務:

*/5 * * * * php /var/www/html/cacti/poller.php

溫馨提示:執行這條指令會在/var/www/html/cacti/rra目錄下生成很多以rrd結尾的資料檔案,如果沒有生成,則證明權限設定有問題

Cacti擴充

擴充三個插件monitor,settings,thold

插件的主要作用:

一是郵件報警

二是聲音報警

具體操作

* 解壓更新檔檔案 cacti-plugin-0.8.7g-PA-v2.8.tar.gz

* Cd /var/www/html/cacti

* patch -p1 -N &amp;lt; /soft/cacit/cacti-plugin-arch/cacti-plugin-0.8.7g-PA-v2.8.diff

* 注意:更新檔檔案必須與cacti安裝檔案版本比對才可以

* 然後分别把thold-0.3.9.tar.gz;settings-0.5.tar.gz;monitor-0.7.tar.gz解壓到 /var/www/html/cacti/plugins目錄

這是monitor的内容,有聲音報警

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768209CaWM.jpg"></a>

這是郵件報警,在console-&gt;settings-&amp;gt;mail/dns裡面

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768210pYOE.jpg"></a>

Cacti-後續擴充,我會繼續更新cacti監控裡的東西,大家可以多關注我的部落格:

<a href="http://gehailong.blog.51cto.com/">http://gehailong.blog.51cto.com</a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768211Wpto.png"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768214uj64.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_131276821557So.jpg"></a>

這些内容我後續會在部落格裡寫出來

第三款監控軟體nagios

Nagios功能非常強大,它可以監控服務和主機,但是他自身并不包括這部分功能的代碼,所有的監控、檢測功能都是有插件來完成的。再說報警功能,如果監控系統發現問題不能報警那就沒有意義了,是以報警也是nagios很重要的功能之一。但是,nagios自身也沒有報警部分的代碼,甚至沒有插件,而是交給使用者或者其他相關開源項目組去完成比如飛信,郵件等實作報警。nagios安裝,是指基本平台,也就是nagios軟體包的安裝。它是監控體系的架構,也是所有監控的基礎。

nagios搭建

使用者群組的建立:

* <b>建立 nagios </b><b>賬号</b>

* <b>/usr/sbin/useradd nagios</b>

* <b>建立一個使用者組名為 nagcmd </b><b>用于從 Web </b><b>接口執行外部指令。将 nagios</b><b>使用者和 apache </b><b>使用者都加到這個組中。</b>

* <b>/usr/sbin/groupadd nagcmd</b>

* <b>/usr/sbin/usermod -G nagcmd nagios</b>

* <b>/usr/sbin/usermod -G nagcmd apache/daemon</b>

安裝軟體:nagios-3.3.1.tar.gz

主要操作:

* <b>./configure --with-command-group=nagcmd --prefix=/usr/local/nagios</b>

* <b>make all</b>

* <b>make install</b>

* <b>make install-init</b>

* <b>make install-config</b>

* <b>make install-commandmode</b>

bin

Nagios執行程式的目錄

etc

Nagios配置檔案位置,初始安裝完後,隻有幾個*.cfg-sample檔案 3與2差別 對象配置檔案都在etc/objects目錄下

sbin

Nagios Cgi檔案所在目錄,也就是執行外部指令所需檔案所在的目錄

Share

Nagios網頁檔案所在的目錄

Var

Nagios日志檔案、spid 等檔案所在的目錄

var/archives

Empty directory for the archived logs

var/rw

Empty directory for the external command file

Nagios主配檔案nagios.conf簡介

* <b>cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //</b><b>聯系人/</b><b>組配置檔案</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //</b><b>本機配置檔案</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //</b><b>監視時段配置檔案</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/commands.cfg //</b><b>監視腳本配置</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/templates.cfg //</b><b>監視服務,</b><b>報警配置</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/switch.cfg //</b><b>監視路由</b>

* <b>cfg_file=/usr/local/nagios/etc/objects/windows.cfg //</b><b>監視微軟</b>

安裝插件:<b> nagios-plugins-1.4.15.tar.gz</b><b>來擴充nagios</b><b>的功能</b>

* <b>tar zxvf nagios-plugins-1.4.15.tar.gz</b>

* <b>cd nagios-plugins-1.4.15</b>

* <b>./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &amp;&amp;make &amp;&amp; make install</b>

* <b>chown nagios.nagios /usr/local/nagios</b>

* <b>chown -R nagios.nagios /usr/local/nagios/libexec</b>

<b>驗證插件是否安裝成功:</b>

* <b>ls /usr/local/nagios/libexec</b>

* <b>會顯示安裝的插件檔案,</b><b>即所有的插件都安裝在 libexec </b><b>這個目錄下</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768217oTNm.jpg"></a>

監控軟體nagios-配置web接口(我介紹的是最簡單的方法,不要改apache的配置檔案)

<b>直接在nagios </b><b>的解壓目錄下執行一下 make install-webconf</b>

<b>主要作用:在/etc/httpd/conf.d</b><b>目錄下生成nagios.conf</b>

<b>這種配置方式是最簡單,最友善的。</b>

* <b>建立一個 nagiosadmin </b><b>的使用者用于 Nagios </b><b>的 WEB </b><b>接口登入。記下你所設定的登入口 </b><b>令,一會兒你會用到它。</b>

* <b>htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin</b>

<b>重新開機apache</b><b>讓剛才生成的配置檔案生效: service httpd restart</b>

* <b>把 Nagios </b><b>加入到服務清單中以使之在系統啟動時自動啟動</b>

* <b>chkconfig --add nagios</b>

* <b>chkconfig nagios on</b>

* <b>檢查Nagios </b><b>的配置檔案是否有文法錯誤</b>

* <b>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</b>

* <b>這條指令會經常用到要牢記</b>

* <b>如果沒有報錯,就可以啟動 Nagios </b><b>服務</b>

* <b>service nagios start</b>

* <b>通路http://</b><b>伺服器ip/nagios </b><b>輸入使用者名和密碼就可以通路了</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768217gFgA.jpg"></a>

監控軟體nagios-監控linux

伺服器的配置:

1. 安裝軟體nrpe-2.12.tar.gz

伺服器和被監控主機通過nrpe通信

tar xzvf nrpe-2.12.tar.gz

cd nrpe-2.12

<b>./configure &amp;&amp;make all &amp;&amp;make install-plugin &amp;&amp;make install-daemon &amp;&amp;make install-daemon-config</b>

* <b>2.</b><b>在/usr/local/nagios/etc/objects</b><b>下建立檔案hosts.cfg</b><b>在裡面寫入如下内容:</b>

* <b>define host {</b>

* <b>name default_servers </b><b>定義模闆,後面會用</b>

* <b>contact_groups admins </b><b>出問題聯系哪個組</b>

* <b>max_check_attempts 5</b>

* <b>notification_interval 0</b>

* <b>notification_period 24x7</b>

* <b>notification_options d,u,r</b>

* <b>check_command check-host-alive</b>

* <b>}</b>

* <b>use default_servers </b><b>調用上面定義的模闆</b>

* <b>host_name db_ip2_back</b>

* <b>alias db_ip2_back</b>

* <b>address 192.168.10.2</b>

* <b>3.</b><b>在/usr/local/nagios/etc/objects</b><b>目錄下建立services.cfg</b><b>。内容如下</b>

* <b>efine service {</b>

* <b>name dbservers </b><b>定義模闆,後面要用</b>

* <b>max_check_attempts 3</b>

* <b>normal_check_interval 4</b>

* <b>retry_check_interval 2</b>

* <b>check_period 24x7</b>

* <b>notification_interval 15</b>

* <b>notification_options w,u,c,r</b>

* <b>contact_groups admins </b><b>組要在contacts.cfg</b><b>中提前定義好</b>

* <b>define service{</b>

* <b>use dbservers</b>

* <b>service_description Root Partition</b>

* <b>check_command check_local_disk!20%!10%!/</b>

用戶端的配置:

* 建立使用者nagios

* 安裝nrpe軟體。安裝方式跟伺服器安裝方式相同

* 啟動nrpe:

* <b>/usr/local/nagios/bin/nrpe -d /usr/local/nagios/etc/nrpe.cfg</b>

* <b>檢視是否啟動成功:</b>

* [root@localhost etc]# netstat -ntlp|grep nrpe

* tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 20086/nrpe

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768218xXAl.png"></a>

監控軟體nagios-監控windows

伺服器端的配置:

* 編輯/usr/local/nagios/etc/objects/hosts.cfg在後面添加如下内容

* define host{

* use default_servers

* host_name win_ip3_server

* alias win_ip3_server

* address 192.168.10.3

* }

* 編輯/usr/local/nagios/etc/objects/services.cfg在後面添加如下内容

* define service{

* use generic-service

* service_description Memory Usage

* check_command check_nt!MEMUSE!-w 80 -c 90

* service_description C:\ Drive Space

* check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90

<b>Windows</b><b>用戶端的配置:</b>

* <b>1.</b><b>輕按兩下安裝NSClient++-0.3.6-Win32.msi</b>

* <b>2.</b><b>編輯NES.ini</b>

* <b>在 [modules] </b><b>選項裡</b>

* <b>去掉所有的注釋符号; </b><b>除了</b>

* <b>CheckWMI.dll</b><b>和RemoteConfiguration.dll</b>

* <b>在 [Settings] </b><b>選項裡</b>

* <b>修改allowd_host=61.x.x.x(nagios</b><b>伺服器的ip)</b>

* <b>如果這一步要修改passwd</b><b>,那麼nagios</b><b>伺服器裡面commands.cfg</b><b>也要修改!</b>

* <b>步驟: </b><b>在commands.cfg </b><b>找到check_nt </b><b>定義指令 </b><b>中的 Command_line </b><b>在其中添加-s </b><b>你的密碼</b>

* <b>在[NSClient] </b><b>裡面,去掉port=12489</b><b>的注釋!</b>

* <b>他靠端口12489</b><b>偵聽,是以防火牆要打開這個端口!</b>

* <b>然後輕按兩下nstray.exe</b><b>啟動nsclient</b>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768219SZ0n.png"></a>

實作飛信報警

安裝飛信:

把飛信安裝到/usr/local/nagios/sms目錄。

* tar xzvf fetion20090406003-linux.tar.gz -C /usr/local/nagios/sms/

* cd /usr/local/nagios/sms/install

* mv * ../

* 運作飛信會報錯: /usr/local/nagios/sms/fetion

* ./fetion: error while loading shared libraries: libACE-5.6.8.so: cannot open shared object file: No such file or director

* 解決方法:

* tar xzvf library_linux.tar.gz -C /usr/lib

<b>測試飛信:</b>

* <b>./fetion --mobile=</b><b>手機号 --pwd=</b><b>密碼 --msg-utf8="test" --to=13671324197</b>

* <b>編輯commands.cfg</b><b>在後面添加如下内容</b>

* <b>define command{</b>

* <b>command_name notify-service-by-sms</b>

* <b>command_line /usr/local/nagios/sms/fetion --mobile=13716335947 --pwd=fantong_2010 --msg-type=1 --msg-utf8="$HOSTNAME$ $SERVICEDESC$ is $SERVICESTATE$ on $TIME$ result is $SERVICEOUTPUT$" --to=$CONTACTPAGER$</b>

* <b>編輯 contacts.cfg</b><b>,添加如下内容</b>

* <b>define contact {</b>

* <b>contact_name nagiosadmin</b>

* <b>alias nagiosadmin</b>

* <b>service_notification_period 24x7</b>

* <b>host_notification_period 24x7</b>

* <b>service_notification_options w,u,c,r</b>

* <b>host_notification_options d,u,r</b>

* <b>service_notification_commands notify-service-by-email,notify-service-by-sms</b>

* <b>host_notification_commands notify-host-by-email,notify-host-by-sms</b>

* <b>email [email protected],[email protected]</b>

* <b>pager 13671324197</b>

* <b>define contactgroup{</b>

* <b>contactgroup_name admins</b>

* <b>alias Nagios Administrators</b>

* <b>members nagiosadmin</b>

後續擴充,後續我會吧一下nagios的進階應用加到部落格裡去

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768219qDtS.jpg"></a>

<a href="http://gehailong.blog.51cto.com/attachment/201108/8/765312_1312768222mahK.jpg"></a>

Ganglia這個軟體我在我部落格已經有了,這裡我就省略了。。。

本文轉自 gehailong 51CTO部落格,原文連結:http://blog.51cto.com/gehailong/633825,如需轉載請自行聯系原作者