一、Nagios简介

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

Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒,而"Agios"是"saint"的希腊表示方法。Nagios被开发在Linux下使用,但在Unix下也工作得非常好。

主要功能

  • 网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)

  • 主机资源监控(CPU、load、disk usage、system logs),也包括Windows主机(使用NSClient++)

  • 可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)

  • 可以通过配置Nagios远程执行插件远程执行脚本

  • 远程监控支持SSH或SSL加通道方式进行监控

  • 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)

  • 包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)

  • 可并行服务检查

  • 能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查

  • 当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知

  • 能够自定义事件处理机制重新激活出问题的服务或主机

  • 自动日志循环

  • 支持冗余监控

  • 包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等

二、Nagios工作原理

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

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

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

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

四种监控状态

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

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

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


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 依次读取队列中的信息,再把结果显示出来。

三、NRPE简述

判断远程机器是否存活,我们可以使用ping 工具对其监测。还有一些远程主机服务,例如ftp、ssh、http,都是对外开放的服务,即使不用Nagios,我们也可以试的出来,随便找一台机器看能不能访问这些服务就行了。但是对于像磁盘容量,cpu负载这样的“本地信息”,Nagios只能监测自己所在的主机,而对其他的机器则显得有点无能为力。毕竟没得到被控主机的适当权限是不可能得到这些信息的。为了解决这个问题,nagios有这样一个附加组件--“NRPE”,用它就可以完成对Linux 类型主机"本地信息”的监控。

NRPE工作原理

NRPE 总共由两部分组成:

check_nrpe 插件,位于监控主机上

NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)

按照上图,整个的监控过程如下:

当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:

a、Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;

b、check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;

c、NRPE daemon 会运行相应的Nagios 插件来执行检查;

d、NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。

注意:NRPE daemon 需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。

四、Nagios服务端安装

1、环境说明

主机名

操作系统

IP

系统环境

所需软件

Nagios_Server

CentOS 6.5 x86_64

192.168.1.2

lamp环境(yum安装)

Nagios、Nagios-plugins、NRPE

linux_client

CentOS 6.5 x86_64

192.168.1.4

最小化安装

Nagios-plugins、nrpe及依赖包

win7_client

Window 7旗舰版

192.168.1.6

纯净版

NSClient++

说明:其实Nagios并非一定依赖LAMP平台,尤其是Apache,它不影响Nagios的安装,但是一般都会安装,因为Apache可以提供一个友好的Web界面。所有Linux机器iptables规则已清空,Selinux处于permissive状态。

2、检查安装基础环境包

#rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel

如果系统中没有请用yum自行安装(如果最小化安装确保httpd和php已安装,否则安装完成后Web访问会提示You don't have permission to access /nagios/ on this server.)

3、创建Nagios用户(组),并更改相关目录属主组

[root@Nagios_Server ~]# useradd nagios;mkdir /usr/local/nagios; chown -R nagios:nagios /usr/local/nagios

注意:如果Nagios的bash为/sbin/nologin,启动Nagios将会报以下错误

# service nagios restart
Running configuration check...done.
Stopping nagios: done.
Starting nagios:This account is currentlynot available.done.

4、编译安装Nagios

# wget http://sourceforge.net/projects/nagios/files/nagios-3.x/nagios-3.2.1/nagios-3.2.1.tar.gz
#tar zxvf nagios-3.2.1.tar.gz
# cd nagios-3.2.1
# ./configure --prefix=/usr/local/nagios&& make all && make install && make install-init && make install-commandmode && make install-config && make install-webconf && service nagios start && chkconfig --add nagios && chkconfig --level 35 nagios on

(参数说明参见下篇文章<<监控服务器Nagios之二 配置参数详解>>)

5、安装Nagios-plugins

#wget http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.14.tar.gz
#tar -zxf nagios-plugins-1.4.14.tar.gz
#cd nagios-plugins-1.4.14
#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios  --with-nagios-group=nagios && make && make install

6、Nagios访问控制设置

#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

输入两次密码即可,登录页面的时候会用到这个密码

7、安装NRPE

#wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz

#tar -zxf nrpe-2.14.tar.gz

#cd nrpe-2.14

#./configure --prefix=/usr/local/nagios&& make && make install

8、重启相关服务,测试Nagios

#service nagios restart
# service httpd restart

在浏览器中输入 192.168.1.2/nagios输入账号密码即可访问

说明:

如果只是监测Nagios服务器本身,可不需要安装NRPE。此时Nagios的服务器已经安装完毕,但这并不意味着结束,而是真正的开始!

Other:

本篇大部分为原理部分,关于Nagios原理与配置文件说明均摘自网络,后面几篇也是如此。因为感觉比我总结的要好,关于配置文件的含义,不必全部死记硬背,需要的时候查阅即可!

但是实际动手操作还是必须的为原创!

转载于:https://blog.51cto.com/linuxnote/1637772

监控服务器Nagios之一 概述及安装相关推荐

  1. Nagios 监控平台快速安装

    Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等. 一.首先安装apache: 安装apache,采用yum方式安装 ...

  2. 2.淘宝购买行为分析项目——Hive查询、Sqoop的介绍与使用、SQLyog的安装与使用、Superset的概述与安装使用

    1.热卖商品Top10 思路:对于表中,需要求最热卖的商品,其实就是对商品的it进行分组,然后求有多少个用户id出现过(同一个用户可以反复购买,所以不需要去重),排序后再取前10个即可. select ...

  3. Docker概述、安装及基础命令

    Docker概述.安装及基础命令 一.Docker概述 1. docker是什么 2. docker与虚拟机的区别 3. docker使用场景 4. docker核心概念 5. docker引擎 6. ...

  4. REDIS01_概述、安装、key、字符串String、列表List、集合Set、Hash哈希、Zset有序集合、持久化策略

    文章目录 ①. Redis - 概述 ②. Redis - 安装 ③. 常用五大数据类型 ④. 字符串类型 - String ⑤. 列表类型 - list ⑥. 集合类型 - Set ⑦. 哈希类型 ...

  5. ELasticSearch——ElasticScarch 概述及安装(v7.8)

    ELasticSearch--ElasticScarch 概述及安装 1.Elastic Stack 简介 早期 Elastic Stack 名为 ELK,对应Elasticsearch,Logsta ...

  6. 大数据开发基础入门与项目实战(二)Java Web数据可视化之3.Linux概述、安装和结构

    文章目录 前言 1.Linux概述 (1)Linux简介 (2)Linux的应用领域及版本介绍 2.安装Linux (1)VMWare的安装 (2)使用VMWare构建虚拟机器 (3)安装CentOS ...

  7. 登录飞信未能找到主机名的服务器,Nagios 监控+飞信的安装与配置.ppt

    Nagios监控飞信的安装与配置 ;一. 前言:;二.下载所需软件;三.服务端环境配置;四.nagios 主程序安装;五.验证安装是否成功;六.安装nagios-plugins;3. 修改apache ...

  8. Nagios运维软件安装以及使用教程

    下面给大家说下nagios软件的使用教程,首先我们要准备好nagios相对应的安装软件,可以在我分享的这个链接下载,如果链接失效可以@一下我的QQ 邮箱353698376@qq.com,我邮箱发给你们 ...

  9. Struts1.x系列教程(4):标签库概述与安装

    Struts的整个视图层(就是MVC模式中的View层)是由Struts的定制标签(或者称为定制动作)和客户端代码(Javascript.HTML等)实现的.这些Struts标签被写在JSP页面中,用 ...

最新文章

  1. 阿里秋招面试全解析(含内推岗)
  2. Win8.1下Node.js连接oracle
  3. Java中 EvenQueue.invokeLater用法
  4. db2查询表结构语句_SQL语句大全,赶快收藏吧!
  5. 转: 关于流量控制与令牌桶介绍
  6. Jenkins忘记admin密码处理方法
  7. 计算机网络 --- 网络层IP数据报
  8. CodeForces-748D 贪心
  9. mysql打印语句_抓取mysql、redis、mongodb、http等协议并打印语句
  10. 1031. 查验身份证(15)-PAT乙级真题
  11. sql2005 脚本中给字段写说明
  12. 深入Jetty源码之HttpGenerator
  13. Differentially Private Asynchronous Federated Learning for Mobile Edge Computing in Urban Informatic
  14. 了解数据分析师,转行数据分析师,成为数据分析师
  15. 0门槛项目,闲鱼卖特价电影票,免费低价票源
  16. luogu 3373 线段树懒标记维护乘与加
  17. Springboot集成datax方案小记
  18. 巴斯扩散模型-Bass Diffusion Model
  19. Android自定义底部带有动画的Dialog
  20. vue重复点击路由报错,解决NavigationDuplicated: Avoided redundant navigation to current location: 问题

热门文章

  1. AndroidStudio_安卓原生开发_在Androidstudio中查看设备管理器---Android原生开发工作笔记160
  2. AndroidStudio_安卓原生开发_sharedpreferences清空---Android原生开发工作笔记150
  3. 大数据之-Hadoop3.x_MapReduce_序列化案例Debug调试---大数据之hadoop3.x工作笔记0101
  4. AndroidStudio安卓原生开发_UI高级_RecyclerView_循环复用控件_代替ListView_GridView---Android原生开发工作笔记121
  5. Netty工作笔记0077---handler链调用机制实例4
  6. 测试工作笔记001---web测试_工作经验_注意点_随时更新
  7. DataBseDesign工作笔记001---基于RBAC用户权限管理数据库设计_用图的形式说明_精确到页面的元素
  8. Rpc远程调用框架的设计与实现(1)
  9. ubuntu登陆死循环(全是搜狗拼音的锅!!!!!!!!!!!)
  10. fastadmin 后台管理 时间戳字段使用