详细介绍nagios基本配置

配置文件路径/usr/local/nagios/etc/objects
类型名                包含文件             作用
基类配置文件    templates.cfg       定义基类
时间配置文件    timeperiods.cfg    定义控制时间
联系人文件     contacts.cfg   定义联系人信息和联系人组
监控文件      localhost.cfg    定义监控主机和监控的服务,主要是linux系统的主机
命令定义文件   commands.cfg  定义插件参数和如何发送短信、邮件等


1、时间定义段
在时间定义段里,可以自己定义好几个指定的时间段并给与命名。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
 }


2.联系人定义段
在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地址。
        }
 
联系人组就是将若干联系人聚合起来的组。 
define contactgroup{
使用define定义关键字contactgroup表示该定义段内定义的是联系人组段。段内的定义请使用两个大括号来包括。段内的定义项一行一项。另外,如果要定义多个联系人组段的话,那么必须要写多个define contactgroup {} 段。 
        contactgroup_name       admins
通过contactgroup_name来指定联系人组名。 
        alias                   Nagios Administrators
通过alias来指定该联系人组名的简要信息。 
        members                 nagios-admin
通过members来指定组成员,组成员必须是contect里定义过的联系人。
        }
 
3.主机定义段
主机定义段定义了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主机类段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表明本段定义的是一个主机类,而不是实体主机。
 }
 注:nagios默认还有其几个主机类,如windows-server


以下为实体主机的定义了,它的配置文件在/usr/local/nagios/etc/objects/localhost.cfg。首先必须要有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地址。
        }


4.服务定义段
默认Nagios已经定义了一个通用服务大类generic-service,这个类当中定义的属性是无论什么服务都必须的属性。 
define service{
使用define定义关键字service表示该定义段内定义的是服务段,也可以是服务类。段内的定义请使用两个大括号来包括。段内的定义项一行一项。另外,如果要定义多个服务段的话,那么必须要写多个define service {} 段。 
        name                            generic-service  ; The 'name' of this service template
通过name来指定服务类名,这里的generice-service是一个类名。 
        active_checks_enabled           1         ; Active service checks are enabled
设定启用活动监测服务。 
        passive_checks_enabled          1          ; Passive service checks are enabled/accepted
设定启用被动监测服务。 
        parallelize_check               1         ; Active service checks should be parallelized (disabling this can lead to major performance problems)
设定启用并发活动监测服务。 
        obsess_over_service             1         ; We should obsess over this service (if necessary)
设定启用服务防停滞。 
        check_freshness                 0         ; Default is to NOT check service 'freshness'
设定关闭更新监测。 
        notifications_enabled           1         ; Service notifications are enabled
设定启用事件通知。 
        event_handler_enabled           1         ; Service 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重新启动的时候不会是空数据,而是先显示上次离线时最后保留的非状态数据。 
        is_volatile                     0         ; The service is not volatile
设定服务非易失。 
        register                        0         ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
设定非注册。此项register为0值的时候Nagios会理解到该定义段是主机类而为实体主机的定义段。因此,在自定义主机类段的时候,记得也要加入这一个属性,用来向Nagios表明该段为主机类段。
        }


efine service{
        name    local-service     ; The name of this service template
        use    generic-service    ; Inherit default values from the generic-service definition
通过use来继承generic-service这个类。类也是能够继承类的。 
        check_period              all_days         ; The service can be checked at any time of the day
        max_check_attempts           2   ; Re-check the service up to 4 times in order to determine its final (hard) state
设定监测失败后最尝试次数。 
        normal_check_interval          5   ; Check the service every 5 minutes under normal conditions
设定正常监测服务的间隔,单位秒。 
        retry_check_interval            1   ; Re-check the service every minute until a hard state can be determined
设定监测失败后尝试的间隔,单位秒。 
        contact_groups            admins   ; Notifications get sent out to everyone in the 'admins' group
设定联系组。 
 notification_options         w,u,c,r   ; Send notifications about warning, unknown, critical, and recovery events
设定监测指定服务产生的事件通知的条件选项。这里后面跟上一些级别类型参数:
w代表warning告警;
u代表unknown未知;
c代表critical严重;
r代表recover恢复;
d代表down奔溃。 
        notification_interval           15   ; Re-notify about service problems every hour
设定服务通知的间隔。 
        notification_period        all_days   ; Notifications can be sent out at any time
设定服务通知运行时间。 
        register                        0       ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
设定register表明本段定义的是一个服务类,而不是具体的服务。
 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/570126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻知 | 为什么全球只有13组根域名服务器?

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文由9527发表 根域名服务器是域名解析系统(DNS)中最为顶级的域名服务器,它们负责管理顶级域的权威域名服务器地址。作为互联网基础设施的重要部分,所有域名…

Openssl更新步骤

openssl下载地址:http://www.openssl.org/source/安装openssl#tar zxvf openssl-0.9.8i.tar.gz#cd openssl-0.9.8i#./config shared zlib #make #make test #make install mv /usr/bin/openssl /usr/bin/openssl.OFF (关闭系统自带的)mv /us…

HDU 3861 The King’s Problem (强连通缩点+DAG最小路径覆盖)

<题目链接> 题目大意&#xff1a; 一个有向图&#xff0c;让你按规则划分区域&#xff0c;要求划分的区域数最少。 规则如下&#xff1a;1.所有点只能属于一块区域&#xff1b;2&#xff0c;如果两点相互可达&#xff0c;则这两点必然要属于同一区域&#xff1b;3&#x…

nagios常见问题

1.错误“CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.”解决&#xff1a;启用了NRPE的命令行参数功能&#xff0c;不过可能会带来严重的安全问题。$ /usr/local/nagios/etc/nrpe.cfgdont_blame_nrpe12.在Nagios中&#xff0c;…

【Linux 命令】- find 命令

find 是日常工具箱中功能更强大、更灵活的命令行工具之一&#xff0c;因此值得花费更多的时间。 最简单的&#xff0c;find 跟上路径寻找一些东西。例如&#xff1a; find / 它将找到&#xff08;并打印出&#xff09;系统中的每个文件。而且由于一切都是文件&#xff0c;你会得…

CentOS提示另一个目前运行的程序正在访问软件信息

原因是&#xff1a;yum&#xff0d;updatesd服务一起的&#xff0c;这个服务会时不时的访问网络&#xff0c;如果卡住了&#xff0c;同时你又在运行yum&#xff0c;就会总是提示你另一程序在访问软件信息用 rm -f /var/run/yum.pid 杀掉 yum-updatesd 就好了命令如下&#xff1…

一个注解搞定

JsonIgnore 转载于:https://www.cnblogs.com/cnchengv/p/10033524.html

check_http语法和选项

check_http H hostname (or) -I ip-address {optional options} 常用的几个例子 1. 检测http协议 $ check_http -H 192.168.1.50 HTTP OK HTTP/1.1 200 OK - 332 bytes in 0.004 seconds |time0.004144s;;;0.000000 size332B;;;0 2.检测https协议 $ check_http -H 192.168.1.50…

LinkedList源码学习

链表数据结构 当前节点会保存上一个、下一个节点。 参见 LinkedList的Node类   实现&#xff1a;     1. 内部链表的方式。       1.1 添加元素。追加的方式&#xff0c;创建一个新的节点[Node]&#xff0c;用最后一个节点关联新的节点。       1.2 删除元素…

nagios使用check_mysql监控mysql

如果没有check_mysql插件&#xff0c;需要安装Mysql数据库 1、建立专用数据库&#xff1a; [rootsvr3 ~]#mysql -u root -pEnter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 51910 Server version: 5.5.3-m3-log Sou…

python_文件操作代码实例

"""提示&#xff1a;代码中的内容均被注释&#xff0c;请参考&#xff0c;切勿照搬""" 1 #文件的打开和关闭2 3 文件对象 open(文件名,使用方式)4 rt&#xff1a;读取一个txt文件5 wt: 只写打开一个txt文件&#xff0c;&#xff08;如果没有该…

nagios远程系统监测服务

nagios全部的服务大致可以分为3大种&#xff1a;第一种是“本地系统监测服务”&#xff0c;就是监测主机Nagios所在主机对自己本地的一些情况的监测&#xff0c;比如本地磁盘占用情况&#xff0c;本地CPU使用情况等等。第二种是“远程系统监测服务”&#xff0c;就是远程主机系…

Spring中@Async

在Java应用中&#xff0c;绝大多数情况下都是通过同步的方式来实现交互处理的&#xff1b;但是在处理与第三方系统交互的时候&#xff0c;容易造成响应迟缓的情况&#xff0c;之前大部分都是使用多线程来完成此类任务&#xff0c;其实&#xff0c;在spring 3.x之后&#xff0c;…

Mysql不能停用

Timeout error occurred trying to start MySQL Daemon.Starting MySQL: [FAILED]

CentOs如何挂载硬盘

远程SSH登录上Centos服务器后&#xff0c;进行如下操作提醒&#xff1a;挂载操作会清空数据&#xff0c;请确认挂载盘无数据或者未使用第一步&#xff1a;列出所有磁盘 命令&#xff1a; ll /dev/disk/by-path 提示&#xff1a;如果无法确认数据盘设备名称&#xff0c;请使…

挂载

df -Th 查看磁盘挂载情况 ls /dev/sdx* fdisk -l 查看分区情况 fdisk /dev/sdb 分区mnpw uuid:设备的唯一号 blkidUUID"0a59654a-6f2c-4bc1-bbaf-df844e60e2e3" UUID"fe8c9dd4-571c-40a4-837a-a4ab6e4ae7e转载于:https://www.cnblogs.com/finddata/p/10041496.h…

一周冲刺计划2//第一天

第二次一周冲刺计划 2018.12.1 今天开展了小组间的站立会议&#xff0c;四个人仔细分析了第一次冲刺计划中软件的不足&#xff0c;对其的不足之处进行了深刻的反省和分析&#xff0c;并做出相应的修改。首先做出UI界面&#xff0c;对界面进行修改。明天对代码进行修改。转载于:…

linux版的navicat提示丢失scilexer.dll

这是由于SELinux阻止了scilexer.dll加载 &#xff0c;只要解除阻止就可以了。命令解除&#xff1a;如果SELinux是处于强制安全模式时需要做getenforce令SELinux处于容许模式setenforce 0chcon -t textrel_shlib_t scilexer.dll的路径

AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录

参考链接&#xff1a;http://www.wangchao.info/1137.html 注意&#xff1a;链接中写的简化了&#xff0c;其中重启服务的命令似乎不太适用&#xff0c;可能是不通用&#xff0c;我下面描述的方式亲测可行&#xff0c;如有其他疑问请留言&#xff1b; https://blog.csdn.net/p…

最全的纯净系统下载地址

http://msdn.itellyou.cn/?langzh-cn