Nagios简介:
Nagios是插件式的结构,它本身没有任何监控功能,所有的监控都是通过插件进行的,因此其是高度模块化和富于弹性的。Nagios监控的对象可分为两类:主机和服务。主机通常指的是物理主机,如服务器、路由器、工作站和打印机等,这里的主机也可以是虚拟设备,如xen虚拟出的Linux系统;而服务通常指某个特定的功能,如提供http服务的httpd进程等。而为了管理上的方便,主机和服务还可以分别被规划为主机组和服务组等。
Nagios是一款免费的开源IT基础设施监控系统,其功能强大,灵活性强,能有效监控 Windows 、Linux、VMware 和 Unix 主机状态,交换机、路由器等网络设备的网络设置等。一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios和Cacti监控的项目一致,可以监控服务器CPU、内存、硬盘、网络流量等等,区别是Nagios主要基于Nagios插件监控服务器主机状态监控,及时发送报警信息,而Cacti是基于rrdtool绘图通过snmp抓取数据,更偏向网络流量图形展示;
Nagios不监控任何具体数值指标(如操作系统上的进程个数),它仅用四种抽象属性对被监控对象的状态进行描述:OK、WARNING, CRITICAL和UNKNOWN。于是,管理员只需要对某种被监控对象的WARNING和CRITICAL状态的阈值进行关注和定义即可。Nagios通过将WARTING和CRTICAL的阈值传递给插件,并由插件负责某具体对象的监控及结果分析,其输出信息为状态信息(OK,WARNING,CRITICAL或UNKOWN)以及一些附加的详细说明信息。
监控网络并排除网络故障的工具:nagios、Ntop、OpenVAS、OCS、OSSIM等开源监控工具。
可以实现对网络上的服务器进行全面的监控,包括服务(apache、mysql、ntp、ftp、disk、qmail和http等)的状态,服务器的状态等。
Nagios:监控Windows、Linux和Unix的主机状态和服务、交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios适用于IT基础设施的监控系统,其功能强大,灵活性强,能有效监控各种操作系统的主机、交换路由设备等;Zabbix提供分布式系统监视以及网络监视功能,用于监控网络上的服务器,服务以及其他网络设备状态的网络管理系统。
Nagios是一款免费的开源IT基础设施监控系统,其功能强大,灵活性强,能有效监控 Windows 、Linux、VMware 和 Unix 主机状态,交换机、路由器等网络设备的网络设置等。一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运维人员,在状态恢复后发出正常的邮件或短信通知。
优缺点分析:优点是配置灵活、监控项目很多、自动日志滚动、支持冗余方式主机监控、报警设置多样性。缺点是事件控制台功能较弱、无法查看历史数据、插件易用性不好。
Nagios适用于IT基础设施的监控系统,其功能强大,灵活性强,能有效监控各种操作系统的主机、交换路由设备等;
特性
由上述说明可以,Nagios是极富弹性的,其监控功能完全可以按照管理员的期望进行。此外,它外提供了对问题的自动响应能力和一个功能强大的通知系统。所有这些功能的实现是基于一个结构明晰的对象定义系统和少数几个对象类型实现的。
1)命令(Commands)
“命令”用于定义Nagios如何执行某特定的监控工作。它是基于某特定的Nagios插件定义出的一个抽象层,通常包含一组要执行的操作。
2)时段(Time periods)
“时段”用于定义某“操作”可以执行或不能执行的日期和时间跨度,如工作日内的每天8:00-18:00等;
3)联系人和联系人组(Contacts and contact groups)
“联系人”用于定义某监控事件的通知对象、要通知的信息以及这些接收通知者何时及如何接收通知;一个或多个联系人可以定义为联系人组,而一个联系人也可以属于多个组;
4)主机和主机组(host and host groups)
“主机”通常指某物理主机,其包括此主机相关的通知信息的接收者(即联系人)、如何及何时进行监控的定义。主机也可以分组,即主机组(host groups),一个主机可同时属于多个组;
5)服务(Services)
“服务”通常指某主机上可被监控的特定的功能或资源,其包括此服务相关的通知信息的接收者、如何及何时进行监控等。服务也可以分组,即服务组(Service groups),一个服务可同时属于多个服务组;
相关概念
1、 依赖关系
Nagios的强大功能还表现在其成熟的依赖关系系统上。比如,某路由设备故障必然会导致关联在其上的其它主机无法被正常访问,如果不能定义这些设备间的依赖关系,那么监控系统上必然会出现大量的设备故障信息。而Nagios则通过依赖关系来描述网络设备的拓扑结构,并能够实现在某设备故障时不再对依赖于此设备的其它设备进行检测,从而避免了无谓的故障信息,方便管理员及时定位并排除故障。此外,Nagios的依赖关系还可以在服务级别上实现,如果某服务依赖于其它服务时,也能实现类似主机依赖关系的功能。
2 宏
Nagios还能够使用宏,并且宏的定义在整个Nagios系统中具有一致性。宏是能够用于对象定义中的变量,其值通常依赖于上下文。在“命令”中定义的宏,相对于主机、服务或其它许多参数来说,其值会随之不同。比如,某命令可以根据向其传递的IP地址的不同来监控不同的主机。
3.3 计划中宕机
Nagios还提供了调度性计划中的宕机机制,管理员可以周期性的设定某主机或服务为计划中的不可用状态。这种功能可以阻止Nagios在调度宕机时段通知任何信息。当然,这也可以让Nagios自动通知管理员该进行主机或服务维护了。
4、 软状态和硬状态(Soft and Hard States)
如上所述,Nagios的主要工作是检测主机或服务的状态,并将其存储下来。某一时刻,主机或服务状态仅可以是四种可用状态之一,因此,其状态能够正确反映主机或服务的实际状况就显得特别关键。为了避免某偶然的临时性或随机性问题,Nagios引入了软状态和硬状态。在实际的检测中,Nagios一旦发现某主机或服务的状态为UNKOWN或不同于上一次检测时的状态,其将会对此主机或服务进行多次测试以确保此状态的变动是非偶然性的。具体共要做出几次测试是可以配置的,在这个指定次数的测试时段内,Nagios假设此变化后的状态为软件状态。一旦测试完成后状态仍然为新变的状态时,此状态就成了硬状态。
相关配置及参数详解
5.1 Nagios的主配置文件
Nagios的主配置文件为nagios.cfg,其语法非常简洁,通常#开头的行为注释行,而参数的设置格式为<parameter>=<value>;其中,有些参数是可以重复出现的。其中常用的参数说明如下:
log_file: 设定Nagios的日志文件;
cfg_file: Nagios对象定义的相关文件,此参数可重复使用多次以指定多个文件;
cfg_dir: 设定Nagios对象定义的相关文件所在的目录,此目录中的所有文件都会被作为对象定义的文件;此参数可重复使用多次以指定多个目录;
resource_file: 设定Nagios附加的宏定义的相关文件;
status_file: 设定Nagios存储所有主机和服务当前状态信息的文件;
status_update_interval: 设定status_file指定的文件中状态信息的更新频率;
service_check_timeout: 设定服务检测的超时时间,默认为60秒;
host_check_timeout: 设定主机检测的超时时间,默认为30秒;
notification_timeout: 设定通知信息发送尝试的超时时间,默认为30秒;
5.2 resource_file和宏定义
在主配置文件中,参数resource_file用于定义所有用户变量(即“宏”)的存储文件,它用于存储对象定义中的可以访问的额外信息,如访问某服务的密码等;因此,这些信息通常都是些敏感数据,一般不允许通过Web接口来访问。此文件中可以定义的宏可多达32个,它们分别为$USER1$,$USER2$...$USER32,这些宏一般在check命令中引用。通常情况下$USER1$用于引用Nagios插件所在目录这个路径信息,因此,一般不建议修改其值。
Nagios事先定义了许多宏,它们的值通常依赖于其上下文。
如下:
HOSTNAME: 用于引用host_name指定所定义的主机的主机名;每个主机的主机名都是唯一的;
HOSTADDRESS: 用于引用host对象中的address指令的值,它通常可以为IP地址或主机名;
HOSTDISPLAYNAME: 用于引用host对象中alias指令的值,用以描述当前主机,即主机的显示名称;
HOSTSTATE:某主机的当前状态,为UP,DOWN,UNREACHABLE三者之一;
HOSTGROUPNAMES: 用于引用某主机所属的所有主机组的简名,主机组名称之间以逗号分隔;
LASTHOSTCHECK:用于引用某主机上次检测的时间和日期,Unix时间戳格式;
LISTHOSTSTATE:用于引用某主机前一次检测时的状态,为UP,DOWN或UNREACHABLE三者之一;
SERVICEDESC: 用于引用对应service对象中的desccription指令的值;
SERVICESTATE: 用于引用某服务的当前状态,为OK,WARNING,UNKOWN或CRITICAL四者之一;
SERVICEGROUPNAMES: 用于引用某服务所属的所有服务组的简名,服务组名称之间以逗号分隔;
CONTACTNAME: 用于引用某contact对象中contact_name指令的值;
CONTACTALIAS: 用于引用某contact对象中alias指令的值;
CONTACTEMAIL: 用于引用某contact对象中email指令的值;
CONTACTGROUPNAMES: 用于引用某contact所属的所有contact组的简名,contact组名称之间以逗号分隔;
引用方式根据对象类型的不同也有所不同,具体如下:
$_HOST<variable>$ – 引用在主机对象中定义的指令的值;
$_SERVICE<variable>$ – 引用在服务对象中定义的指令的值;
$_CONTACT<variable>$ – 引用在联系人对象中定义的指令的值;
Nagios的功能特征包括:
1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
2、监控主机资源(处理器负荷、磁盘利用率等);
3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
4、并行服务检查机制;
5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
7、可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
8、自动的日志滚动功能;
9、可以支持并实现对主机的冗余监控;
10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
Nagios和cacti的区别:
cacti主要是监控流量,服务器状态页面展示;nagios主要监控服务,邮件及短信报警灯,也有简单的流量控制界面,二者综合使用效果更好,
Nagios监控客户端需要借助Nagios插件及NRPE软件来实现,NRPE作为中间的代理程序,接受Nagios服务端发来的请求,另一端在远程主机上指定的相关的监控信息。
Nagios原理图
注意:左边是客户端,,右边是服务端。
Database不存放客户监控数据
Ntop:监控网络流量,流量采集技术有以下几个:
1.sniffer:采集的信息最全面,可完全复制网络的数据报文。
2.SNMP:是一种主动的采集方式,取得的数据只包含端口层数据, 对于伪造端口地址的蠕虫病毒无能为力。
3.Netflow :统计所有网络报文,对网络设备性能影响较大。
4.sFlow:采用采样的方式,通过设定一定的采样率,进行数据捕获,对网络设备影响很小。
Nagios的管理模式:
分布-集中的管理模式,在nagios服务器上安装主程序,在被监控主机上安装nagios代理程序,通过nagios主程序nagios代理程序之间的通信,监控对象的状态。
nagios通过nrpe插件来远程管理服务的工作过程
- Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测哪些服务。
- 通过ssl,check_nrpe连接远端机器上的NRPE daemon。
- NRPE运行本地的各种插件去检测本地服务器和状态(check_disk,...etc)。
- NRPE把检测的结果传给主机端的check_nrpe,check_nrpe再把结果送到nagios状态队列中。
- Nagios依次读取队列中的信息,再把结果显示出来。
nagios的四种监控状态
Nagios可以识别四种状态返回信息。0(OK)表示状态正常(绿色显示)
- (WARNING)表示出现警告(黄色),
- (CRITICAL)表示出现非常严重错误(红色),
- (UNKNOWN)表示未知错误(深黄色),nagios根据插件返回来的值来判断监控对象的状态,并通过web显示出来,以供管理员即时发现故障。
安装方法1
注意:Nagios需要LAMP环境,如果没有就安装,,客户端不安装Nagios,服务端安装Nagios
Nagios配置文件
在centos 6中安装
【root@localhost ~】# yum install -y httpd mysqld mysqld-server mysql-devel php php-devel php-mysql
在centos 7中安装
【root@localhost ~】# yum install -y httpd mariadb mariadb-server mariadb-devel php php-devel php-mysql
wget -c http://nchc.dl.sourceforge..net/projects/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz
wget -c http://down1.chinaunix.net/distfiles/nagios-plugins-1.4.14.tar.gz
在./configure之前,创建nagios用户(的同时也会自动创建组),#useradd nagios
注意:make install-webconf 生成nagios.conf配置文件,下面是nagios.conf配置文件内容
【root@localhost nagios】# cd /usr/local/ngios/
【root@localhost nagios】# ls
【root@localhost nagios】# cd share/
【root@localhost share】# ls
【root@localhost share】#cd /etc/httpd/conf.d
【root@localhost share】# ls
重启apache
【root@localhost share】# /etc/init.d/httpd restart
启动失败
在浏览器上面输入IP:192.168.226.130/nagios/
创建用户名和密码
/etc/init.d/nagios restart
在clinet客户端安装插件
安装2
1.依赖套件安装
[root@localhost]# cd /usr/local/src
[root@localhost src]# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel libpng libpng-devel libjpeg libjpeg-devel zlib zlib-devel httpd php php-devel
2.创建nagios用户以及用户组
[root@localhost src]# useradd -s /sbin/nologin nagios
[root@localhost src]# mkdir /usr/local/nagios
[root@localhost src]# chown -R nagios.nagios /usr/local/nagios
安装完成后在/usr/local/nagios里面生成上图看到的几个目录,分别是 var日志文件,bin执行程序,etc配置文件,sbin, share libexec网页的目录。至此安装成功。
3.编译安装nagios
[root@localhost src]# wget http://iweb.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.1.1/nagios-4.1.1.tar.gz
解压
[root@localhost src]# tar zxvf nagios-4.1.1.tar.gz
[root@localhost nagios-4.1.1]# cd nagios-4.1.1
#指定安装目录
[root@localhost nagios-4.1.1]# ./configure --prefix=/usr/local/nagios
[root@localhost nagios-4.1.1]# make all #编译
#安装主程序和CGI和html文件
[root@localhost nagios-4.1.1]# make install # 安装
#创建启动脚本
[root@localhost nagios-4.1.1]# make install-init #把nagios做成一个运行脚本,是nagios随系统开机时启动
#配置目录权限
[root@localhost nagios-4.1.1]# make install-commandmode #给外部命令访问配置权限
#安装示例配置文件
[root@localhost nagios-4.1.1]# make install-config 把配置文件样例复制到nagios的安装目录下
chkconfig --add nagios
chkconfig --level 35 nagios on
chkconfig --list nagios
4.目录说明
切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 这五个目录,如果存在则可以表明程序被正确的安装到系统了。Nagios 各个目录用途说明如下:
bin Nagios 可执行程序所在目录
etc Nagios 配置文件所在目录
sbin Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
share Nagios网页文件所在的目录
libexec Nagios 外部插件所在目录
var Nagios 日志文件、lock 等文件所在的目录
var/archives Nagios 日志自动归档目录
var/rw 用来存放外部命令文件的目录
5.插件安装
nagios本身并没有监控的功能,所有的监控是由插件完成的,插件将监控的结果返回给nagios,nagios分析这些结果,以web的方式展现给我们,同时提供相应的报警功能
[root@localhost src]# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz
解压
[root@localhost src]# tar zxvf nagios-plugins-1.4.16.tar.gz
[root@localhost src]# cd nagios-plugins-1.4.16
编译安装
[root@localhost src]# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
[root@localhost src]# make && make install
安装完成后,在/usr/local/nagios目录下生成插件文件libexec,nagios所有的插件都会在这个目录下。
修改配置文件/usr/local/apache/conf/httpd.conf
找到如下两行
增加如下两个代码段
Apache配置文件改完后,使用命令htpasswd给nagiosadmin用户设置密码(我设置为123456)
检查配置文件有没有问题
显示如下 则说明没有问题
在客户端浏览器输入:http://IP/nagios.看到如下效果。则我的nagios服务已经安装成功
检查nagios的配置是否正确:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 若没有错误,就可以启动nagios了。
nagios启动的方式有两种:
l /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
l /etc/init.d/nagios start
常见问题:
1、[root@server34 nagios-cn-3.2.3]# ./configure
错误:*** GD, PNG, and/or JPEG libraries could not be located... *********
解决:需要安装gd-devel:
2、
其实它是要制作目标文件/include/locations.h,这个是头文件,可是这个头文件需要broker.o文件
这个文件是由perl安装包提供的,你可以先执行下面命令安装perl,然后再重新./configure一下,再make all就没有问题啦
yum install perl -y
yum install perl -y
# make install
# make install-init
# make install-commandmode
# make install-config
# chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
3、
则在编译时入加 --with-included-apr 即可解决。
4、
参考链接:https://my.oschina.net/wdos/blog/73117
链接:
nagios监控三部曲之——nagios的安装与配置(1) : http://blog.51cto.com/dl528888/763032
nagios监控三部曲之——为什么nagios不能发送报警邮件(2) : http://blog.51cto.com/dl528888/763079
nagios监控三部曲之——nagios实现飞信报警(3) : http://blog.51cto.com/dl528888/770684
http://blog.51cto.com/izhouyu/1965409
nagios论坛 :http://www.cnyunwei.com/forum-60-1.html
Nagios 3 Enterprise Network Monitoring :http://club.topsage.com/thread-242245-1-1.html |
Building a Monitoring Infrastructure with Nagios : http://club.topsage.com/thread-242244-1-1.html
Network Management with Nagios : http://club.topsage.com/thread-242243-1-1.html |
Nagios: System and Network Monitoring :http://club.topsage.com/thread-242242-1-1.html
Nagios-超详细配置,监控必备,不看绝对损失 : https://mp.weixin.qq.com/s/0q7Qw4pfCX87l76sVmF1gQ
Apress Pro Nagios 2.0 :http://club.topsage.com/thread-242241-1-1.html
nagios监控磁盘分区使用 : http://blog.chinaunix.net/uid-25266990-id-108070.html
Nagios解决libraries: libltdl.so.3问题 : http://blog.chinaunix.net/uid-25266990-id-2485793.html
nagios 客户端安装配置 : http://blog.chinaunix.net/uid-25266990-id-2422661.html
使用pnp4nagios实现Naigos服务图表 : http://blog.chinaunix.net/uid-25266990-id-3437195.html
使用NDOUtils将Nagios监控信息存入Mysql : http://blog.chinaunix.net/uid-25266990-id-3417451.html
nagios配置监控的一些思路和工作流程 : http://blog.51cto.com/xiaoluoge/1587997
nagios一键安装脚本 : http://blog.51cto.com/xiaoluoge/1587079
Nagios&Cacti : Nagios&Cacti
原 CentOS6.6下的Nagios简单安装 : https://blog.csdn.net/u012402276/article/details/49427187
原 CentOS6.6下的Nagios安装配置详解(一) : https://blog.csdn.net/u012402276/article/details/49640373
原 CentOS6.6下的Nagios安装配置详解(二) : https://blog.csdn.net/u012402276/article/details/49640551
原 CentOS6.6下的Nagio安装配置详解(三) : https://blog.csdn.net/u012402276/article/details/49640755
原 Nagios排错集合 : https://blog.csdn.net/u012402276/article/details/49684163
Nagios搭建完整记录--田逸老师nagios笔记补充完整版 : http://blog.51cto.com/zhouxuguang/510816
nagios报错:./stdio.h:456:1: error: 'gets' undeclared here (not in a function) 荐 : http://blog.51cto.com/ityunwei2017/1893212
nagios通过微信告警(无限制告警条数) 荐 : http://blog.51cto.com/ityunwei2017/1891946
Nagios监控Redis : http://blog.51cto.com/ityunwei2017/1845178
Nagios监控Mysql : http://blog.51cto.com/ityunwei2017/1843015
Nagios调用Python程序控制微信公众平台发布报警信息 : http://blog.51cto.com/ityunwei2017/1775702
Nagios监控Dell服务器硬件状态 : http://blog.51cto.com/ityunwei2017/1766745
Nagios监控ESXI主机系统、硬件、nagios日志文件时间格式转换 : http://blog.51cto.com/ityunwei2017/1755319
运维监控利器Nagios:概念、结构和功能 :https://www.ixdba.net/archives/2012/06/142.htm
运维监控利器Nagios之:安装nagios :https://www.ixdba.net/archives/2012/06/144.htm
运维监控利器Nagios之:nagios配置详解 : https://www.ixdba.net/archives/2012/06/146.htm
运维监控利器Nagios之:Nagios的日常维护和管理 : https://www.ixdba.net/archives/2012/06/148.htm
企业监控系统 Nagios+Centreon 简介 : https://mp.weixin.qq.com/s/Q3jcHFrzXrzPOKKOqQXiuA
Nagios 可视化指南 : https://mp.weixin.qq.com/s/gcU1j_BIFgXxeGciSS73xA