在51cto作的監控沙龍的ppt,給你們整理成word文檔了,這樣能夠方便你們閱讀,也能夠方便你們複製裏面的命令,但願你們多給給評論,不要看看就走了!!!!php
沙龍的講座內容:html
第一款監控軟件Mrtgmysql
mrtg這款軟件是在互聯網應用的比較早的監控軟件,像在05,06年的時候,它是很是吃香的。它的原理比較簡單:經過snmp與被管設備通訊,把數據取回來,而後生成圖片,直接顯示出來,不須要把數據寫到數據庫裏面,很是簡潔,若是單純想監控主機/路由器/交換機等設備的接口流量的話,mrtg是首選的監控軟件。下面是監控圖linux
搭建步驟:ios
一.前提條件:web
系統必須已經安裝如下軟件,這些軟件都是光盤裏自帶的:sql
gd;libpng;perl;gpeg;apache;snmp(也能夠安裝源碼包)。數據庫
二.安裝mrtg。你們用源碼包或者rpm包均可以,在這裏我選擇用rpm包了,在rhel4之後的版本里面已經把mrtg集成進去了,直接用光盤的rpm包安裝就能夠了。apache
具體操做:搭建一個本地yum庫windows
編輯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
掛在光盤到/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:如圖
給它添加一個團體名稱就能夠了。
監控linux主機
從RHEL5光盤中安裝net-snmp軟件包
* 先安裝依賴包 lm_sensors-2.10.0-3.1.i386.rpm
* 再安裝 net-snmp-5.3.1-14.el5.i386.rpm
調整snmpd.conf配置文件
vi /etc/snmp/snmpd.conf
第二款監控軟件cacti
先看一下cacti的原理圖:
下面看一下cacti的搭建過程:
配置被監測端
* 要可以支持以SNMP協議提供監測數據
* 對於Linux主機能夠安裝net-snmp軟件包
配置監測服務端
* 安裝並配置以Cacti套件爲主的各類工具
* 包括AMP平臺、SNMP數據採集工具、RRDTool工具
使用Cacti監測系統
* 添加被監測主機或設備
* 設置被監測的具體項目
* 生成及查看監測圖像
一.被監控端(一臺linux服務器)的操做:在mrtg中已作介紹,這裏就省略了
二.服務器端的操做:
安裝依賴軟件
* AMP平臺,從RHEL5光盤中安裝下列軟件包
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
安裝Cacti程序套件
cacti-0.8.7g.tar.gz -C /var/www/html/
進入/var/www/html/目錄:
mv cacti-0.8.7 cacti
useradd cactiuser
chown -R cactiuser.cactiuser cacti/rra/ cacti/log/
啓動mysql: service mysqld start
登錄 mysql -u root -p
mysql> create database cactidb default character set utf8;
mysql> grant all on cactidb.* to cactiuser@localhost identified by '1234';
mysql> quit
用sql語句導入數據庫內容.
[root@localhost html]# mysql -u cactiuser -p cactidb < cacti/cacti.sql
編輯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
在瀏覽器裏面http://服務器的ip地址 /cacti(用戶名和密碼均是admin,第一次必須改密碼)
如何添加設備
添加設備:ConsoleàDevicesàAdd
須要填寫的內容主要是:設備描述 設備ip或主機名 snmp版本 團體名
可以看到snmp information證實添加成功了。
生成圖像
而後選擇要爲哪一個設備生成圖像,把右側要生成圖像的內容的勾號都勾選上。
把圖像掛載到圖像樹下面去
若是想生成連續的圖像須要寫一個計劃任務:
*/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 < /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的內容,有聲音報警
這是郵件報警,在console->settings->mail/dns裏面
Cacti-後續擴展,我會繼續更新cacti監控裏的東西,你們能夠多關注個人博客:
http://gehailong.blog.51cto.com
這些內容我後續會在博客裏寫出來
第三款監控軟件nagios
Nagios功能很是強大,它能夠監控服務和主機,可是他自身並不包括這部分功能的代碼,全部的監控、檢測功能都是有插件來完成的。再說報警功能,若是監控系統發現問題不能報警那就沒有意義了,因此報警也是nagios很重要的功能之一。可是,nagios自身也沒有報警部分的代碼,甚至沒有插件,而是交給用戶或者其餘相關開源項目組去完成好比飛信,郵件等實現報警。nagios安裝,是指基本平臺,也就是nagios軟件包的安裝。它是監控體系的框架,也是全部監控的基礎。
nagios搭建
用戶和組的創建:
* 創建 nagios 帳號
* /usr/sbin/useradd nagios
* 建立一個用戶組名爲 nagcmd 用於從 Web 接口執行外部命令。將 nagios用戶和 apache 用戶都加到這個組中。
* /usr/sbin/groupadd nagcmd
* /usr/sbin/usermod -G nagcmd nagios
* /usr/sbin/usermod -G nagcmd apache/daemon
安裝軟件:nagios-3.3.1.tar.gz
主要操做:
* ./configure --with-command-group=nagcmd --prefix=/usr/local/nagios
* make all
* make install
* make install-init
* make install-config
* make install-commandmode
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簡介
* cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //聯繫人/組配置文件
* cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //本機配置文件
* cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //監視時段配置文件
* cfg_file=/usr/local/nagios/etc/objects/commands.cfg //監視腳本配置
* cfg_file=/usr/local/nagios/etc/objects/templates.cfg //監視服務,報警配置
* cfg_file=/usr/local/nagios/etc/objects/switch.cfg //監視路由
* cfg_file=/usr/local/nagios/etc/objects/windows.cfg //監視微軟
安裝插件: nagios-plugins-1.4.15.tar.gz來擴展nagios的功能
* tar zxvf nagios-plugins-1.4.15.tar.gz
* cd nagios-plugins-1.4.15
* ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &&make && make install
* chown nagios.nagios /usr/local/nagios
* chown -R nagios.nagios /usr/local/nagios/libexec
驗證插件是否安裝成功:
* ls /usr/local/nagios/libexec
* 會顯示安裝的插件文件,即全部的插件都安裝在 libexec 這個目錄下
監控軟件nagios-配置web接口(我介紹的是最簡單的方法,不要改apache的配置文件)
直接在nagios 的解壓目錄下執行一下 make install-webconf
主要做用:在/etc/httpd/conf.d目錄下生成nagios.conf
這種配置方式是最簡單,最方便的。
* 建立一個 nagiosadmin 的用戶用於 Nagios 的 WEB 接口登陸。記下你所設置的登陸口 令,一下子你會用到它。
* htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
重啓apache讓剛纔生成的配置文件生效: service httpd restart
* 把 Nagios 加入到服務列表中以使之在系統啓動時自動啓動
* chkconfig --add nagios
* chkconfig nagios on
* 檢查Nagios 的配置文件是否有語法錯誤
* /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
* 這條命令會常常用到要牢記
* 若是沒有報錯,就能夠啓動 Nagios 服務
* service nagios start
* 訪問http://服務器ip/nagios 輸入用戶名和口令就能夠訪問了
監控軟件nagios-監控linux
服務器的配置:
1. 安裝軟件nrpe-2.12.tar.gz
服務器和被監控主機經過nrpe通訊
tar xzvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure &&make all &&make install-plugin &&make install-daemon &&make install-daemon-config
* 2.在/usr/local/nagios/etc/objects下新建文件hosts.cfg在裏面寫入以下內容:
* define host {
* name default_servers 定義模板,後面會用
* contact_groups admins 出問題聯繫哪一個組
* max_check_attempts 5
* notification_interval 0
* notification_period 24x7
* notification_options d,u,r
* check_command check-host-alive
* }
* define host {
* use default_servers 調用上面定義的模板
* host_name db_ip2_back
* alias db_ip2_back
* address 192.168.10.2
* }
* 3.在/usr/local/nagios/etc/objects目錄下新建services.cfg。內容以下
* efine service {
* name dbservers 定義模板,後面要用
* max_check_attempts 3
* normal_check_interval 4
* retry_check_interval 2
* check_period 24x7
* notification_interval 15
* notification_period 24x7
* notification_options w,u,c,r
* contact_groups admins 組要在contacts.cfg中提早定義好
* }
* define service{
* use dbservers
* host_name db_ip2_back
* service_description Root Partition
* check_command check_local_disk!20%!10%!/
* }
客戶端的配置:
* 新建用戶nagios
* 安裝nrpe軟件。安裝方式跟服務器安裝方式相同
* 啓動nrpe:
* /usr/local/nagios/bin/nrpe -d /usr/local/nagios/etc/nrpe.cfg
* 查看是否啓動成功:
* [root@localhost etc]# netstat -ntlp|grep nrpe
* tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 20086/nrpe
監控軟件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
* host_name win_ip3_server
* service_description Memory Usage
* check_command check_nt!MEMUSE!-w 80 -c 90
* }
* define service{
* use generic-service
* host_name win_ip3_server
* service_description C:\ Drive Space
* check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
* }
Windows客戶端的配置:
* 1.雙擊安裝NSClient++-0.3.6-Win32.msi
* 2.編輯NES.ini
* 在 [modules] 選項裏
* 去掉全部的註釋符號; 除了
* CheckWMI.dll和RemoteConfiguration.dll
* 在 [Settings] 選項裏
* 修改allowd_host=61.x.x.x(nagios服務器的ip)
* 若是這一步要修改passwd,那麼nagios服務器裏面commands.cfg也要修改!
* 步驟: 在commands.cfg 找到check_nt 定義命令 中的 Command_line 在其中添加-s 你的密碼
* 在[NSClient] 裏面,去掉port=12489的註釋!
* 他靠端口12489偵聽,因此防火牆要打開這個端口!
* 而後雙擊nstray.exe啓動nsclient
實現飛信報警
安裝飛信:
把飛信安裝到/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
測試飛信:
* ./fetion --mobile=手機號 --pwd=密碼 --msg-utf8="test" --to=13671324197
* 編輯commands.cfg在後面添加以下內容
* define command{
* command_name notify-service-by-sms
* 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$
* 編輯 contacts.cfg,添加以下內容
* define contact {
* contact_name nagiosadmin
* alias nagiosadmin
* service_notification_period 24x7
* host_notification_period 24x7
* service_notification_options w,u,c,r
* host_notification_options d,u,r
* service_notification_commands notify-service-by-email,notify-service-by-sms
* host_notification_commands notify-host-by-email,notify-host-by-sms
* email search-alert@fantong.com,gehailong@fantong.com
* pager 13671324197
* }
* define contactgroup{
* contactgroup_name admins
* alias Nagios Administrators
* members nagiosadmin
* }
後續擴展,後續我會吧一下nagios的高級應用加到博客裏去
Ganglia這個軟件我在我博客已經有了,這裏我就省略了。。。
歡迎你們多發表評論啊!!!!!!
你們能夠去http://down.51cto.com/765312這裏下載該文檔