monicazhang 发表于 2015-10-30 21:30:04

Nagios分析文档(1)

本帖最后由 monicazhang 于 2015-10-30 21:30 编辑

20151030淡然
目录一、Nagios简介... 3二、Nagios监控图... 3三、Nagios源代码结构... 4
四、Nagios执行流程... 5(一)Nagios总流程... 5(二)流程详细分析... 61、初始化循环... 62、主循环(event_execution_loop)... 73、主动监测(event_service_check,event_host_check)... 84、结果回收(event_check_reaper)... 95、结果输出(event_status_save)... 9
五、扩展... 10Nagios 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.cfgNagios 启动以后,主要是从执行nagios.c文件中的main函数开始Nagios的主要执行流程如下:1、读入配置文件(read_main_config_file)2、初始化event_broker3、载入所有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_stats15、生成status.dat(空的,不写数据)16、传输event_loop_start信息到broker(ndo:获取scheduling_info中数据)17、开始event_execution_loop,检查数据,直到捕获重启或者关闭信号
如果接到了重启或者关闭的信号,则继续往下执行18、通知broker_mod,我要关闭了,或者我要重启了                        nagios培训19、保存retention文件20、清理性能数据




待续:http://ITIL-foundation.cn/thread-53038-1-1.html
本帖关键字:Nagios
页: [1]
查看完整版本: Nagios分析文档(1)