在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 && 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&gt; create database cactidb default character set utf8;</b>
<b>mysql&gt; grant all on cactidb.* to cactiuser@localhost identified by '1234';</b>
<b>mysql&gt; quit</b>
<b>用sql</b><b>語句導入資料庫内容.</b>
<b>[root@localhost html]# mysql -u cactiuser -p cactidb < 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 &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->settings-&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 &&make && 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 &&make all &&make install-plugin &&make install-daemon &&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,如需轉載請自行聯系原作者