Nagios配置文件的結(jié)構(gòu)
對(duì)于Nagios配置文件結(jié)構(gòu)的一些想法- [Nagios]:
最近工作著實(shí)很忙..已經(jīng)很久沒(méi)有來(lái)寫(xiě)博客了..今天在一陣風(fēng)大哥的提醒下我才想起我還有這么一個(gè)博客..并且發(fā)現(xiàn)自己的文章被轉(zhuǎn)載了..還沒(méi)注明出處- -|||..言歸正傳..
Nagios的配置文件定義的靈活度和自由度是非常高的,為什么這么說(shuō)呢,大家可以做一個(gè)測(cè)試,就是把nagios/etc/objects/下的所有的配置文件全部整合到一起,例如這樣做:
- # 所在目錄 /usr/local/nagios/etc/objects
- # cat *.cfg > temp.cfg
然后將nagios的主配置文件 nagios.cfg中的如下配置注釋掉:
- #cfg_file=/usr/local/nagios/etc/objects/commands.cfg
- #cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
- #cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
- #cfg_file=/usr/local/nagios/etc/objects/templates.cfg
之后添加如下一行:
- cfg_file=/usr/local/nagios/etc/objects/temp.cfg
保存&退出
檢查nagios配置文件的邏輯關(guān)系是否有誤:
- #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
返回結(jié)果必然是:
- Total Warnings: 0
- Total Errors: 0
為什么會(huì)這樣呢?
Nagios對(duì)于objects目錄下的配置文件名稱(chēng)沒(méi)有明確的命名規(guī)定,只要文件中的配置定義語(yǔ)法沒(méi)有問(wèn)題就可以了。
那么對(duì)于這種非常靈活的定義方式,我們可以更加靈活的去運(yùn)用它。
最近隨著需要監(jiān)控的服務(wù)器越來(lái)越多,對(duì)于nagios配置文件的修改及維護(hù)變得越來(lái)越麻煩,原因如下:
按照網(wǎng)上很多"教程"的方法來(lái)定義配置文件,所有關(guān)于hots的定義全部放到了hosts.cfg中,服務(wù)的定義全部放倒services.cfg中。在服務(wù)器數(shù)量變得越來(lái)越多時(shí),這兩個(gè)配置文件也會(huì)變得越來(lái)越大,增刪主機(jī)服務(wù)也會(huì)變得越來(lái)越麻煩。在經(jīng)過(guò)思考和試驗(yàn)后,我修改了我的nagios主機(jī)和服務(wù)配置文件的定義方式:就是以每主機(jī)的方式來(lái)定義與這臺(tái)主機(jī)所相關(guān)的任何配置。舉個(gè)例子:
創(chuàng)建一個(gè)配置文件:10_0_0_1.cfg (以IP地址命名)
其中的定義如下:
- ################ host #################
- define host{
- host_name Autonomy
- alias Autonomy
- address 10.0.0.1
- check_command check-host-alive
- max_check_attempts 5
- check_period 24x7
- contact_groups admins
- }
- ################ services ################
- define service{
- host_name Autonomy
- service_description Check-alive
- check_command check-host-alive
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- define service{
- host_name Autonomy
- service_description IDOL_ACI_Port_9000
- check_command check_tcp!9000
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- define service{
- host_name Autonomy
- service_description IDOL_Index_Port_9001
- check_command check_tcp!9001
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- define service{
- host_name Autonomy
- service_description IDOL_Service_Port_9002
- check_command check_tcp!9002
- max_check_attempts 10
- normal_check_interval 3
- retry_check_interval 2
- check_period 24x7
- notification_period 24x7
- contact_groups admins
- }
- #定義限制告警數(shù)
- define hostescalation{
- host_name Autonomy
- first_notification 4
- last_notification 0
- notification_interval 30
- contact_groups sysadmin
- }
- define serviceescalation{
- host_name Autonomy
- service_description IDOL_ACI_Port_9000,IDOL_Index_Port_9001,IDOL_Service_Port_9002
- first_notification 4
- last_notification 0
- notification_interval 30
- contact_groups sysadmin
- }
保存&退出
然后在nagios.cfg中添加:
- cfg_file=/usr/local/nagios/etc/objects/10_0_0_1.cfg
檢查nagios配置文件的邏輯關(guān)系是否有誤:
- #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果語(yǔ)法沒(méi)有錯(cuò)誤肯定是報(bào)錯(cuò)的,再以這種方式將其他主機(jī)進(jìn)行定義后即可。
使用這種方式來(lái)配置nagios我個(gè)人覺(jué)得方便了很多,畢竟有些服務(wù)器上面運(yùn)行的服務(wù)是一樣的,只要將配置文件cp一份修改IP地址即可。
不能說(shuō)這種配置一定就比常規(guī)的配置方法好用,適合就是***的,希望能夠?qū)Υ蠹矣行椭?/p>
【編輯推薦】