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通过周期性的运行它来获得远端服务器的各种状态信息。他们之间的关系如下图所示:

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

Nagios通过NRPE来远程管理服务

.Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测那些服务。
.通过SSL,check_nrpe链接远端机子上的NRPE 的deamon
.NRPE 运行本地的各种插件去检测本地的服务和状态(check...disk...etc)
.最后,NRPE把检测的结果传给主机端的check_nrpe,check_nrpe再把结果送到Nagios状态队列中。
.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等客户端,根据监控机的请求执行监控,然后将结果回传给监控机。

[root@localhost ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip openssl-devel
[root@localhost ~]#
==============================================================================================================================================
Package 架构 版本 源 大小
==============================================================================================================================================
正在安装:
gd-devel x86_64 2.0.-.el7 base k
httpd x86_64 2.4.-.el7.centos. updates 2.7 M
net-snmp x86_64 :5.7.-.el7_5. updates k
php x86_64 5.4.-.el7 base 1.4 M
为依赖而安装:
httpd-tools x86_64 2.4.-.el7.centos. updates k
libXpm-devel x86_64 3.5.-.el7 base k
libjpeg-turbo-devel x86_64 1.2.-.el7 base k
libpng-devel x86_64 :1.5.-.el7_2 base k
libzip x86_64 0.10.-.el7 base k
mailcap noarch 2.1.-.el7 base k
net-snmp-agent-libs x86_64 :5.7.-.el7_5. updates k
php-cli x86_64 5.4.-.el7 base 2.7 M
php-common x86_64 5.4.-.el7 base k 事务概要
==============================================================================================================================================
安装 软件包 (+ 依赖软件包)
添加一个测试账户
[root@localhost ~]# useradd nagios
[root@localhost ~]# groupadd nagcmd
[root@localhost ~]# usermod -a -G nagcmd nagios
[root@localhost ~]# usermod -a -G nagios,nagcmd apache
[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. HDU——1215七夕节(因数和)

    七夕节 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  2. [解决方案]Window 2008 R2 + IIS7.5 + VS2013 错误代码 0x80070002

    HTTP 错误 404.0 - Not Found 您要找的资源已被删除.已更名或暂时不可用.详细错误信息模块 IIS Web Core通知 MapRequest Handler处理程序 Static ...

  3. 【python自动化】python 常用时间获取方法

    代码如下: import datetime import time DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" DATE_FORMAT = &quo ...

  4. [NOIP2009] 提高组 洛谷P1074 靶形数独

    题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...

  5. class文件检查器

    Class文件检查器保证装载的class文件内容有正确的内部结构,并且这些class文件互相间协调一致.Class文件检查器实现的安全目标之一就是程序的健壮性.如果某个有漏洞的编译器,或某个聪明的黑客 ...

  6. 【Visual Studio】Tab 转换为空格的设置

    在 Visual Studio 中写代码时,按 Tab 键,会自动进行缩进.有时希望实现按 Tab 键,出现多个空格的效 果.Visual Studio 提供了这样的功能,具体设置方法为:打开 “To ...

  7. 转 #HTTP协议学习# (一)request 和response 解析

    http://www.cnblogs.com/bukudekong/p/3834020.html #HTTP协议学习# (一)request 和response 解析   注:本文转自:http:// ...

  8. 浅谈MVP设计模式

    最近公司在做一个医疗项目,使用WinForm界面作为客户端交互界面.在整个客户端解决方案中.使用了MVP模式实现.由于之前没有接触过该设计模式,所以在项目完成到某个阶段时,将使用MVP的体会写在博客里 ...

  9. 什么叫PV,UV,PR值

    1.PV PV(page view),即页面浏览量:用户每1次对网站中的每个网页访问均被记录1次.用户对同一页面的多次访问,访问量累计. 2.什么是UV uv(unique visitor),指访问某 ...

  10. ARC下循环引用的问题

    最初 最近在开发应用时碰到使用ASIHttpRequest后在某些机器上发不出请求的问题,项目开启了ARC,代码是这样写的: @implement MainController - (void) fe ...