戰CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL中文版
2011-11-15 17:17:56| 分類:
rhel_監控 | 標籤:
|字型大小大中小 訂閱
Nagios網上的教程百度一下一大把,發現有些教程講法有點出入,估計有些都是拷貝亂貼亂飛,按有些說法去做,根本就做不下去,今天我親自實踐, 現場抓圖讓你看得清楚看得明白,以及中間遇到什麼問題,怎麼解決,都會分享給大家,抓圖再寫出來有點辛苦,關鍵能學到東西一切都是值得滴,Follow me~!
下載centOS 6.0然後安裝好系統,最好用vmware來做最好.
CentOS 6.0最新版國內:http://mirrors.163.com/centos/6.0/isos/i386/
自行裝好系統以後現在開始裝備安裝前的環境準備
我把命令貼出來,為了方便大家操作你只要跟著我把命令拷貝和粘貼即可,省去敲打命令的麻煩也避免失誤出錯(小技巧提醒:裝好centOS以後進入x-windows裡面裝個vmware tools就可以實現物理機和虛擬機器之間的拷貝和粘貼,方法很簡單這裡就不說了)
yum -y install httpd gettext mysql mysql-server mysql-devel php php-mysql php-pear
yum install php-mysql mysql perl mysql-server perl-DBI perl-DBD-MySQL httpd gcc glibc glibc-common gd gd-devel php
線上下載nagios程式和外掛程式
wget
http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz (現在最新版本的外掛程式)
wget
http://sourceforge.net/projects/nagios-cn/files/sourcecode/zh_CN%203.2.3/nagios-cn-3.2.3.tar.bz2/download(最新版為3.3.1,裝上去覺得介面變得不好看,順便就找了個中文版的)
使用者和組的準備
開始安裝主程式
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd
完成以後發現執行make all命令的時候出現以下錯誤
貌似CentOS下預設系統沒有安裝編譯器,安裝一下:
yum -y install gcc automake autoconf libtool make
繼續做make all操作,發現最後報錯了,
先執行make clean操作,然後再執行
./configure && make all 操作通過(問題分享)接著再執行以下命令即可,沒有出現任何狀況.
接下來安裝外掛程式
./configure --with-nagios-user=nagios --with-nagios-group=nagios
添加訪問頁面使用者nagiosadmin及密碼,這裡要記住此密碼不要忘記了.
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
接下來啟動相關服務
檢查設定檔是否正確
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[經驗分享:由於這一串檢查的命令很長,應用率也比較高,這裡我們可以自訂一個命令來代替這一長串的命令
編輯.bashrc這個檔案
在裡面用alias 來自訂一個命令來代替,這裡我用check
用source命令在當前bash環境下讀取並執行bashrc中的命令
這樣我們自訂的命令就生效了,以後只要輸入check就可以檢查nagios設定檔是否存在錯誤了,簡單方便.]
發現沒有警告和錯誤就表示通過了
現在就可以用http://serverip/nagios 方式訪問nagios web存取控制台了.
開了防火牆記得要開放80連接埠,要不然串連不到,或者直接關閉防火牆用命令service iptables stop關閉即可.
問題分享:進入頁面的時候點主機或其它選項的時候報此錯誤,後面百度一下原來是開啟了selinux強制存取控制安全模組所致
注意:如果你開啟了selinux 需要配置如下二步:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
這樣正宗的中文版出來了,總算邁出了成功的一小步,耐心堅持讓我們繼續吧~~!
[經驗分享:我這裡用虛擬機器做的,記得系統和網路相關參數配置好以後做一個系統的快照,配到這裡 nagios安裝成功以後我們再做一個快照,以免後面配亂出問題的時候我們可以返回到這裡重新再配置,方便快捷,記住做快照的時候先把虛擬機器關閉以後再 做,要不然快照出來的檔案大得嚇人,而關閉以後做快照檔案才幾百KB.]
ok下面我們接著來
[nrpe_plugins指標採集程式主要是用來分析nrpe用戶端的plugin指令碼採集效能指 標資料。目前實現的有cpu、memory、disk、buffer、singleprocess、oracle、sybase等方面的效能指標的分析, 這個外掛程式需要分別安裝在主控端和被控端上,這個外掛程式需要openssl的支援,沒有就直接線上安裝一下(yum install openssl-devel)所以還需在nagios主機和被控端安裝,感覺挺麻煩,沒辦法它需要咱們就跟著做哈.]
先把nrpe下載下來先.
wget
http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
解壓檔案
編譯安裝
完成以後沒有出錯就可以看到以下產生的檔案了
二:配置PNP
[PNP是一個基於php和perl,用rrdtool將nagios採集的資料繪製圖表的工具,所以安裝pnp之前必須先安裝php perl and rrdtool這裡用yum直接來安裝rrdtool,單獨下載安裝有很多依存關係,挺麻煩.]
我這裡找到最新的版本是0.6.15
wget
http://sourceforge.net/projects/pnp4nagios/files/PNP-0.6/pnp4nagios-0.6.15.tar.gz/download
編譯的時候報錯了.
yum install perl-Time-HiRes
繼續編譯發現有個perl modules沒有發現,好像提示用來加速什麼的,暫時不管它了
根據提示需要繼續
然後把相關尾碼帶sample檔案變更成無sample尾碼
配置Nagios來啟用PNP
enable_environment_macros=1預設是開啟了的
pnp4nagios有很多種工作模式,這裡我們選用同步模式,想選其它模式可以看說明都有詳細配置教程(不同模式配置不同)
這裡我們按說明的設定方法來做
[這裡先把pnp4nagios執行資料收集的檔案拷貝到nagios的libexec下,方便統一命令的執行路徑.]
cp /usr/local/pnp4nagios/libexec/process_perfdata.pl /usr/local/nagios/libexec/
然後在commands.cfg裡面加入如下(這裡是同步模式設定方法)
#process-host-perfdata' command definition
define command{
command_name process-host-perfdata
command_line $USER1$/process_perfdata.pl -d HOSTPERFDATA
}
#process-service-perfdata' command definition
define command{
command_name process-service-perfdata
command_line $USER1$/process_perfdata.pl
}
然後添加小太陽模版,鑲嵌在nagios頁面上
[這裡有兩種查看圖的方法,第一種方法是你當太陽的表徵圖的時候會在新視窗中開啟圖形查看,第二種方法是你只需要把滑鼠移動到太陽表徵圖上面就會自動彈出圖形出來,以下兩種方法你可以根據自己喜好選其中一種即可]
第一種方法在templates.cfg裡面加入如下
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
第二種方法按照說明加入如下
拷貝status-header.ssi到/usr/local/nagios/share/ssi/目錄下面來(這一步很重要,要不然移動到太陽標記上出不來圖)
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
第二種方法最終
為目標主機表徵圖旁邊添加一個小太陽標記
為相關服務添加一個小太陽標記
先做一下pnp4nagios環境測試,發現php-gd模組無效,用命令yum install php-gd安裝成功以後還是不行,後來經老男孩指點用yum install php* -y安裝然後重啟系統成功通過,
按要求重新命名install.php
做好相關配置以後請用命令重啟一下nagios的服務
ok,到此總算配置好了PNP,配置了這麼多有點累了,但我們還要繼續,配置本章最後一個Nagios WEB管理工具叫NagiosQL(註:還有同樣一個Nagios WEB管理工具叫Nconf)
wget
http://sourceforge.net/projects/nagiosql/files/nagiosql/NagiosQL%203.1.1/nagiosql_311.tar.gz/download
NagiosQL是一個WEB管理工具,只要把其放到下Apache即可。因為這裡它要和Nagios整合到一起,為了方便管理,把其放在Nagios目錄下
建立nagiosQL匯出nagios設定檔的目錄,並修改許可權
建目錄和改許可權
mkdir -p /etc/nagiosql/{hosts,services,backup/{,hosts,services},import}
chown -R apache:nagios /etc/nagiosql/
chmod -R 755 /etc/nagiosql
chmod 777 /usr/local/nagios/nagiosql/config
Nagios相關檔案許可權的設定
chown nagios:apache /usr/local/nagios/etc
chown nagios:apache /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
chown nagios:apache /usr/local/nagios/etc/*
chmod 664 /usr/local/nagios/etc/{nagios.cfg,cgi.cfg}
chmod 775 /usr/local/nagios/etc
設定nagios二進位檔案的許可權,以便其能夠通過Web程式執行
chown nagios:apache /usr/local/nagios/bin/nagios
chmod 750 /usr/local/nagios/bin/nagios
chown -R apache.nagios /usr/local/nagios/var/spool/
chown nagios:apache /usr/local/nagios/var/rw/nagios.cmd
chmod 660 /usr/local/nagios/var/rw/nagios.cmd
為apache添加nagiosQL虛擬目錄
Alias /nagiosQL "/usr/local/nagios/nagiosql"
<Directory "/usr/local/nagios/nagiosql">
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
重新載入httpd服務和啟動mysqld服務
建立nagiosql安裝檔案
touch /usr/local/nagios/nagiosql/install/ENABLE_INSTALLER
訪問http://ip/nagiosQL進行安裝
問題分享:我在訪問的時候提示沒有許可權訪問,搞了半天原來是SElinux惹的禍,修改SELinux的即時運行模式,setenforce 0 (設定SELinux 成為permissive模式)這個只是臨時解決方案,優點是不需重啟系統生效,但如果要徹底禁用SELinux 需要在/etc/sysconfig/selinux中設定參數selinux=0
選取中文然後點開始安裝按鈕
測試所需環境通過,直接按下一步即可
刪除安裝目錄,這裡使用改許可權:chmod 000 /usr/local/nagios/nagiosql/install
到這裡安裝步驟總算結束了,下面我們還需要進行相關配置工作.
管理-域-localhost---點“修改”
按更改相應的路徑即可
工具-匯入資料 右邊會列出一些設定檔,選擇匯入即可。
匯入只是把設定檔內容匯入到Mysql資料庫,而使用其設定檔時,是一個個cfg檔案,所以下面要進行寫入過程
工具-nagios控制-寫入檢測資料-寫入其他資料
檢查設定檔成功
寫入之後就可以看到相應的cfg檔案了,查看寫入是否成功,由下面的輸出可以看出寫入是成功滴.
修改nagios的設定檔,將原有以cfg_file開頭項全部注釋掉,加入上面新寫入的設定檔
注釋掉
加入新的設定檔路徑
cfg_dir=/etc/nagiosql/hosts/
cfg_dir=/etc/nagiosql/services/
cfg_file=/etc/nagiosql/commands.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/contacttemplates.cfg
cfg_file=/etc/nagiosql/hostdependencies.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/servicedependencies.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/timeperiods.cfg
檢查nagios的設定檔是否有問題,然後生重啟nagios服務,至此整個搭建過程終於完成了,下一節將講解重頭戲,怎麼用nagiosQL添加需要監控的主機以及啟用nagios警示機制,待續~~!
監控Windows主機
nagios監控windows系統主機有三種實現方式:SNMP,NSClient++,NRPE,後面兩種方式都需要在windows上安裝agent,本文檔只介紹使用NSClient++方式來監控Windows
被監控機Windows主機外掛程式安裝和配置
:
http://nsclient.org/nscp/downloads
這裡我用到的是0.3.8.zip版本,發現用0.3.9最新版本在windows server2003 sp1相容不佳,啟動不起來
解壓出來然後執行安裝命令
這裡前面需要加-noboot參數進行安裝,否則也會出問題
解壓出來編輯nsc.ini,把前面的分號去掉如所示
在settings部分加入允許主機訪問的伺服器IP地址,這裡要對號入座,輸入你的nagios伺服器的IP即可
在nsclient部分開啟NSClinet的預設監聽連接埠12489以及允許訪問原生主機名稱,編輯完以後儲存退出.
再用命令netstat –an 查看確認連接埠服務已經運行.
再到伺服器運行./check_nrpe –H 要監控伺服器的主機IP地址,看到如所示表示通過沒有問題
用NagiosQL來添加要監控的主機
監督-HOST-添加
設定主機名稱、地址、選擇模板
然後添加需要的其它服務,先添加C盤的使用方式,監督-服務-添加
總體設定狀況請按如所示操作完成
上面只是講解定義一個服務的方法,其實裡面都已經定義好了相關要監控的服務了,所以我們可以直接調用這些服務了,想學習更多,可以點修改看看每項是怎麼設定的.(想監控什麼東西要靠自己多學習然後舉一反三來自訂出自己想要的服務來)
為當前主機添加上面定義好的服務,(再返回到當前以定義好的主機上面來)選擇"服務選項"-選擇定義好的需要監控服務,其實在定義服務的時候也可以選擇主機的,也可以在主機這裡選擇相關服務
記得需要在這裡選寫入配置才行,然後重啟Nagios服務即可
從上到下執行一次
過一段時間就可以在Nagios介面上看到如下介面圖
在圖形監控介面點相應服務選項則出相應的圖形監控介面.
為伺服器加美化標識表徵圖
如所示若裝置是路由器我們就在它後面加一個圖由器的表徵圖,是服務就加伺服器的表徵圖,一眼就能區別這個裝置屬於什麼類型,方便管理區別,
[通過閱讀官方文檔,得知在host定義中有四個變數可選,用於指定每一個host的表徵圖檔案名稱,預設的儲存位置是/usr/local/nagios/share/images/logos
icon_image: 可以使用GIF, PNG,或者是JPG檔案,推薦映像尺寸為40x40
icon_image_alt: 即為HTML文法中關於image元素的ALT屬性值
vrml_image: Nagios提供使用VRML語言繪製三維映像功能,這裡不要使用透明圖片(PNG, GIF),最好使用JPG
statusmap_image: 提