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

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

沙龍的講座內容:

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

第一款監控軟件Mrtg

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

clip_image002

搭建步驟:

一.前提條件:

系統必須已經安裝以下軟件,這些軟件都是光盤裏自帶的:

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

二.安裝mrtg。大家用源碼包或者rpm包都可以,在這裏我選擇用rpm包了,在rhel4以後的版本里面已經把mrtg集成進去了,直接用光盤的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

掛在光盤到/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_image004

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

第二款監控軟件cacti

先看一下cacti的原理圖:

clip_image012

clip_image014

下面看一下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_image016

clip_image018

clip_image019

如何添加設備

添加設備:ConsoleàDevicesàAdd

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

clip_image021

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

生成圖像

添加設備:ConsoleàNewGraphs

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

clip_image023

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

clip_image025

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

*/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_image027

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

clip_image029

Cacti-後續擴展,我會繼續更新cacti監控裏的東西,大家可以多關注我的博客:

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

clip_image030

clip_image032

clip_image034

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

第三款監控軟件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_image036

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

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

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

實現飛信報警

安裝飛信:

把飛信安裝到/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 [email protected],[email protected]

* pager 13671324197

* }

* define contactgroup{

* contactgroup_name admins

* alias Nagios Administrators

* members nagiosadmin

* }

後續擴展,後續我會吧一下nagios的高級應用加到博客裏去

clip_image042

clip_image044

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

歡迎大家多發表評論啊!!!!!!

大家可以去http://down.51cto.com/765312這裏下載該文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章