Nagios详解(基础、安装、配置文件解析及监控实例)

一、Nagios基础

1.简介
Nagios是一款开源网络监视工具。
可监控网络服务(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH、PING~~~)、监控主机资源、根据需求设置相关插件监控、通过Email,短信及用户自定义方式实施警报、可选的web界面查看当前网络状态、通知和故障历史、日志文件等。
2.工作原理
Nagios的功能是监控服务和主机,但其监控、检测功能时通过插件完成。
3.工作对象
1).主机(交换机、路由器、虚拟机~~~),由多个主机组成组称为的主机组;
2).服务(通过监听在某个套接字上对外输出信息),由多个服务组成的组称为服务组;
3).联系人,由多个联系人组成的组称为联系人组;
4).时段(定义监控对象在指定时间段处于非正常情况下时发出告警),无时段组概念;
5).命令(对不同监控对象所设定的告警阀值不同,即需将对其监控工具的插件做相应修改后应用与监控对象)。
4.监控状态
状态 正常 警告 严重 未知错误
代码 OK WARNING CRITICAL UNKOWN
颜色 绿色 黄色 红色 深黄色
5.图示

Nagios详解(基础、安装、配置文件解析及监控实例)

  Nagios系统提供插件NRPE,其通过周期性运行插件获得远端服务器各种状态信息并管理。
1)Nagios执行check_nrpe插件,同时确定检测服务对象;
2)通过SSL,check_nrpe连接远端机器上的NRPE daemon;
3)NRPE运行本地插件检测本地服务与状态(check_disk,check_etc~~~);
4)NRPE将检测结果传输给主机端的check_nrpe,再送到Nagios状态队列;
5)Nagios依次读取队列信息,显示结果。
6.软件版本

Nagios详解(基础、安装、配置文件解析及监控实例)

7.object:各种对象的配置文件所存放的目录
定义命令对象:commands.cfg

1 define command{
2 command_name check-host-alive
3 command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
4 }

command_name:定义命令名称,可自定义,必须全局唯一;
command_line:定义真正执行的自定义模板,即将各种对被监控主机的特殊属性传递给模板,应用到被监控对象;
-H:指定被监控对象的主机名或IP,其主机地址通过宏变量$HOSTADDRESS$进行引用,该变量会根据上下文自动引用当前被监控主机的地址;
-w:warning的阈值(-w 3000.0,80% 意:延迟3000ms,丢包率达80%时告警);
-c:critical的阈值(-c 5000.0,100% 意:延迟5000ms,丢包率达100%处于critical状态);
-p:定义总共统计数据包数量。

定义上下文内容:contacts.cfg

1 define contact{
2 contact_name nagiosadmin 
3 use generic-contact 
4 alias Nagios Admin 
5 email kazihuo888@sina.com 
6 }

contact_name:定义联系人名字,必须全局唯一;
use:指定从哪个模板继承属性;
alias:对contact_name定义描述性名称;
email:接收邮件的地址。

定义时段:timeperiods.cfg

 1 define timeperiod{
 2 timeperiod_name 24x7
 3 alias 24 Hours A Day, 7 Days A Week
 4 sunday 00:00-24:00
 5 monday 00:00-24:00
 6 tuesday 00:00-24:00
 7 wednesday 00:00-24:00
 8 thursday 00:00-24:00
 9 friday 00:00-24:00
10 saturday 00:00-24:00
11 }

定义模板:templates.cfg

 1 define host{
 2 name generic-host 
 3 notifications_enabled 1 
 4 event_handler_enabled 1 
 5 flap_detection_enabled 1 
 6 process_perf_data 1 
 7 retain_status_information 1 
 8 retain_nonstatus_information 1 
 9 notification_period 24x7 
10 register 0 
11 }

notifications_enabled:是否发送通知;
event_handler_enabled:是否启动额外的处理器;
flap_detection_enabled:是否检测flap,即是否对状态频繁转换的服务或主机做特定检测;
process_perf_data:进程性能数据是否输出;
retain_status_information:是否保存状态信息;
retain_nonstatus_information:是否保存非状态信息;
notification_period:指定发送通知时间(使用timeperiods.cfg文件中时段);
register :定义为模板,即可被其他主机或服务引用。

 

 1 define host{
 2 name linux-server 
 3 use generic-host 
 4 check_period 24x7 
 5 check_interval 5 
 6 retry_interval 1 
 7 max_check_attempts 10 
 8 check_command check-host-alive 
 9 notification_period workhours 
10 notification_interval 120 
11 notification_options d,u,r 
12 contact_groups admins 
13 register 0 
14 }
define host

相关文章: