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

在51cto作的監控沙龍的ppt,給你們整理成word文檔了,這樣能夠方便你們閱讀,也能夠方便你們複製裏面的命令,但願你們多給給評論,不要看看就走了!!!!php

沙龍的講座內容:html

  1. 監控軟件mrtg
  2. 監控軟件cacti
  3. 監控軟件nagios
  4. 監控軟件ganglia

第一款監控軟件Mrtgmysql

mrtg這款軟件是在互聯網應用的比較早的監控軟件,像在05,06年的時候,它是很是吃香的。它的原理比較簡單:經過snmp與被管設備通訊,把數據取回來,而後生成圖片,直接顯示出來,不須要把數據寫到數據庫裏面,很是簡潔,若是單純想監控主機/路由器/交換機等設備的接口流量的話,mrtg是首選的監控軟件。下面是監控圖linux

clip_p_w_picpath002

搭建步驟: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:如圖

給它添加一個團體名稱就能夠了。

clip_p_w_picpath004

監控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

clip_p_w_picpath006

第二款監控軟件cacti

先看一下cacti的原理圖:

clip_p_w_picpath012

clip_p_w_picpath014

下面看一下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,第一次必須改密碼)

clip_p_w_picpath016

clip_p_w_picpath018

clip_p_w_picpath019

如何添加設備

添加設備:ConsoleàDevicesàAdd

須要填寫的內容主要是:設備描述 設備ip或主機名 snmp版本 團體名

clip_p_w_picpath021

可以看到snmp information證實添加成功了。

生成圖像

添加設備:ConsoleàNewGraphs

而後選擇要爲哪一個設備生成圖像,把右側要生成圖像的內容的勾號都勾選上。

clip_p_w_picpath023

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

clip_p_w_picpath025

若是想生成連續的圖像須要寫一個計劃任務:

*/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的內容,有聲音報警

clip_p_w_picpath027

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

clip_p_w_picpath029

Cacti-後續擴展,我會繼續更新cacti監控裏的東西,你們能夠多關注個人博客:

http://gehailong.blog.51cto.com

clip_p_w_picpath030

clip_p_w_picpath032

clip_p_w_picpath034

這些內容我後續會在博客裏寫出來

第三款監控軟件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 這個目錄下

clip_p_w_picpath036

監控軟件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 輸入用戶名和口令就能夠訪問了

clip_p_w_picpath038

監控軟件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

clip_p_w_picpath039

監控軟件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

clip_p_w_picpath040

實現飛信報警

安裝飛信:

把飛信安裝到/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的高級應用加到博客裏去

clip_p_w_picpath042

clip_p_w_picpath044

Ganglia這個軟件我在我博客已經有了,這裏我就省略了。。。

歡迎你們多發表評論啊!!!!!!

你們能夠去http://down.51cto.com/765312這裏下載該文檔

相關文章
相關標籤/搜索