本帖最后由 monicazhang 于 2015-10-30 21:30 编辑
目录
Nagios Core分析文档 一、Nagios简介 Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站/IT运维人员,在状态恢复后发出正常的邮件或短信通知; nagios安装 Nagios可以监控的功能: 1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等); 2、监控主机资源(处理器负荷、磁盘利用率等); 3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法; 4、并行服务检查机制; 5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态; 6、当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式); 7、具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位; 8、自动的日志回滚; 9、可以支持并实现对主机的冗余监控; 开源监控软件 10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
二、Nagios监控图 Nagios可以在其他模块的共同协助下完成对主机、服务等监控(主动监控、被动监控)。 Nagios的监控可以分为五大部分:Nagios core(核心守护进程)、NRPE守护进程、NSCA守护进程、NSClient++守护进程、NDO2DB守护进程。 各个模块的作用: Nagios core:核心守护进程,负责协调各个模块的运行,以及日志记录等等。 NRPE守护进程:负责远程Linux/UNIX主机的服务和主机监测。 NSCA守护进程:负责被动监测主机和服务。 NSClient++守护进程:负责监测Windows主机服务。 NDB2DB守护进程:负责把nagios core守护进程的运行日志、配置信息、事件信息等入库(数据库一般使用MySQL 5.x数据库)。 下图展示了nagios 主要结构图:
三、Nagios源代码结构 Nagios源码目录的结构如下: nagios配置
各个目录作用: Base:nagios守护进程文件 Cgi:生成cgi命令文件 Common:公共库文件 Include:头文件 监控软件 Module:事件代理模块 Html:网页显示模块
四、Nagios执行流程(一)Nagios总流程 Nagios Core Server开源软件包基于UNIX/Linux C开发,并调用了 Nagios的标准启动命令: $ nagios –d /usr/local/nagios/etc/nagios.cfg Nagios 启动以后,主要是从执行nagios.c文件中的main函数开始 Nagios的主要执行流程如下: 1、读入配置文件(read_main_config_file) 2、初始化event_broker 3、载入所有broker_mod(ndomod包括在这里面) 4、读入object信息(包括service,host,servicegroup,hostgroup,contact,contactgroup等等) 5、告诉broker,我启动了 6、初始化daemon(例行工作,fork进程,修改根目录,设置信号量等等) nagios实施 7、打开cmd文件(nagios.cmd) 8、初始化status数据(status.dat)
9、读取保存数据(retention.dat) 10、读取注释数据 11、读取downtime数据 12、读取性能数据 13、初始化event_timing循环 14、初始化check_stats 15、生成status.dat(空的,不写数据) 16、传输event_loop_start信息到broker(ndo:获取scheduling_info中数据) 17、开始event_execution_loop,检查数据,直到捕获重启或者关闭信号
如果接到了重启或者关闭的信号,则继续往下执行 18、通知broker_mod,我要关闭了,或者我要重启了 nagios培训 19、保存retention文件 20、清理性能数据
|