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. [BZOJ3535][Usaco2014 Open]Fair Photography

    [BZOJ3535][Usaco2014 Open]Fair Photography 试题描述 FJ's N cows (1 <= N <= 100,000) are standing a ...

  2. jquery工具方法总结

    $.extend 对象合并,支持深拷贝 $.each 相当于array.each或object.each,可以遍历数组和对象 $.grep 相当于array.filter $.map 相当于array ...

  3. 慕课爬虫实战 爬取百度百科Python词条相关1000个页面数据

    http://www.imooc.com/learn/563 spider_main.py #!/usr/bin/python # coding=utf-8 #from baike_spider im ...

  4. java三种匿名的方式开启线程

    package demo04; /* * 使用匿名内部类,实现多线程程序 * 前提:继承或者接口实现 * new 父类或者接口(){ * 重写 抽象方法 * } */ public class Thr ...

  5. hdu 3189(网络流+二分枚举)

    Steady Cow Assignment Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6422   Accepted: ...

  6. LeetCode OJ--Search Insert Position

    https://oj.leetcode.com/problems/search-insert-position/ 数组有序,给一个数,看它是否在数组内,如果是则返回位置,如果不在则返回插入位置. 因为 ...

  7. AC日记——教辅的组成 洛谷 P1231

    题目背景 滚粗了的HansBug在收拾旧语文书,然而他发现了什么奇妙的东西. 题目描述 蒟蒻HansBug在一本语文书里面发现了一本答案,然而他却明明记得这书应该还包含一份练习题.然而出现在他眼前的书 ...

  8. Unsafe in Java

    http://www.cnblogs.com/xrq730/p/4976007.html http://www.importnew.com/14511.html http://blog.csdn.ne ...

  9. ubuntu下打开windows里的txt文件乱码解决

    是编码问题引起的问题: Linux下默认的编码是UTF-8,而Windows下默认的编码是GB2312/GBK.执行如下第一条语句即可 gsettings set org.gnome.gedit.pr ...

  10. 小W旅游railway

    对于一家铁路公司,我们可以首先使用 Floyd 算法求出任 意两点 x, y 间只经过属于该家铁路公司铁路的最短路,那么在新 图中我们在 x, y 间加一条 x 到 y 最短路对应的花费为边权的边. ...