Nagios 添加监控主机

操作步骤:

  • 1、修改 Nagios 的主配置文件,将服务器的配置与监控项的配置独立出来
  • 2、添加监控主机相关信息配置文件
  • 3、检查配置文件语法正确性
  • 4、重新加载配置使新增配置文件生效
  • 5、查看 Web 界面验证配置成功

1、修改主配置文件

在装好nagios后,可以通过web界面看到一个名为localhost的本地监控事例,这是由于 Nagios 配置文件生成的模版,该配置位于/usr/local/nagios/etc/objects/localhost.cfg

$ tree /usr/local/nagios/etc/    # Nagios 配置文件目录
/usr/local/nagios/etc/
|-- cgi.cfg                 # web接口配置文件
|-- htpasswd.users          # 登录 Nagios Web 页面时的用户名密码认证文件
|-- nagios.cfg                 # 主配置文件
|-- nrpe.cfg                   # 客户端配置文件
|-- objects                    # 包含其他配置文件的目录
|   |-- localhost.cfg          # 用于定义对主机监控

不建议将新增要监控的主机配置写在里面,因为当所要监控的主机太多,这部分会很受伤,所以,可以在/usr/local/nagios/etc/下通过建立专用文件夹,存放主机和服务的配置信息,并且可以通过不同的文件夹,来区分不同功能的服务、或不同平台的机器。比如:

# 以不同的云平台与功能管理
tree /usr/local/nagios/etc/
|-- cgi.cfg
|-- htpasswd.users
|-- nagios.cfg
|-- nrpe.cfg
|-- objects
|-- servers         # 新增存放服务与机器目录|-- aliyun      # 存放 aliyun 平台相关的机器|   |-- product_Host.cfg|   |-- product_Service.cfg|   |-- staging_Host.cfg|   `-- staging_Service.cfg`-- aws|-- product_Host.cfg|-- product_Service.cfg|-- staging_Host.cfg`-- staging_Service.cfg

我们在/usr/local/nagios/etc下新建一个servers的文件夹:

mkdir /usr/local/nagios/etc/servers

为了让 Nagios 在启动的时候会读取该配置文件中我们的配置文件,我们需要修改主配置文件:/usr/local/nagios/etc/nagios.cfg

在里面新增一条我们新建的路径信息:cfg_dir=/usr/local/nagios/etc/servers

如此一来,在这个目录下的文件只要符合 *.cfg 命名的文件就会被 nagios 加载。

主配置文件 nagios.cfg 介绍

# Nagios 检索监控命令配置文件的路径
cfg_file=/etc/nagios/objects/commands.cfg                        # Nagios 针对全局的变量配置文件,也称为资源(宏)定义文件
resource_file=/etc/nagios/resource.cfg                           # Nagios 的状态存储数据文件,获取到的监控信息存在该文件中
status_file=/usr/local/nagios/var/status.dat                     # Nagios 的监控状态间隔配置,默认多少秒执行一次监控命令
status_update_interval=10        # Nagios 服务的运行用户
nagios_user=nagios# Nagios 服务的运行组
nagios_group=nagios                                             # Nagios 若需要在 Web 界面中发送命令需开启该配置项
check_external_commands=1                                        # Nagios 设置检查时间单位间隔长度,默认为 60s
interval_length=60                                               # Nagios 是否启用通知功能,1表示启用通知,0表示关闭通知。
enable_notifications={1|0}                                       # Nagios 设置服务检测命令的执行超时时长,若是超过该时间未能获取返回数据则判定为超时
service_check_timeout=60# Nagios 设置主机检测命令的执行超时时长,若是超过该时间未能获取返回数据则判定机器挂掉了
host_check_timeout=30                                            # Nagios 设置是否启用主动服务检测机制,1表示启用,0表示关闭。
execute_service_checks={1|0}# Nagios 设置是否接受被动服务检测的结果,1表示接受,0表示拒绝。
accept_passive_service_checks={1|0}                              # Nagios 设置是否启用主动主机检测机制,1表示启用,0表示关闭。
execute_host_checks={1|0}                                        # Nagios 设置是否接受被动主机检测的结果,1表示接受,0表示拒绝。
accept_passive_host_checks={1|0}                                # Nagios 设置是否启用事件处理,1表示启用,0表示关闭,也就是在服务出错时执行设置好的处理机制。
enable_event_handlers=1                                         # Nagios 产生日志文件的路径
log_file=/usr/local/nagios/var/nagios.log # Nagios 指定日志转储的方法,n代表不做日志回滚
log_rotation_method={n|h|d|w|m}

添加监控主机相关信息配置文件

添加需要监控的主机test,在我们之前定义的主机信息路径中增加它的配置信息:vim /usr/local/nagios/etc/servers/test.cfg

define host {use                             linux-serverhost_name                       testalias                           My first Apache serveraddress                         127.0.0.1max_check_attempts              3check_period                    24x7notification_interval           30notification_period             24x7
}

给大家解释一下都写了啥:

# 通过 define host 关键字来让系统识别中间的内容块是用于设置设备信息的
define host {# use 关键字表示使用的模版,模版将在后续讲解,此处使用的是 linux-server 模版use                             linux-server# host_name 关键字表示机器的名字,也是在 Web 界面中显示的名字host_name                       test# alias 表示机器的别名,一般用作机器别名的描述alias                           My first Apache server# address 设置该机器的 IP 地址,以便与数据的获取与被动监控的请求address                         127.0.0.1# 最大的尝试次数,也就是在某服务监控出错再次运行监控命令获取数据的次数max_check_attempts              3# 检测的时间段check_period                    24x7# 发送消息提醒的时间间隔notification_interval           30# 发送消息提醒的时间段notification_period             24x7
}

这份配置文件基本阐述了一台设备的基本信息与个别的定制化配置,当然还会有这样的一些配置项:

  • hostgroups web # 所属主机组,通常可以使用主机组来管理监控内容
  • check_command check-host-alive # 检测命令
  • check_interval 5 # 检测间隔
  • retry_interval 1 # 重试间隔,一次检测失败后,重试的间隔
  • contacts shiyanlou # 联系人
  • contact_groups linux-admins # 联系人组,在机器出现问题的时候告警信息发送的人员组
  • notification_options d,u,r # 哪种状态进行通知;d(Down),u(UNREACHABLE),r- (recovery),f,s } ,各状态及其表示符如下:
参数 含义
d —— DOWN #挂了
u —— UNREACHABLE #不可达
r —— UP(host recovery) #重新恢复态
f —— flapping #异常
s 调试宕机时间开始或结束

检查配置文件

每次修改配置文件之后我们需要通过这样的命令来检查我们的配置文件是否正确,因为若是直接重启或者重新加载使得配置文件生效,但配置中却有错误的话会导致我们的监控服务直接不可用,所以每次在重启之前我们都需要先检查一遍:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

检查发现配置无误的情况下,我们重新加载一下nagios服务:

service nagios reload

打开web登录界面,点击左边Hosts标签栏,可以看到我们新增的那台主机test(目前也就是本机):

总结一下,总的来说,增加被监控主机可以分为两个步骤:

  • 1、 添加/修改主机配置文件
  • 2、 重新加载nagios服务

添加监控服务

监控主机只能看到主机的开关机状态,但我们往往更关心主机上所运行的业务是否正常,所以,我们还需要在nagios上添加我们需要监控的服务。

创建监控服务配置文件
一般把监控主机和监控服务分开放置在两个配置文件中,比如下面的文件结构:

|-- servers         |-- test_Host.cfg`-- test_Service.cfg

test_Service.cfg文件就是监控服务的配置文件:

define service {host_name                       testservice_description             Check SSHcheck_command                   check_sshmax_check_attempts              2check_interval                  2retry_interval                  2check_period                    24x7notification_interval           2notification_period             24x7notifications_enabled           1register                        1
}

是不是和添加主机的配置文件很相似?解释一下不同之处吧:

  • host_name:该配置项告知 Nagios 该监控服务针对哪台设备
  • use:这里没有使用 use 关键字,但是在 service 中也有模版的概念,用法与 host 中的一样
  • check_command:该配置项指定此监控服务使用的命令(使用的命令必须在 commands.cfg 配置文件中有所指定)
  • max_check_attempts:该配置项指定当服务检查出现问题是最大的尝试次数
    只罗列了常用的几项,具体可以参考官方手册

命令配置文件

在服务的配置文件中有一项名为check_command的配置项,它指定了监控服务所用的命令,而这个命令,就是由commands.cfg所定义的,它存在于:/usr/local/nagios/etc/objects/commands.cfg
查看一下这份文件,可以看到里面定义了一系列的命令:

其中:

  • command_name:也就是命令的名字,在 service 中我们所使用的命令
  • command_line:也就是命令所使用的脚本/插件,与使用该脚本时的相关参数
    比如我们上面举例要监控的ssh服务的命令check_ssh:

它所用到的脚本(或称为插件),存在于路径$USER1下的名为check_ssh的脚本

$USER1变量的定义,是在usr/local/nagios/etc/resource.cfg这份配置文件里定义的。

好奇的话可以打开看一下:

vi usr/local/nagios/etc/resource.cfg

可以发现,USER1变量的值为路径/usr/local/nagios/libexec,也就是说check_ssh这份真正在背后执行的脚本,存放在:/usr/local/nagios/libexec

那我们看看这个路径下还都有些啥:

原来,这个路径是用于存放nagios监控过程中真正执行的脚本/插件,因此,我们也可以根据实际需要自己开发相应的脚本/插件,将他们放在这个路径下,实现自己的监控需求,该路径下的脚本/插件只需要有可执行权限即可,无论是Cshell还是PHPpython编写的,都可以。

检查配置文件

同样,在新增了一个监控服务之后,我们试着检查一下配置文件是否有误:

nagios /usr/local/nagios/etc/nagios.cfg

确认无误后重新加载nagios服务:

service nagios reload

打开web界面,点击左边的Services标签,可以看到新增加的check_ssh服务:

若是看到尾pending状态,请再等会,监控的轮询时间间隔没到

添加联系人

在监控的默认联系人为nagiosadmin,如果需要更改,请在/usr/local/nagios/etc/objects/contact.cfg文件中指定:

可以根据默认的模板进行修改,不做解释了

添加组

当遇到类似功能或具有相同业务的服务时,我们可以分组管理,定义组的语法如下:

define hostgroup{hostgroup_name        test_serversalias                Servers For Testmembers                T1,T2,T3}
  • hostgroup_name:设置 group 的名字
  • alias:对该组的一个描述
  • members:该组中所拥有的成员

定义组成员的方式,如果不想把members字段写得老长老长,还可以在每个主机的配置文件中添加下面的配置项:

hostgroups test_servers

当我们需要对一组服务器,统一监控每台服务器上的某个服务(假设是ssh服务),可以在service的定义中加入hostgroup_name,于是对应组的成员便都会监控该服务,这样就可以省下了许多重复性的配置工作。

比如,我们新加一台主机名为test2,分组为test_group,用于监控ssh服务。实现的步骤如下:

  • 1、首先在两台主机的配置文件中定义其所在组:
hostgrous test_group

- 2、其次在建立监控服务配置文件,在配置文件中:

# 删除内容
host_name              test# 添加内容
hostgroup_name         test_group

并且在空白处新增一块关于组的定义:

define hostgroup{hostgroup_name          test_groupalias                   For test
}
  • 3、检查配置,并重新加载nagios服务:

OK,nagios的基本操作就先这样

-------------The End-------------

在nagios中添加监控主机和服务相关推荐

  1. 在zabbix中添加监控主机及Items

    在http://ly36843.blog.51cto.com/3120113/1640289我们学习了zabbix的server和agent的编译安装方法 这里我们添加监控主机和监控 一.添加一个主机 ...

  2. 在arcmap和arcgispro中添加在线地图服务

    在arcmap或者arcgispro有时想使用一些免费在线地图服务辅助于其它的地理处理操作,下述介绍了如何在arcmap以及arcgispro中添加在线的地图服务. 1.加载门户自身的在线底图 arc ...

  3. svn添加到windows服务中

    向windows中添加svn的服务加了好几次都不成功,好好看了看,写了以后的方法成功了 sc create svnserve binpath= "F:\Subversion\bin\svns ...

  4. Cacti设置--添加监控主机

    Cacti中添加监控主机设置方法: ① 添加设备 图1 图2 图3 然后点击右下角的"Create",正常情况下会得到被监控主机的系统信息: 图4 如果主机信息不正确或是被监控主机 ...

  5. VMM2012应用指南之4-向VMM中添加Hyper-V主机与应用服务器

    VMM 2012可以管理主机与应用服务器,其中主机包括基于Microsoft的Hyper-V主机和群集.Citrix XenServer主机和群集.VMware ESX Server或VMware E ...

  6. centos下配置nagios监控主机及服务的总结

    阅读本文之前,强烈建议先去观摩大神的Linux下Nagios的安装与配置,最好精读几遍原理. 一.    安装nagios准备工作 1.基础支持套件安装:gcc glibc glibc-common ...

  7. Nagios添加监控主机

    Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等.默认的Nagios 配置没有任何监控内容,仅是一些模板文件.若要让Nagios 提供服务,就必须修改配置文件 ...

  8. zabbix的主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...

    主动模式和被动模式 主动或者被动是相对客户端来讲的 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端 主动模式,客户端会主动把监控数据汇报给服务端,服务 ...

  9. 19.7 主动模式和被动模式 19.8 添加监控主机 19.9 添加自定义模板 19.10 处理图形中的乱码 19.11 自动发现...

    2019独角兽企业重金招聘Python工程师标准>>> 19.7 主动模式和被动模式 • 主动或者被动是相对客户端来讲的 • 被动模式,服务端会主动连接客户端获取监控项目数据,客户端 ...

最新文章

  1. linux系统服务介绍
  2. 《HiWind企业快速开发框架实战》(0)目录及框架简介
  3. 【原创】MySQL 返回更新值(RETURNING)
  4. 记录idea maven项目打包部署web项目mapper扫描失败
  5. 东北农业大计算机排名,黑龙江高校排名更新,东北林大排名第3,东油排名第8...
  6. 微软允许员工永久在家办公,远程办公时代真的要来临了吗?
  7. java实现定时任务 Schedule
  8. 下载OneDrive共享的数据集
  9. 【英语学习】【WOTD】gibbous 释义/词源/示例
  10. android 方法参数默认值,Kotlin函数默认值的完全讲解
  11. AMD 透漏 Zen 2 技术细节!
  12. python中stack.stack_Python stack
  13. 实践数据湖iceberg 第十一课 测试分区表完整流程(造数、建表、合并、删快照)
  14. php微信上传图文素材,php使用curl 上传微信公共平台素材文件
  15. android吉他谱组件,Paranoid Android drum吉他谱
  16. 计算机主机上有几个按钮,电脑键盘各个按键有哪些作用 电脑键盘各个按键作用介绍...
  17. python-货币转换
  18. 赠书:深入理解 Spring Cloud 与实战
  19. java计算机毕业设计教务管理系统源程序+mysql+系统+lw文档+远程调试
  20. 免费自媒体全网平台爆文采集器

热门文章

  1. 如何优雅的用POI导入Excel文件
  2. 爬虫技术python流程图_爬虫学多久能爬取大规模数据!神级程序员:这篇够你学一个月!...
  3. electron-vue 销毁托盘tray事件
  4. 【小程序源码】多接口带头像挂件制作短视频去印
  5. 鸿蒙哪些机型可以用,鸿蒙系统可以在哪些手机上使用 鸿蒙系统可使用机型介绍...
  6. 全文检索Lucence(三)——分词器
  7. python 组内排序_python - pandas groupby在组内排序
  8. CVPR2021-《T2VLAD》-浙大百度悉尼科技提出用局部全局对齐来进行视频文本检索!效果优于MMT!...
  9. Linux-CentOS7.9系统rpm离线安装Oracle 19C
  10. php 7.1 xdebug,PHP7.1安装xdebug