Nagios监控基础安装与监控项部署(下)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nagios监控基础安装与监控项部署(下)相关的知识,希望对你有一定的参考价值。

上文总结了nagios监控的基础安装配置,现在来总结一下Nagios监控项部署


一、Nagios服务端监控部署


1、Nagios服务端目录与相关配置文件说明

Nagios 安装完成后,/usr/local/nagios/目录下会生成 nagios 相关目录及配置文件,默认的的配置文件在/usr/local/nagios/etc 目录下。详细的描述如下:


a)nagios安装后的目录结构

[[email protected] ~]# ll /usr/local/nagios/              # Nagios 安装后的目录结构
total 32
drwxrwxr-x.  2 nagios nagios 4096 Jun  6 15:53 bin      # Nagios 相关命令
drwxrwxr-x.  3 nagios nagios 4096 Jun  6 15:53 etc      # Nagios 配置文件
drwxr-xr-x.  2 root   root   4096 Jun  6 15:52 include  # Nagios 引用文件
drwxrwxr-x.  2 nagios nagios 4096 Jun  6 15:53 libexec     # Nagios 插件目录
drwxrwxr-x.  2 nagios nagios 4096 Jun  6 15:40 sbin      # Nagios 外部命令
drwxrwxr-x. 11 nagios nagios 4096 Jun  6 15:52 share      # Nagios Web 页面展示相关目录
drwxrwxr-x.  5 nagios nagios 4096 Jun  6 18:41 var      # Nagios 数据及日志目录

       所有客户端本地的监控都是通过执行libexec目录下的插件来实现的,另外,如果开启了snmp,nagios服务端也可以主动抓取


b)nagios核心配置文件说明

    Nagios主配置文件为nagios.cfg,默认在/usr/local/nagios/etc/下,另外,在/usr/local/nagios/etc/下有个objects目录(类似nginx中的extra目录),里面存放的是主配置文件nagios.cfg包含的其他nagios配置文件:如下:

[[email protected] ~]# tree /usr/local/nagios/etc/    # Nagios 配置文件目录
/usr/local/nagios/etc/
|-- cgi.cfg|-- htpasswd.users # 登录 Nagios Web 页面时的用户名密码认证
|-- nagios.cfg         ##主配置文件
|-- nrpe.cfg          # 客户端配置文件
|-- objects          # 主配置文件包含的配置文件目录,用于定义nagios对象
|   |-- commands.cfg    # 存放 Nagios 自己定义的命令(与linux里的插件命令关联)
|   |-- contacts.cfg    # 用于配置报警联系人
|   |-- hosts.cfg      # 用于配置被监控的主机
|   |-- localhost.cfg    # 用于定义对本机的监控条目
|   |-- printer.cfg     # 用于定义对打印机的监控条目
|   |-- services.cfg    # 用于配置被监控的服务
|   |-- switch.cfg     # 用于定义对交换机的监控条目
|   |-- templates.cfg    # 模板配置文件
|   |-- timeperiods.cfg   # 用于配置报警周期时间
|   `-- windows.cfg     # 用于定义对 Windows 的监控条目
`-- resource.cfg

    主配置nagios.cfg中可以指定单独包含一个cfg文件,也可以指定包含一个目录,而这个被包含目录下所有的cfg文件也都会被nagios.cfg包含:


2、主配置文件nagios.cfg配置过程

[[email protected] ~]# cd /usr/local/nagios/etc/ 

[[email protected] etc]# ls

cgi.cfg  htpasswd.users  nagios.cfg  nrpe.cfg  objects  resource.cfg


a)增加主机和服务的配置文件

[[email protected] etc]# vim nagios.cfg +34
#20170605
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
cfg_dir=/usr/local/nagios/etc/objects/services

#---cfg_dir是为备用增加的一个service目录,作用:在目录下的文件只要符合*.cfg就可以被nagios加载。使用脚本批量部署时,可以非常方便的随机命名配置文件。

#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

#---localhost.cfg为服务端本地配置文件,注释掉,然后进行统一监控


b)根据已有数据生成hosts.cfg主机文件

[[email protected] etc]# cd /usr/local/nagios/etc/objects/
[[email protected] objects]# head -51 localhost.cfg > hosts.cfg
[[email protected] objects]# chown nagios.nagios /usr/local/nagios/etc/objects/hosts.cfg


c)生成services.cfg服务文件

[[email protected] objects]# touch services.cfg    #---预留
[[email protected] objects]# chown nagios.nagios services.cfg


d)生成服务的配置文件目录,此目录下所有的*.cfg配置文件,都会被自动被包含到主配置文件中生效!

[[email protected] objects]# mkdir services 
[[email protected] objects]# chown nagios.nagios services


3、配置nagios服务端监控项

1)hosts.cfg配置文件说明


#---hosts.cfg是用来存放nagios要监控的主机的相关配置

#---hosts.cfg主机定义部分的参数说明:

define host{                           #此为定义被监控主机的配置文件 

 use                linux-server      #引用类,定义主机使用的模板,在templates.cfg中预定义 

 host_name          web01          #指定主机名,并不是实际机器的主机名,自己定义,方便以后在定义服务时调用 

alias               web01           #别名 

address             10.0.0.8           #指定被监控主机的地址 

check_command       check-host-alive   #检查主机存活命令,来自commands.cfg

max_check_attempts      3              #故障后,最大尝试检测次数

normal_check_interval   2              #正常检查时间间隔,单位分钟

retry_check_interval    2              #故障后,重试的检查间隔,单位分钟

check_period            24x7           #检查周期,参见timeperiods.cfg

notification_interval   300            #故障后两次报警的时间间隔,单位分钟

notification_period     24x7           #一天内通知的周期。一天或半天,参见timeperiods.cfg

notification_options    d,u,r          #主机状态通知选项,down,unreacheable,recovery

contact_groups          admins         #报警到admins    用户组。在contacts.cfg中定义

}                                     



2)配置hosts.cfg,添加你想要监控的客户端主机及主机组(HOST GROUP)。

以客户端web01、web02主机为例:

[[email protected] ~]# cd /usr/local/nagios/etc/objects    #---nagios.cfg包含的辅助配置文件目录
[[email protected] objects]# cat hosts.cfg
#client_host
# Define a host for the local machine
define host{
    use             linux-server
    host_name       web01
    alias           web01
    address         10.0.0.8
}
define host{
    use             linux-server
    host_name       web02
    alias           web02
    address         10.0.0.7
}
define host{
    use             linux-server
    host_name       nagios01
    alias           nagios01
    address         10.0.0.71
}
# Define an optional hostgroup for Linux machines
define hostgroup{
    hostgroup_name  linux-servers
    alias           Linux Servers
    members         web01,web02,nagios01
}


3)配置services.cfg,定义要监控的主机资源

    services.cfg文件是配置监控服务的,是nagios核心的配置文件之一,(服务器在50台以内时)自己想要监控的多半服务配置都能添加在这里

注:该文件需要手动添加

services.cfg配置参数:

define service {

    use                 generic-service

    host_name           web01

    service_description Current Load

    check_command       check_nrpe!check_load

    max_check_attempts      2

    normal_check_interval   4

    retry_check_interval    4

    check_period            24x7

    retry_interval          1

    notification_interval   1440

    notification_period     24x7

    notification_options    w,c,u,r

    contact_groups          admins

    process_perf_data       1

#retain_nonstatus_information 0

}


*对监控客户端本地资源的配置:

[[email protected] objects]# cat services.cfg
##################################
#           被动监控             #
##################################
#磁盘分区
define service {
    use                 generic-service
    host_name           web01,web02,nagios01
    service_description Disk Partition
    check_command       check_nrpe!check_disk
}
#swap
define service {
    use                 generic-service
    host_name           web01,web02,nagios01
    service_description Swap Useage
    check_command       check_nrpe!check_swap
}
#内存
define service {
    use                 generic-service
    host_name           web01,web02,nagios01
    service_description Mem Useage
    check_command       check_nrpe!check_mem
}
#以上监控项,可以通过templates.cfg简写成如下配置:
#系统负载
define service {
    use                 generic-service
    host_name           web01,web02,nagios01
    service_description Current Load
    check_command       check_nrpe!check_load
}
#磁盘I/O
define service {
    use                 generic-service
    host_name           web01,web02,nagios01
    service_description Disk I/O stat
    check_command       check_nrpe!check_iostat!5!11
}
##################
#    主动监控    #
##################
#PING监控
define service {
    use                 generic-service
    host_name           web01,web02,nagios01
    service_description PING
    check_command       check_ping!100.2,20%!500.0,60%
}


4)调试hosts.cfg和service.cfg的所有配置

[[email protected] etc]# /etc/init.d/nagios checkconfig    #---检查语法
Running configuration check... OK.



二、小结 

    在nagios监控项部署过程中,有很多问题出现,本人也正在对nagios进行仔细研究。关于nagios及zabbix的博文会持续更新









本文出自 “Linuxgao” 博客,谢绝转载!

以上是关于Nagios监控基础安装与监控项部署(下)的主要内容,如果未能解决你的问题,请参考以下文章

Nagios安装与部署

nagios监控安装部署

Nagios监控服务器安装和部署

监控之nagios的安装部署(监控本机及其他主机的配置+警报机制的配置)

监控软件介绍安装zabbix

Nagios监控配置