Nagios监控系统

Nagios是一款开源的免费网络监视工具,可以监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员。流量监控不是他的强项,流量监控建议使用cacti(可以绘制非常直观的图形)

一、nagios主要可以监控以下方面:

  1. 主机是否宕机(通过ping命令,如果ping不通会认为主机属于宕机状态,但不影响所监控的其他服务)
  2. 服务器资源(cpu使用率、硬盘剩余空间等)
  3. 网络服务(smtp\pop3\http\)
  4. 监控网络设备(路由器、交换机等)

二、nagios工作原理

Nagios本身不包括监控主机和服务的功能。所有的监控、监测功能都是通过各种插件来完成的。安装完nagios之后,在nagios主目录下的/libexex里面放有nagios自带的插件,如:check_disk是检查磁盘空间的插件,check_load是检查cpu负载的插件,每一个插件可以通过运行./check_xxx-h命令来检查其使用方法和功能。

三、nagios的四种监控状态

Nagios可以识别四种状态返回信息。0(OK)表示状态正常(绿色显示),1(WARNING)表示出现警告(黄色),2(CRITICAL)表示出现非常严重错误(红色),3(UNKNOWN)表示未知错误(深黄色),nagios根据插件返回来的值来判断监控对象的状态,并通过web显示出来,以供管理员即时发现故障。

四、nagios通过nrpe插件来远程管理服务的工作过程

1) Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测哪些服务。

2) 通过ssl,check_nrpe连接远端机器上的NRPEdaemon。

3) NRPE运行本地的各种插件去检测本地服务器和状态(check_disk,...etc)。

4) NRPE把检测的结果传给主机端的check_nrpe,check_nrpe再把结果送到nagios状态队列中。

5) Nagios依次读取队列中的信息,再把结果显示出来。

五、nagios命令解释

make install //安装主程序,CGI和HTML文件

make install-init //在/etc/rc.d/init.d安装启动脚本

make install-commandmode //配置目录权限

make install-config //安装示例配置文件

make install-webconf //安装nagios的web接口,会在/etc/httpd/conf.d目录中创建nagios.conf文件。

安装完成之后会在/usr/local/nagios目录下产生6个目录,下面分别解释一下。

bin:nagios执行程序所在的目录,nagios文件即为主程序。

etc:nagios配置文件目录,当makeinstall-config完以后etc下面就会出现默认的配置文件。

sbin:nagios CGI文件所在目录,这里存放的是一些外部命令执行程序。

share:nagios网页文件目录,存放一些html文件。

var:nagios日志文件、pid等文件目录。

Libexec:系统默认插件的存储位置

六、配置nagios监控系统

1)nagios的配置文件:

Nagios.cfg:主配置文件,定义各种配置文件的名称和位置

Cgi.cfg:控制CGI的配置文件

Resource.cfg:资源文件,定义各种变量,以便于其他文件调用

Objects:其他配置文件存放目录,此目录下主要有:

Command.cfg:命令配置文件,定义各种命令格式,以备其他文件调用

contacts.cfg:联系人和组,发邮件等告警信息时可以调用

localhost.cfg:监控本机的配置文件

timeperiods.cfg:定义监控时间的配置文件,便于其他文件调用

Hostgroups.cfg:定义监控的主机(组),需手动创建。

2)配置文件之间的关系

在nagios的配置过程中涉及的几个定义有主机、主机组、服务、服务组、联系人、联系人组、监控时间和监控命令等。从这些定义可以看出,nagios各个配置文件之间互为关联、彼此引用的。成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点:

  1. 定义监控那些主机,主机组,服务和服务组
  2. 定义这个监控要用什么命令实现
  3. 定义监控的时间段
  4. 定义主机或服务器出现问题时要通知的联系人和联系人祖

3)配置nagios

为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义的对象创建独立的配置文件。

  1. 创建conf目录来定义host主机
  2. 创建hostgroups.cfg文件来定义主机组
  3. 用默认的contacts.cfg文件来定义联系人和联系人组
  4. 用默认的commands.cfg文件来定义命令
  5. 用默认的timeperiods.cfg来定义监控时间段
  6. 用默认的templetes.cfg文件作为资源引用文件

原文发布于微信公众号 - L宝宝聊IT(gh_b0e552aa80db)

原文发表时间:2018-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

Linux文件系统——全方位掌握

文件系统的特性 磁盘分区完毕后需要进行格式化,操作系统才能使用这个分区。 不同操作系统能够使用的文件系统是不同的,例如:Windows98以前使用FAT/F...

3759
来自专栏皮振伟的专栏

[linux][statethread]协程库ST技术分析

前言: 在IO密集型的场景下,尤其是互联网后台,经常会使用epoll等IO复用技术。鉴于直接使用epoll的代码阅读性和开发效率等原因,就抽象出来了各种高级模型...

3038
来自专栏黑泽君的专栏

MyEclipse 2017 CI 中使用 Java Working Set 来管理项目

MyEclipse 2017 CI  作为一款流行的JavaIDE开发工具,其有很多好用的功能为我们的开发提供帮助。但我们的工作空间中有很多项目时,管理起来就很...

2051
来自专栏杂烩

一种海量日志存储、分析解决方案V1.1 原

针对上一个版本https://my.oschina.net/shyloveliyi/blog/786337,有如下更新:

943
来自专栏xingoo, 一个梦想做发明家的程序员

Volatile的作用

众所周知,volatile关键字可以让线程的修改立刻通知其他的线程,从而达到数据一致的作用。那么它具体涉及到哪些内容呢? 关于缓存 计算机最大的存储空间就...

2008
来自专栏静下来

#1273 – Unknown collation: ‘utf8mb4_unicode_ci’的解决方法

前段时间没心情更新博客,现在打算又慢慢更新吧。 换了个域名,换个心情。 最近由于一个新的网站程序。对mysql、php版本有特殊要求。 又不想浪费钱再去买个服务...

36912
来自专栏Java技术

分布式锁简单入门以及三种实现方式介绍

很多小伙伴在学习Java的时候,总是感觉Java多线程在实际的业务中很少使用,以至于不会花太多的时间去学习,技术债不断累积!等到了一定程度的时候对于与Java多...

831
来自专栏me的随笔

Cookie中的几个概念

Domain表示Cookie所在的域(如:www.baidu.com),对于Cookie的访问是不能跨域的(如:我们无法在www.baidu.com下访问www...

1894
来自专栏极客猴

pustil - 获取系统信息库

运维工程师经常使用 Python 编写脚本程序来做监控系统运行的状态。如果自己手动使用 Python 的标准库执行系统命令来获取信息,会显得非常麻烦。既要兼容不...

1191
来自专栏Kevin-ZhangCG

什么是死锁?死锁发生的四个必要条件是什么?如何避免和预防死锁产生?

1885

扫码关注云+社区