Nagios简介

  Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,打印机等。在系统或服务状态异常发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或者短信通知。

  Nagios原名为:NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形式。Nagios被开发在Linux下使用。但是在Unix下也工作的非常好。

主要功能:

  • 网络服务监控(SMTP,POP3,HTTP,NNTP,ICMP,SNMP,FTP,SSH)
  • 主机资源监控(CPU load,disk usage,system logs),也包括Windows主机(使用NSCLient+plugin)
  • 可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度,警告。。。)
  • 可以通过配置Nagios远程执行插件,远程执行脚本
  • 远程监控支持ssh或ssl加通道方式进行监控
  • 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持多开发语言(shell script,c++,Perl,Ruby,python,PHP,c#等)
  • 包含很多图形化数据plugins(Nagiosgraph,Nagiosgrapher,PNP4Nagios等)
  • 可并行服务检查
  • 能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查
  • 当服务或主机出现问题时发出通告,可以通过email,pager,sms或任意用户自定义的plugin进行通知
  • 能够自定义事件处理机制重新激活出问题的服务或主机
  • 自动日志循环
  • 支持冗余监控
  • 包括web界面可以查看当前网络状态,通知,问题历史,日志文件等。

Nagios监控流程

Nagios工作原理 

  Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控,检测功能都是通过各种插件来完成的。

  启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的 状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过Web显示出来。

  Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。按章完成后,在Nagios主目录下的/libexec里放有Nagios自带的可以使用的所有插件,如:check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx_ -h 来查看其使用方法和功能。

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

  再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是Nagios很重要的功能之一。但是,同样的,Nagios自身也没有报警部分 的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成的。

  Nagios安装,是指基本平台,也就是Nagios软件包的安装,它是监控体系的框架,也是所有监控的基础。

  打开Nagios的官方文档,会发现Nagios基本上没有什么依赖包,只要求系统是Linux或者其他Nagios支持的系统。㘝如果你没有安装Apache(HTTP服务),那么你就没有那么直观的界面来查看监控信息了,所以Apache姑且算是一个前提条件。关于Apache的安装,网上有很多,安装完看看是否正常运行就可以了。

  知道Nagios是如何通过插件来管理服务器对象后,现在开始研究它是如何管理远程服务器对象的。Nagios通过周期性的运行它来获得远端服务器的各种状态信息。他们之间的关系如下图所示:

  1. NSCANagios service check acceptor
  2. NDOUtils:从一个或多个Nagios实例导出当前和历史数据到MySQL数据库。

Nagios通过NRPE来远程管理服务

  1. .Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测那些服务。
  2. .通过SSLcheck_nrpe链接远端机子上的NRPE deamon
  3. .NRPE 运行本地的各种插件去检测本地的服务和状态(check...disk...etc
  4. .最后,NRPE把检测的结果传给主机端的check_nrpecheck_nrpe再把结果送到Nagios状态队列中。
  5. .Nagios依次读物队列中的信息,再把结果显示出来。

Nagios基本安装

host1.zyg.com Nagios-Server 192.168.5.101 Apache、Pho、Nagios、nagios-plugins

host2.zyg.com Nagios-Linux    192.168.5.102 nagios-plugin、nrpe

Server 安装了Nagios软件,对监控的数据做处理,并且提供web界面查看和管理。当然也可以对本机自身的信息进行监控。

Client 安装了NRPE等客户端,根据监控机的请求执行监控,然后将结果回传给监控机。

  1. [root@localhost ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip openssl-devel
  2. [root@localhost ~]#
  1. ==============================================================================================================================================
  2. Package 架构 版本 大小
  3. ==============================================================================================================================================
  4. 正在安装:
  5. gd-devel x86_64 2.0.-.el7 base k
  6. httpd x86_64 2.4.-.el7.centos. updates 2.7 M
  7. net-snmp x86_64 :5.7.-.el7_5. updates k
  8. php x86_64 5.4.-.el7 base 1.4 M
  9. 为依赖而安装:
  10. httpd-tools x86_64 2.4.-.el7.centos. updates k
  11. libXpm-devel x86_64 3.5.-.el7 base k
  12. libjpeg-turbo-devel x86_64 1.2.-.el7 base k
  13. libpng-devel x86_64 :1.5.-.el7_2 base k
  14. libzip x86_64 0.10.-.el7 base k
  15. mailcap noarch 2.1.-.el7 base k
  16. net-snmp-agent-libs x86_64 :5.7.-.el7_5. updates k
  17. php-cli x86_64 5.4.-.el7 base 2.7 M
  18. php-common x86_64 5.4.-.el7 base k
  19.  
  20. 事务概要
  21. ==============================================================================================================================================
  22. 安装 软件包 (+ 依赖软件包)
  1. 添加一个测试账户
    [root@localhost ~]# useradd nagios
  2. [root@localhost ~]# groupadd nagcmd
  3. [root@localhost ~]# usermod -a -G nagcmd nagios
  4. [root@localhost ~]# usermod -a -G nagios,nagcmd apache
  5. [root@localhost ~]#

然后按照网上的方法进行安装即可,安装完之后可以通过web界面进行访问

。。。。

安装出现了一点问题,没法测试了。下边的内容基本都是一些理论内容,从各个文档摘抄的

配置Nagios

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

配置文件之间的关系

  在Nagios的配置过程中涉及到的几个定义有:主机、主机组、服务、服务组、联系人、联系人组、监控时间、监控命令等,从这些定义可以看出,Nagios各个配置文件之间是互为关联,彼此引用的。

  成功配置出一台Nagios监控系统,必须要弄清楚每个配置文件之间依赖于被依赖的关系,最重要的有四点:

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

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

  • 创建hosts.cfg文件来定义主机和主机组
  • 创建services.cfg文件来定义服务
  • 用默认的contacts.cfg文件来定义联系人和联系人组
  • 用默认的commands.cfg文件来定义命令
  • 用默认的timeperiods.cfg文件来定义监控时间段
  • 用默认的templates.cfg文件作为资源引用文件

配置文件的详细介绍。。。。

剩下的用到了再换个服务器测试。线上服务器不敢随便乱来。。。

有问题欢迎讨论。

监控系统-nagios的更多相关文章

  1. Nagios 监控系统架构

    Nagios 监控系统架设全攻略 简介: Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT ...

  2. 监控系统对比 Ganglia vs Open-falcon vs Prometheus vs Zabbix vs Nagios vs PandoraFMS

    Zabbix vs Nagios vs PandoraFMS: an in depth comparison - Pandora FMS - The Monitoring Bloghttps://bl ...

  3. Nagios监控系统部署(源码)

    1. 概述2. 部署Nagios2.1 创建Nagios用户组2.2 下载Nagios和Nagios-plugin源码2.3 编译安装3. 部署Nagios-plugin3.1 编译安装nagios- ...

  4. Nagios 监控系统架设全攻略

    Nagios 全名为(Nagios Ain’t Goona Insist on Saintood),最初项目名字是 NetSaint.它是一款免费的开源 IT 基础设施监控系统,其功能强大,灵活性强, ...

  5. 开源监控系统中 Zabbix 和 Nagios 哪个更好?

    监控平台的话,各有优劣,但基本都可以满足需求.等达到一定监控指标后,发现,最困难的是监控项目的管理. CMDB中小规模(服务器<=1k):Zabbix大规模(1k>=服务器<=10k ...

  6. Ganglia+Nagios监控系统

    第1章 简介 ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU.内存. ...

  7. Nagios监控系统部署(源码)(四)

    Nagios监控系统部署(源码)   1. 概述2. 部署Nagios2.1 创建Nagios用户组2.2 下载Nagios和Nagios-plugin源码2.3 编译安装3. 部署Nagios-pl ...

  8. CentOS 7.4 下安装部署Nagios监控系统详细攻略(三)

    Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户.它是基于GPLv2开发的开源软件,可免费获得及使用. nagios工作原理 nagios的功能是监控服务 ...

  9. day26 分布式监控系统开发

    本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设 ...

随机推荐

  1. Linux Shell系列教程之(四)Shell注释

    本文是Linux Shell系列教程的第(四)篇,更多shell教程请看:Linux Shell系列教程 与许多的编程语言一样,Shell中也有注释符号,今天就为大家来介绍下Shell中的注释的语法及 ...

  2. 【Luogu】P3224永无乡(splay)

    题目链接 splay模板,启发式合并(其实就是暴力插入)即可. 顺便吐槽时限,带垃圾回收而已……不至于最后一个点死活不让过吧? #include<cstdio> #include<c ...

  3. HDU——4291A Short problem(矩阵快速幂+循环节)

    A Short problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  4. XML与DTD简介

    (详细学习参考)https://blog.csdn.net/u013087513/article/details/52745509 XML约束之DTD的使用 (1)为什么要有约束? XML都是用户自定 ...

  5. spoj 7001 Visible Lattice Points莫比乌斯反演

    Visible Lattice Points Time Limit:7000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Su ...

  6. 转 PHP 使用 Redis

    PHP 使用 Redis PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP ...

  7. build android on macOS

    http://blog.csdn.net/loften_93663469/article/details/51503293 @import url(http://i.cnblogs.com/Load. ...

  8. Django学习笔记(12)——分页功能

    这一篇博客记录一下自己学习Django中分页功能的笔记.分页功能在每个网站都是必要的,当页面因需要展示的数据条目过多,导致无法全部显示,这时候就需要采用分页的形式进行展示. 分页在网站随处可见,下面展 ...

  9. POI2004

    11th Polish Olympiad in Informatics(POI2004) <br > 填坑计划第二弹......把这个没填完的坑搬过来啦~ 上次勉强填完NEERC的坑... ...

  10. spring ConfigurableListableBeanFactory 接口

    接口继承关系如上图. ConfigurableListableBeanFactory具体: 1.2个忽略自动装配的的方法. 2.1个注册一个可分解依赖的方法. 3.1个判断指定的Bean是否有资格作为 ...