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. 【bzoj4269】再见Xor 高斯消元求线性基

    题目描述 给定N个数,你可以在这些数中任意选一些数出来,每个数可以选任意多次,试求出你能选出的数的异或和的最大值和严格次大值. 输入 第一行一个正整数N. 接下来一行N个非负整数. 输出 一行,包含两 ...

  2. 解决ul的li横向排列换行的问题

    1. 问题现象 先看下面的html结构: <div> <ul> <li><img src='./img/1.jpg'></li> <l ...

  3. BZOJ-3040 最短路

    最短路+堆优化. 普通的堆还不行,自己用的是配对堆(貌似斐波那契堆也行?毕竟理论复杂度) 然后发现自己的配对堆比云神的不知快了多少...我照着他的模版打的喂.. 然后发现前T条边不理都能A... 数据 ...

  4. 安装环境 :win64

    1.安装环境 :win64 1.1 下载mysql安装包地址: https://dev.mysql.com/downloads/file/?id=476233 2.安装 2.1 解压下载的ZIP压缩包 ...

  5. [luoguP1110] [ZJOI2007]报表统计(set暴力)

    传送门 两个multiset 一个记录相邻元素的差,一个放所有的元素 2个数组 val[i]记录第i个的值,last[i]记录第i个最后插入的数的值 然后乱搞 #include <set> ...

  6. Windows上安装DB2——从IBM官网得到90天试用版

    我在下面选的90天试用版: https://www.ibm.com/developerworks/cn/downloads/im/db2/ 进入下载页面,选择Windows https://www-0 ...

  7. 我要好offer之 链表大总结

    单链表是一种递归结构,可以将单链表看作特殊的二叉树(我把它叫做一叉树) 单链表的定义: /** * Definition for singly-linked list. * struct ListNo ...

  8. batch.bat explaination

    1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on|off}] [message] Sample篅echo of ...

  9. 标准C程序设计七---56

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  10. python--导入就方便实现你需要的功能(模块)

    模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保存了 ...