设为首页 收藏本站
查看: 1098|回复: 0

Nagios基本配置的详细攻略(二) (转载)

[复制链接]

尚未签到

发表于 2017-4-20 09:58:38 | 显示全部楼层 |阅读模式
  在安装完Nagios主程序以及Nagios-plugins插件程序之后的配置,最重要的是Nagios的功能定义配置了,它真的可以独立一章出来讲,虽然东西较多,但其实并不难。

一.完成Nagios安装完后的基本配置:
1.处理Nagios功能定义配置文件
[iyunv@KCentOS5C ~]# cp /usr/local/nagios/etc/localhost.cfg-sample /usr/local/nagios/etc/localhost.cfg

2.配置Nagios功能定义配置文件:
[iyunv@KCentOS5C ~]# vi /usr/local/nagios/etc/localhost.cfg
----------------------------------------------------------------------------------
###############################################################################
# LOCALHOST.CFG - SAMPLE OBJECT CONFIG FILE FOR MONITORING THIS MACHINE
#
# Last Modified: 11-27-2006
#
# NOTE: This config file is intended to servce as an *extremely* simple
#  example of how you can create your object configuration file(s).
#
###############################################################################


第一部分:时间定义段
###############################################################################
###############################################################################
#
# TIME PERIODS
#
###############################################################################
###############################################################################
# This defines a timeperiod where all times are valid for checks,
# notifications, etc.  The classic "24x7" support nightmare. :-)
在时间定义段里,可以自己定义好几个指定的时间段并给与命名。Nagios应该在什么时间内做什么工作,对于Nagios自己来说并不是直接引用时间参数,而是引用用户自己定义的时间段的命名,Nagios只会参考和引用用户定义过的时间段名。

define timeperiod{
使用define定义关键字timepriod表示该定义段内定义的是时间段。段内的定义请使用两个大括号来包括。段内的定义项一行一项,时间格式请按照以下。另外,如果要定义多个时间段的话,那么必须要写多个define timeperiod {} 段。

timeperiod_name all_days
通过timeperiod_name来指定时间段名。这里我定义了一个时间段名为all_days“全天”,然后时间设定从周一到周日全天24小时。

alias  24 Hours A Day, 7 Days A Week
通过alias来指定时间段的说明信息。

sunday  00:00-24:00
monday  00:00-24:00
tuesday  00:00-24:00
wednesday  00:00-24:00
thursday  00:00-24:00
friday  00:00-24:00
saturday  00:00-24:00
以上为时间格式。前面是星期名,后面是24小时制的时间格式。
}


# 'workhours' timeperiod definition
这个是Nagios默认定义的一个时间段,名字叫做workhours“工作时段”,定义的时间也是周一到周五的早上9点到晚上的17点。多样化的时间段可以丰富Nagios功能配置的灵活性。当Nagios在进行只在工作时间才有必要进行的操作而休息时间没有这种必要的时候,就可以使用该时间段进行配置参与。

define timeperiod{
timeperiod_name workhours
alias  "Normal" Working Hours
monday  09:00-17:00
tuesday  09:00-17:00
wednesday 09:00-17:00
thursday 09:00-17:00
friday  09:00-17:00
}


# 'nonworkhours' timeperiod definition
这个也是Nagios默认定义的一个时间段,名字叫做nonworkhours“非工作时段”,定义的时间为周一到周五的晚上17到早上9点以及双休日全天。当Nagios在进行只有在休息时间才进行的操作而在工作时间内不进行的情况下,就可以使用该时间段进行配置参与。

define timeperiod{
timeperiod_name nonworkhours
alias  Non-Work Hours
sunday  00:00-24:00
monday  00:00-09:00,17:00-24:00
tuesday  00:00-09:00,17:00-24:00
wednesday 00:00-09:00,17:00-24:00
thursday 00:00-09:00,17:00-24:00
friday  00:00-09:00,17:00-24:00
saturday 00:00-24:00
}


# 'none' timeperiod definition
这个是Nagios默认的最后一个时间段,名字叫做none“无时间”,也没有定义的时间段。还不是很清楚这个时间段会用在什么情况呢,也许一些永远都不希望Nagios执行的操作会用此时间段参与配置吧?哈。

define timeperiod{
timeperiod_name none
alias  No Time Is A Good Time
}



第二部分:命令定义段
###############################################################################
###############################################################################
#
# COMMANDS
#
###############################################################################
###############################################################################
# NOTE: Sample command definitions can now be found in the sample commands.cfg
#  file
这些命令定义被独立归在了commands.cfg文件中了,这里先不多讲了,放到后面。



第三部分:联系人定义段
###############################################################################
###############################################################################
#
# CONTACTS
#
###############################################################################
###############################################################################
# In this simple config file, a single contact will receive all alerts.
# This assumes that you have an account (or email alias) called
# "nagios-admin" on the local host.
在Nagios的诸多工作中都会涉及到联系人。当发生监测超出阀值,或者产程告警等情况时,Nagios都会以Email甚至更多方式来告知指定的联系人。联系人应该是系统当中存在的用户或者是Email的别名用户,以便于接收到重要的消息通知。

define contact{
使用define定义关键字contact表示该定义段内定义的是联系人段。段内的定义请使用两个大括号来包括。段内的定义项一行一项。另外,如果要定义多个联系人段的话,那么必须要写多个define contact {} 段。

contact_name  nagios-admin
通过contact_name来指定联系人名,这个名应该是系统内用户名或者是Email用户别名(推荐后者)。同时,这个联系人名也将会是Nagios认可的注册联系人名。(这里我偷懒,在系统中直接useradd添加了nagios-admin这个用户)

alias  Nagios Admin
通过alias来指定该联系人的说明信息。

service_notification_period  all_days
设定服务事件通知时间段,后面指定时间段名。请注意,这里后面跟的参数为定义过的timeperiods的时间段名。

host_notification_period  all_days
设定主机事件通知时间段,后面指定时间段名。请注意,这里后面跟的参数为定义过的timeperiods的时间段名。

service_notification_options  w,u,c,r
设定触发服务事件通知的选项,这里后面跟上一些级别类型参数:
w代表warning告警;
u代表unknown未知;
c代表critical严重;
r代表recover恢复;
d代表down奔溃。

host_notification_options  d,r
设定触发主机事件通知的选项,后面也跟上级别类型参数。

service_notification_commands  notify-by-email
设定服务事件通知的命令,该命令的具体内容在command.cfg里定义。

host_notification_commands  host-notify-by-email
设定主机时间通知的命令,该命令的具体内容在command.cfg里定义。

email  nagios-admin@localhost
设定通知邮件的联系人的Email地址。
}



第四部分:联系人组定义段
###############################################################################
###############################################################################
#
# CONTACT GROUPS
#
###############################################################################
###############################################################################
# We only have one contact in this simple configuration file, so there is
# no need to create more than one contact group.
联系人组就是将若干联系人聚合起来的组。

define contactgroup{
使用define定义关键字contactgroup表示该定义段内定义的是联系人组段。段内的定义请使用两个大括号来包括。段内的定义项一行一项。另外,如果要定义多个联系人组段的话,那么必须要写多个define contactgroup {} 段。

contactgroup_name  admins
通过contactgroup_name来指定联系人组名。

alias  Nagios Administrators
通过alias来指定该联系人组名的简要信息。

members  nagios-admin
通过members来指定组成员,组成员必须是contect里定义过的联系人。
}



第五部分:主机定义段
###############################################################################
###############################################################################
#
# HOSTS
#
###############################################################################
###############################################################################
主机定义段定义了Nagios监测的主机对象,Nagios只监测的在主机定义段里定义过的主机名。主机定义段里面有个一个十分有趣的地方,就是他能够定义主机类,在主机类当中定义一些公共属性,然后定义个别主机的时候并不需要把每个属性都一一定义出来,而只需要引用和继承之前的主机类,就能够继承主机类当中的公共属性,有趣的是类还能继承类。事先多定义几个不同的类,在大规模部署监测主机的时候效率将特别高。

## Generic host definition template - This is NOT a real host, just a template!
默认Nagios就定义了通用主机的大类generic-host。在这个类中定义了无论什么系统和条件的所有主机都会共有的一些属性。

define host{
使用define定义关键字host表示该定义段内定义的是主机段,也可以是主机类。段内的定义请使用两个大括号来包括。段内的定义项一行一项。另外,如果要定义多个主机段的话,那么必须要写多个define host {} 段。

name  generic-host  ; The name of this host template
通过name来指定主机类名,这里的generic-host就是一个主机类名。

notifications_enabled  1  ; Host notifications are enabled
设定启用主机事件通知

event_handler_enabled  1  ; Host event handler is enabled
设定启用主机事件处理程序

flap_detection_enabled  1  ; Flap detection is enabled
设定启用状态抖动监测。

failure_prediction_enabled  1  ; Failure prediction is enabled
设定启用故障预测

process_perf_data  1  ; Process performance data
设定启用进程性能数据记录

retain_status_information  1  ; Retain status information across program restarts
设定启用状态信息保存功能。当Nagios重新启动的时候不会是空数据,而是先显示上次离线时最后保留的状态数据。

retain_nonstatus_information  1  ; Retain non-status information across program restarts
设定启用非状态信息保存功能。当Nagios重新启动的时候不会是空数据,而是先显示上次离线时最后保留的非状态数据。

notification_period  all_days  ; Send host notifications at any time
设定事件通知的工作时间段。后面要跟上定义过的时间段名,这里用全天时间段。

register  0  ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
设定非注册。此项register为0值的时候Nagios会理解到该定义段是主机类而为实体主机的定义段。因此,在自定义主机类段的时候,记得也要加入这一个属性,用来向Nagios表明该段为主机类段。
}


## Linux host definition template - This is NOT a real host, just a template!
以下再建立一个Linux主机类段linux-server。这个类同时也继承了之前的通用主机类generic-host类,也就是说类也可以继承类。这样的关系和设定将使得主机设定进一步灵活。

define host{
name  linux-server  ; The name of this host template
use  generic-host  ; This template inherits other values from the generic-host template
通过use来指定要继承的主机类名。类也可以继承类。

check_period  all_days  ; By default, Linux hosts are checked round the clock
max_check_attempts  10  ; Check each Linux host 10 times (max)
设定监测失败后的最大尝试次数。

check_command  check-host-alive  ; Default command to check Linux hosts
设定监测主机存活的命令。
notification_period  workhours  ; Linux admins hate to be woken up, so we only notify during the day
; Note that the notification_period variable is being overridden from
; the value that is inherited from the generic-host template!
notification_interval  15  ; Resend notification every 15 seconds.
设定监测主机的时间间隔,单位为秒

notification_options  d,u,r  ; Only send notifications for specific host states
设定监测指定主机产生的事件通知的条件选项。这里后面跟上一些级别类型参数:
w代表warning告警;
u代表unknown未知;
c代表critical严重;
r代表recover恢复;
d代表down奔溃。

contact_groups  admins  ; Notifications get sent to the admins by default
指定联系人组,这里的联系人组名必须是定义过的。

register  0  ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
设定register表明本段定义的是一个主机类,而不是实体主机。
}


## Windows host definition template - This is NOT a real host, just a template!
这个是我自己添加的Windows的主机类windows-server,当然,它也是继承了generic-host这个大类,但其中的参数都没有怎么变动过。

define host{
name  windows-server
use  generic-host
check_period  all_days
max_check_attempts  10
check_command  check-host-alive
notification_period  workhours
notification_interval  15
notification_options  d,u,r
contact_groups  admins
register  0
}


## Since this is a simple configuration file, we only monitor one host - the
## local host (this machine).
以下为实体主机的定义了。首先必须要有localhost本地主机的定义段,否则很多基本功能都会有问题。

define host{
use  linux-server
通过use来继承linux-server这个之前专为Linux主机定义的类。

host_name  localhost
通过host_name来指定主机名,这里是localhost。另外必须要知道的是,这里定义的主机名,和真正监测对象的主机的主机名并不一定要完全对的上,这里定义的主机名只是一个在Naigos系统中注册的、定义的、Nagios能够识别的主机标示而已。

alias  localhost
通过alias写上一些对该主机的描述。

address  127.0.0.1
通过address来指定该主机的IP地址。Nagios对监测对象的主要根据是这个IP地址。
}


接下来则是我自己定义的一些主机:

define host{
use  linux-server
host_name  KCentOS5A
alias  Kane Cruise CentOS 5 Server A
address  192.168.1.10
}


define host{
use  windows-server
host_name  KCWIN2K3A
alias  Kane Cruise Windows Server 2003 A
address  192.168.1.14
}


define host{
use  windows-server
host_name  KCXP1
alias  Kane Cruise Windows XP Professional 1
address  192.168.1.9
}


第六部分:主机组定义段
###############################################################################
###############################################################################
#
# HOST GROUPS
#
###############################################################################
###############################################################################
# We only have one host in our simple config file, so there is no need to
# create more than one hostgroup.
简而言之就是将定义的主机归类成主机组。

define hostgroup{
使用define定义关键字hostgroup表示该定义段内定义的是主机组段。段内的定义请使用两个大括号来包括。段内的定义项一行一项。另外,如果要定义多个主机组段的话,那么必须要写多个define hostgroup {} 段。

hostgroup_name  linux_hosts
通过hostgroup_name来指定主机组名。

alias  Group of Linux Hosts
通过alias来进行对该主机段的描述。

members  localhost,KCentOS5A
通过members来指定该主机组的成员,注意这里的主机成员必须要是在host里定义过的主机。
}


define hostgroup{
hostgroup_name  windows_hosts
alias  Group of Windows Hosts
members  KCXP1,KCWIN2K3A
}
  转自 http://hi.baidu.com/kouzl/blog/item/0aa6084be09635f483025c0b.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366702-1-1.html 上篇帖子: Nagios安装使用(二)----基本安装和配置(下) 下篇帖子: Nagios基本配置的详细攻略(三)(转载)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表