close

這回來談 Nagios 上的應用
假設想利用Nagios去監控其它主機的狀態 ~ (這也是目前最常用的情境)
總不可能每台主機都安裝完整的Nagios…這樣數量一多…管理跟監控就不是那麼簡單的事
還好 Nagios 早已存在這種架構~ 底下來看實作的部份nagios_1_01

 

(圖截自官網)

此處說明一下圖…

Monitoring Host 為負責監控的主機
Remote Linux/Unix Host 為被監控的Unix-Like主機

  • 可以將本地資源及服務的狀態經由NRPE傳回(這叫Direct Check)
  • 或再透過這台…檢查另一台的服務(這叫Indirect Checks),在這種情況下此台主機上的NRPE就是一種代理(Proxy)

然而監控與受監控主機可藉由SSL加密來傳輸資料~圖說明到這兒結束

– Nagios will execute the check_nrpe plugin and tell it what service needs to be checked
– The check_nrpe plugin contacts the NRPE daemon on the remote host over an (optionally) SSL-protected connection
– The NRPE daemon runs the appropriate Nagios plugin to check the service or resource
– The results from the service check are passed from the NRPE daemon back to the check_nrpe plugin, which then returns the check results to the Nagios process.

以上四行非常重要(截至官網說明文件),請先看懂,對照著圖看~

 

光說不練不行…~ 先說明情境~

某A是可憐網管工程師,總是從事吃力不討好的事,在公司環境中利用有限的資源架了一台監控主機OpenSuSE11.1_32Bits(代號MH1)
然後想要監控另一台Linux主機OpenSuSE11.1_32Bits(代號RH1)~於是開始動工…熬夜K完了官網上的說明文件後…得出一些心得

  • Root access on the remote Linux/Unix host
  • Access to the nagios user account on the monitoring host

這說明了兩台主機間需要使用何權限~

 

MH1's_IP_Addr(192.168.148.129)
RH1's_IP_Addr(192.168.148.130)

接在沒有隔開網段的設備上~

仍會以最簡單的方式來實作~ >.<
設定檔位置如果不同,請自行查找

 

@RH1(192.168.148.130)

#zypper install nagios-plugins
系統安裝光碟片中有提供…也可rpm進行安裝

#zypper install nagios-nrpe
此處裝完後…會發現系統上多出一個名叫nagios的使用者、與名叫nagios的群組

#zypper install xinetd
這個套件很清楚,其實就是透過xinetd來管理這個NRPE服務…
官網上文件提到可以用inetd,xinetd…或者透過其它方式(沒法透過Tcp_wrappers來做限制,不安全)

#rpm -qa | grep nagios
nagios-nrpe

nagios-plugins
nagios-nrpe-server
nagios-nrpe-client

得知RH1安裝了套件~

接下來

#vi /etc/xinetd.d/nagios-nrpe
only_from = 127.0.0.1 <MH1's_IP_Addr>
disable = no

等號左右邊空一格,每個IP間也要空一格,這是xinetd的設定檔格式規範

ex:

only_from = 127.0.0.1 192.168.148.129
也就是說從192.168.148.129(MH1)可以連到這兒~


#grep nrpe /etc/services
nrpe  5666/tcp # nagios nrpe

如果/etc/services裡面沒這行…請自行加入…不然xinetd會啟動失敗

 

測試時間到…

#/etc/init.d/xinetd restart

#netstat -at
tcp  0  0 *:nrpe  *:*  LISTEN

成功打開TCP 5666 port ~

接下來用check_nrpe連自己…如果成功…會回傳NRPE的版本代號,並檢查自己的一些東西~
#
/usr/lib/nagios/plugins/check_nrpe -H localhost

NRPE v2.12

#/usr/lib/nagios/plugins/check_nrpe -H localhost -c check_users
#
/usr/lib/nagios/plugins/check_nrpe -H localhost
-c check_load
#
/usr/lib/nagios/plugins/check_nrpe -H localhost
-c check_hda1
#
/usr/lib/nagios/plugins/check_nrpe -H localhost
-c check_total_procs
#
/usr/lib/nagios/plugins/check_nrpe -H localhost
-c check_zombie_procs

如果check_hda1錯誤是因為RH1並沒有這項裝置
#
vi /etc/nagios/nrpe.cfg

Line 201 修正為 command[check_sda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
#
/usr/lib/nagios/plugins/check_nrpe -H localhost
-c check_sda1

修正Firewall…加入TCP 5666的存取控制…自己弄~

 

@MH1(192.168.148.129)

#zypper install nagios-nrpe-server (這兒應該不用裝這個套件…但需要的check_nrpe由這提供)
#
zypper install nagios-nrpe-client (提供更多的check_XXXX…裝起來備用…可以當一般指令用)

還有…別忘了…基本的nagios monitor server架設所需要的套件也要裝好~帳密也要弄好…請參考

nagios (一)簡易架設

 

接下來比較麻煩一些…盡可能解釋清楚~

#vi /etc/nagios/objects/localhost.cfg

################################################################

171 define host{
#定義一筆host

172         use linux-server
#使用繼承至 templates.cfg的linux-server定義,該定義中的register選項表明這是template

#register   0   ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
\
173         host_name remotehost
#定義主機名稱,會顯示在nagios中的名稱

174         alias OpenSuse 11.1
#定義詳細主機名稱,會顯示在nagios中的完整名稱

175         address 192.168.148.130
#定義受監控主機的IP_ADDR

176         }
#定義結束

177 # The following service will monitor the CPU load on the remote host.
178 define service{
179         use generic-service
#使用繼承至 templates.cfg的generic-service定義

180         host_name remotehost
#使用在那個Host上,名稱相同於host定義的host_name

181         service_description CPU Load
#描述一下名稱,會出現在nagios中

182         check_command check_nrpe!check_load
#這行最重要指明使用check_nrpe,執行check_load
#可以查看/etc/nagios/nrge.cfg中的
#command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20

183 }

184 # The following service will monitor the the number of currently logged in users on the remote host.
185 define service{
186         use generic-service
187         host_name remotehost
188         service_description Current Users
189         check_command check_nrpe!check_users
190         }
191 #  The following service will monitor the free drive space on /dev/hda1 on the remote host.

192 define service{
193         use generic-service
194         host_name remotehost
195         service_description /dev/sda1 Free Space
196         check_command check_nrpe!check_sda1
197         }
198 # The following service will monitor the total number of processes on the remote host.
199 define service{
200         use generic-service
201         host_name remotehost
202         service_description Total Processes
203         check_command check_nrpe!check_total_procs
204         }
205
206 # The following service will monitor the number of zombie processes on the remote host.

207 define service{
208         use generic-service
209         host_name remotehost
210         service_description Zombie Processes
211         check_command check_nrpe!check_zombie_procs
212         }
213 ##############################################################

重新啟動Nagios…
#
/etc/init.d/nagios restart

 

用Browser連入 http://192.168.148.129/nagios

nagios_1_02

可以看到囉@RH1的五項狀態(cpu load,on line user,sda1 space,total process,zombie process)
如果要加其它的也可以

但@RH1當中必須要有plugin 

#cd /usr/lib/nagios/plugins/
#
ls
#
less /etc/nagios/command.cfg
(參考上面的中的用法,或者文件)
#less /etc/nagios/nrpe.cfg

ex:
此處說明在@RH1上啟動Pure-ftpd服務(自己裝),並在@MH1監控@RH1上的
Pure-ftpd服務

@MH1
#
vi /etc/nagios/objects/localhost.cfg
加入

define service{
      use generic-service
      host_name remotehost
      service_description Pure-ftpd Service
      check_command check_nrpe!check_ftp
      }

#/etc/init.d/nagios restart

@RH1
#vi /etc/nagios/nrpe.cfg
加入
command[check_ftp]=/usr/lib/nagios/plugins/check_ftp -H 192.168.148.130

#/etc/init.d/xinetd restart

 

nagios_1_03

註:
@MH1只要啟動nagios服務
@RH1只要啟動nrpe服務(此處交給xinetd來管)
NRPE只能運作在Unix架構的被監控主機上

下篇再來說監控M$ Windows如何發展吧~~ >.<

 

 


 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 creative1223 的頭像
    creative1223

    小蘇的世界

    creative1223 發表在 痞客邦 留言(0) 人氣()