使用Nagios監(jiān)控遠(yuǎn)程主機(jī)系統(tǒng)
學(xué)習(xí)使用Nagios軟件來監(jiān)控遠(yuǎn)程主機(jī)系統(tǒng)
Nagios是一個(gè)允許用戶監(jiān)控遠(yuǎn)程系統(tǒng)可用性的軟件。用戶可從官網(wǎng)上下載這個(gè)程序,此程序也可由Linux廠商提供。
Nagios這個(gè)程序廣泛使用配置文件,這些文件主要位于/etc/nagios.中。主要配置文件是/etc/nagios/nagios.cfg,在其它配置選項(xiàng)中,并通過使用cfg_file命令指向了其它配置文件:
- cfg_file=/etc/nagios/contacts.cfg
- cfg_file=/etc/hosts.cfg
- cfg_file=/etc/services.cfg
以上的文件進(jìn)一步配置并改善了Nagios的工作方式。例如,contacts.cfg可包含:
- define contact
- {
- contact_name admin
- alias admin
- service_notification_period 24x7
- host_notification_period 24x7
- service_notification_options c,r
- host_notification_options d,r
- service_notification_commands notify-by-email
- host_notification_commands host-notify-by-email
- email admin@mysite.com
- }
這些會(huì)定義什么人會(huì)接收警告、接收什么警告、在什么時(shí)間接收警告。這樣你就會(huì)看出遠(yuǎn)程管理在每周七天、每天24小時(shí)可用,接受主機(jī)的警告信息,還可以接收主機(jī)服務(wù)的“失效”/“恢復(fù)”通知。
hosts.cfg文件包含著對(duì)被監(jiān)控系統(tǒng)的主機(jī)定義, 一般來說,這個(gè)定義會(huì)是如下這個(gè)樣子:
- define host
- {
- name linux-server
- use generic-host
- check_period 24x7
- max_check_attempts 10
- check_command check-host-alive
- notification_period workhours
- notification_interval 120
- notification_options d,u,r
- contact_groups admins
- register 0
- }
- define host{
- use linux-server
- host_name surtr
- alias surtr.mysite.com
- address 127.0.0.1
- }
第一個(gè)定義是一個(gè)模版。其它的定義可以使用這個(gè)模版,并在其基礎(chǔ)上進(jìn)步構(gòu)建,從而防止了無用的信息重復(fù)。第二個(gè)定義是實(shí)際的主機(jī),用主機(jī)名、別名和IP地址提供了使用什么樣的模版(對(duì)Linux 服務(wù)器而言)。當(dāng)然,用戶可以定義所期望的主機(jī)數(shù)量,并可以根據(jù)自己的需要定義一定數(shù)量模版。
services.cfg文件包含著在監(jiān)控主機(jī)時(shí)所使用的服務(wù)定義。例如,如下項(xiàng)目代碼可以檢查POP3服務(wù)器是否可用:
- define service{
- use local-service
- hostgroup_name remote
- service_description POP3 Availability
- check_command check_pop
- }
第一個(gè)“use”命令指明了一個(gè)基于構(gòu)建的模版。hostgroup_name定義了哪一個(gè)主機(jī)應(yīng)該使用這項(xiàng)服務(wù)(在其它的文件中定義,如hostgroups.cfg)。而check_command命令指明要使用的腳本或命令(插件):
hostgroups.cfg文件可以包含如下內(nèi)容:
- define hostgroup{
- hostgroup_name remote
- alias Remote Servers
- members hades,titan
- }
此內(nèi)容可成為對(duì)遠(yuǎn)程主機(jī)組的定義,用于前面所列示的POP3檢查列表中。 這種情況下,兩臺(tái)主機(jī)(hades and titan)被定義為包含在這個(gè)組中。你可以擁有任何數(shù)量的主機(jī)組,其中可有任何數(shù)量的主機(jī),而且主機(jī)可以是多個(gè)主機(jī)組的成員。
最后,commands.cfg文件可包含要使用的實(shí)際命令或插件:
- define command{
- command_name check_pop
- command_line $USER1$/check_pop -H $HOSTADDRESS$
- }
這就定義了check_pop命令,使用了以前定義在services.cfg.中的POP3檢查服務(wù)。此處定義的check_pop程序是一個(gè)插件,通常在/usr/libexec/nagios中可用(或者廠商安裝插件的任何地方)。這是一個(gè)返回狀態(tài)信息的簡單程序:
- #/usr/local/nagios/libexec/check_pop hades.mysite.com
- POP OK - 0.025 second response time on port 110 [+OK Hello there.]
- |time=0.024849s;0.000000;0.000000;0.000000;10.000000
Nagios自身會(huì)解釋這些響應(yīng),用以判斷服務(wù)是否啟動(dòng)并正在運(yùn)行。因?yàn)檩敵鍪窍喈?dāng)簡單的,你可以使用shell過程、Perl或其它任何語言編寫自己的插件。
本文僅僅簡單介紹了Nagios的使用。你可以使用Web介面查看Nagios的主機(jī)報(bào)告和趨向信息,而且有大量不同的可以用于檢查主機(jī)可用時(shí)間和有效性的預(yù)存插件。一些服務(wù)項(xiàng)目,如LDAP,SSH,F(xiàn)TP等都是十分實(shí)用的。 Nagios在設(shè)置上可能會(huì)比較耗時(shí),但是最終的結(jié)果卻是值得的,特別是如果你管理著幾個(gè)不同的系統(tǒng),并想及早發(fā)現(xiàn)一些問題的警告信息或潛在的問題的時(shí)候,Nagios是很實(shí)用的。使用Nagios監(jiān)控遠(yuǎn)程主機(jī)系統(tǒng)就講述到這里了。您可以使用短信提醒Nagios飛信linux短信報(bào)警腳本配置。
【編輯推薦】