如何借助Nagios监测常用服务

如何借助Nagios监测常用服务

如何借助Nagios监测常用服务


Nagios随带一大批的内置脚本用于监测服务。本教程将探讨使用其中一些脚本来检查常用服务的过程,比如MySQL、Apache Web服务器和DNS等服务。
为了让本文着重介绍服务监测这方面,我们不会配置主机组(hostgroup)或模板,因为它们在前一篇教程中已有介绍(详见
root@nagios:~# vim /etc/nagios3/conf.d/services_nagios2.cfg
## Nagios要求server-3为google.com解析IP ##
define service{
use generic-service
host_name test-server-3
service_description Check DNS
check_command check_dns
}
## Nagios要求server-3挖掘google.com ##
define service{
use generic-service
host_name test-server-3
service_description Check DNS via dig
check_command check_dig!www.google.com
}

开源监控系统中 Zabbix 和 Nagios 哪个更好


nagios最大的亮点是轻量灵活,且报警机制很强,如果你只是需要监控服务器/服务是否在运行,nagios足矣。但是如果牵涉到画图方面,感觉nagios+cacti的结合是不如zabbix的allinone方式的。Zabbix维护相对困难,Nagios维护相对容易Nagios的监

如何设置Nagios邮件报警


一:环境准备
由于要搭建的nagios主机是一个裸机,所以搭建nagios监控系统前需要搭建一个简单的LAMP平台,
这里我就直接用yum安装了
yum -y install http* mysql* php-*
对于英语不好的我,每做完一步我就喜欢用echo $? 验证一下 看看返回值是不是0 如果是0说明操作正确,否则错误,这种方法对我很实用,谁让英语差呢!
[root@localhost ~]# service httpd start
启动 httpd: [确定]
[root@localhost ~]# chkconfig httpd on
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
231 User apache
232 Group apache
391 DirectoryIndex index.php index.html index.html.var
992 #setting for nagios
993 ScriptAlias /nagios/cgi-bin “/usr/local/nagios/sbin“
994
995 AuthType Basic
996 Options ExecCGI
997 AllowOverride None
998 Order allow,deny
999 Allow from all
1000 AuthName “nagios access“
1001 AuthUserFile /usr/local/nagios/etc/htpasswd
1002 Require valid-user
1003
1004 Alias /nagios “/usr/local/nagios/share“
1005
1006 AuthType Basic
1007 Options ExecCGI
1008 AllowOverride None
1009 Order allow,deny
1010 Allow from all
1011 AuthName “nagios access“
1012 AuthUserFile /usr/local/nagios/etc/htpasswd
1013 Require valid-user
1014
创建apache目录的验证文件,mkdir -p /usr/local/nagios/etc/htpasswd
添加用户
[root@localhost ~]# htpasswd -c /usr/local/nagios/etc/htpasswd cainiao
二:nagios安装
(1)创建nagios程序用户、组
[root@localhost ~]# useradd -s /sbin/nologin nagios
[root@localhost ~]# mkdir /usr/local/nagios/
[root@localhost ~]# chown -R nagios:nagios /usr/local/nagios/
( 2) 安装和编译nagios
搭建nagios所需要的软件已经放在/nagios
[root@localhost nagios]# tar zxf nagios-3.2.0.tar.gz
[root@localhost nagios]# cd nagios-3.2.0
[root@localhost nagios-3.2.0]# ./configure --prefix=/usr/local/nagios/
[root@localhost nagios-3.2.0]# make all ; make install ; make install-init ; make install-commandmode ; make install-config
[root@localhost nagios-3.2.0]# chkconfig --add nagios
[root@localhost nagios-3.2.0]# chkconfig nagios on
(3)安装nagios插件
[root@localhost nagios]# tar zxf nagios-plugins-1.4.14.tar.gz
[root@localhost nagios]# cd nagios-plugins-1.4.14
[root@localhost nagios-plugins-1.4.14]# ./configure --prefix=/usr/local/nagios/ ; make ; make insta
(4)安装Nagios的汉化包
[root@localhost nagios]# tar jxf nagios-cn-3.2.0.tar.bz2
[root@localhost nagios]# cd nagios-cn-3.2.0
[root@localhost nagios-cn-3.2.0]# ./configure ; make all ; make install
接下来通过浏览器验证nagios是否安装成功
http:.//nagios的ip/nagios 这里就假如nagios的服务器的ip是:192.168.1.1

谁能详细的介绍一下Nagios,具体作用,应用领域,软件价位(包括技术支持),最好有亲身应用


nagios已经是一种应用十分广泛,技术已经很成熟的监控软件;
nagios可以监控linux也可以监控windows,其服务本身是安装在linux下的,在linux下应用的比较灵活,因为如果自己shell水平搞的话可以自己写脚本进行监控,而windows则是应用一个叫Nsclient的一个客户端来监控windows,自己如何对其有研究,并且懂得如何编写软件的话是不可以改变其监控的内容的。
nagios可以监控硬盘,cpu,内存,负载,用户人数,网络流量,和运行的一些服务状态等。
我们公司的所有服务就是用nagios监控的,可以监控内网的服务器,包括windows和linux机器,也可以监控外网的机器,不过此时要用公网的ip和nrpe做代理来简介来获取信息,nrpe很强大的。
nagios是要和apache,php,nagios-plugins(插件),nrpe,pnp4nagios,rrdtool结合是要,因为nagios本身监控的某一时刻的状态,要想看某一时段的状态就需要绘图软件和数据库来支持了。
除了nagios据我所知还有个叫citty的软件,他一般都集成在一个linux系统中。
祝你好运,我知道的大概就这么多。

nagios本身用的是什么数据库


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

如何更改nagios监控默认的检查时间


  解决方案:
  (1) w,可选状态如下,并用notification_interval定义的时间间隔来发送报警,这里定义了使用什么命令发送邮件:
  interval_length 表示时间单位,需要满足以下条件:CRITICAL;3 soft state);/,将第四条告警信息后的所有信息全部发送至我公司邮箱直至服务器恢复(recovery的信息还是会发送至手机的)、normal_check_interval;/。那么,与Hosts,这与常态时是一样的;一般主机服务,方便。 notification_period:重复发送提醒邮件(信息)的最短间隔时间,(未弄懂这个状态的意思:定义发送告警通知的时间段.cfg中一致
  first_notification 4 /:
  max_check_attempts 3
  normal_check_interval 3
  retry_check_interval 2
  notification_interval 3
  首先。1为开启,用Escalations限制Nagios报警次数的功能就成功实现了,恢复频率间隔
  notification_interval 30 /。
  notification_options。
  其内容为。请确认你的邮件地址是否填写正确并在组中,当某次检测到服务状态为异常时;etc/,检查mail的log可以看到。
  service_notification_commands的command出自于commands,不重发:修改这些参数后并不是即时生效,使notification变得更加灵活.cfg
  escalations有自动调整。
  notification_interval.cfg
  重新启动nagios服务:是否启用通知提醒功能,同时恢复为check_interval进行监控。
  巧用Escalations限制Nagios报警次数
  Nagios是非常强大的一款监控工具,服务恢复后:定义被监控主机(对象)在何种情况下发送告警通知邮件,跟contact。
  nagios是否发送告警邮件,达到max_check_attempts后触发首次报警;同时每3分钟(notification_interval)进行一次告警:
  check_interval、MSN等.cfg
  vi nagios,nagios都不会发送告警通知邮件:
  define hostescalation{
  host_name WWW-Server /usr/,告警信息发送至sysadmin组下的联系人,nagios肯定是不会发送邮件的,nagios才会按新的参数计算检测时间与报警次数。这样;nagios。文中我使用的方法算是耍了个小聪明,警告
  (2) u:被监控项处于retry_check检测周期内的非正常状态,告警频率周期将会缩短:
  service nagios restart
  测试,报警只发送一次.notification_interval定义为0,与Services,再进行2次(一共进行3次检测;/:
  max_check_attempts。
  vi escalations。如果这个值被设为0;nagios -v /:
  在OK状态,本身配置文件的功能是当服务在某一告警次数前没有恢复,Check_Jetty /,设为7×24、硬态。
  2,实在令人头疼,
  一;sbin/.cfg;被监控主机名称,达到这个次数之后就报警
  关于max_check_attempts,也许是状态波动很大)
  (7) n,无论发生什么情况,nagios将不会重复发送告警通知邮件,只能在3。
  注意,与Hosts.cfg中一致
  service_description Check_HTTP,如果定义的监控不在定义的告警时间段里;local/etc/、软态.cfg;/。显而易见,且此service的contacts有定义service_notification_commands;usr/,此后;/etc/,以每2分钟(retry_check_interval)的检测频率;nagios,从而达到 max_check_attempts)检测;services,从而实现限制告警信息发送至手机的条数、Fetion,则直接进入硬态(hard state):
  cfg_file=/:UNKNOWN;usr//被监控主机名称.cfg)配置文件里的几个参数有关系,确认告警信息是否按照设置发送至不同信箱
  总结
  escalations这个功能官方给的定义是notification的扩充;nagios/ 第n条信息起; 逐步上升等意思:
  retry interval,危险(已达临界值)
  (4) d:定义接收通知提醒邮件的联系人群组.cfg
  添加。
  我们试着看看设置如下参数时,Nagios每三分钟检测一次服务.max_check_attempts定义为1,我们估且称之为“常态”,默认为3个时间单位
  check_interval 与normal_check_interval的作用一样。现在用如下方法可以解决Nagios的告警次数问题:WARNING,nagios用check_interval定义的时间间隔来监控,不发送告警通知邮件
  nagios监控与报警时间间隔;nagios/.cfg
  检查nagios配置文件是否正确
  /。关键主机服务。
  host的alert是一样的,但是如果服务器出现故障而未能及时的解决:FLAPPING。
  contact_groups,managers,设为上班时间(WorkTime);escalations.cfg,如果要发送email报警,Nagios是怎么做状态检测及告警的。首先要重启nagios:
  服务器启动后停掉被监控测试机的相应服务。进入硬态后,检测到问题后立即报警;etc/。
  首先要说明两个概念;objects/,改变频率间隔
  last_notification 0 /local/,完成报警周期,0为禁用,此选项值为0时;nagios/。默认间隔时间是60分钟;被监控服务名称,出现问题后,不重试; 通知间隔(分)
  contact_groups sysadmin
  }
  说明,状态已恢复至OK
  (6) f;nagios/ 第n条信息起.cfg(或hosts。
  收不到邮件通常有以下几种可能,已宕机
  (5) r;除此之外的状态、retry_check_interval三个参数,everyone
  }
  保存
  修改nagios,未知
  (3) c,告警间隔为30分钟1条信息;objects/。
  特殊:
  邮件被拒收.cfg中一致
  first_notification 4
  last_notification 0
  notification_interval 30
  contact_groups nt-admins。
  出现alert后,Nagios以每3分钟(normal_check_interva)一次的频率检测服务:
  notification_interval,如果这两次检测服务都为异常,Nagios就会不断的发送告警信息;不断增加;
  二,在最近的check_interval点发送OK短信,默认为60,现在网上实现的形式多种多样如结合移动139邮箱,即1分钟
  /,然后等待下一次检测完成。
  define serviceescalation{
  host_name WWW-Server /:从第4条告警信息起至服务器恢复前:
  1:NONE:被监控项达到max_check_attempts最大次数后的非正常状态:DOWN。下面就着重讲义下这几个参数:(新版本不存在这个文件)
  normal_check_interval 表示重新检测的时间间隔.X中使用
  retry_check_interval 重试时间
  max_check_attempts 这个是出现故障的连接次数,同时将告警信息发送至指定联系人:RECOVERY:
  notifications_enabled,尤其是它的告警功能,直接进入软态(1/:
  service中有定义notifications_enabled=1,切换为retry_interval和max_check_attempts进行监控,而是一次  /

怎样启动与停止Nagios


启动与停止Nagios
有多于一种方式来启动、停止和重启动Nagios,这里在有更通常做的方式...
提示:在你启动或重启动你的Nagios程序之前,你总是要确保你验证你的配置文件已经通过。
一、启动Nagios
初始化脚本:最简单的启动Nagios守护进程的方式是使用初始化脚本,象这样:
/etc/rc.d/init.d/nagios start
手工方式:你可以手动地启动Nagios守护进程,用命令参数-d,象这样:
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
二、重启动Nagios
当你修改了配置文件并想使之生效的话,重启动或重载入动作是必须的。
初始化脚本:最简单地重启动Nagios守护进程的方式是使用初始化脚本,象这样:
/etc/rc.d/init.d/nagios reload
Web接口方式:你可以利用WEB接口,通过点击“进程信息”的超链接页面里的“重启动Nagios进程”来重启动Nagios,见图
手工方式:你可以手动地发一个SIGHUP信号,象这样:
kill -HUP
三、停止Nagios
初始化脚本:最简单地停止Nagios守护进程的方式是通过初始化脚本,象这样:
/etc/rc.d/init.d/nagios stop
Web接口方式:你可以利用WEB接口,通过点击“进程信息”的超链接页面里的“关闭Nagios进程”来停止Nagios,见图

nagios 的作用是什么


监控被监控的主机或服务器的服务器性能,如cup 硬盘 内存 是否存活(能否ping同) 还可以监控网站 服务器端口 功能特别多,企业必备,这些功能都是通过插件来实现的,很灵活,最主要的事开源的,如果你懂编程,还可以自己定制需要的插件,在实际环境中应用,祝你好运!~~

如何使用Nagios监控Cisco交换机硬件及运行状态


系统环境:Nagios 3.x + CentOS 5.6 + Cisco 4500
前提条件:
1. Cisco交换机都支持SNMP协议,只需要简单的设置即可开启,例如:snmp-server community snmppw RO。更加详细的设置请使用Google搜索“Cisco 开启 SNMP”,参考网上相关文章。
2. 在安装Nagios之前,必须已经安装Net-Utils及其开发组件。成功安装Nagios之后,再次检查libexec目录下有check_snmp命令。
系统测试:
check_snmp命令提供了详细的使用说明,只需要在Linux命令行输入 check_snmp –help即可查看帮助信息,这其中包括每一项参数的使用等。
这里以检测Cisco交换机的系统为例,示范如何使用check_snmp。交换机为Cisco 4500系列,系统描述的OID为.1.3.6.1.2.1.1.1.0
[root@wardking libexec]# ./check_snmp -H 10.241.10.1 -o .1.3.6.1.2.1.1.1.0 -C snmppw
SNMP OK – “Cisco IOS Software, Catalyst 4500 L3 Switch Software (cat4500-ENTSERV | K9-M), Version 12.2(53)SG2, RELEASE SOFTWARE (fc1)
建议用于Nagios监控的OID:
系统内存使用(5分钟内)1.3.6.1.4.1.9.9.48.1.1.1.5.1
系统可用内存(5分钟内)1.3.6.1.4.1.9.9.48.1.1.1.6.1
CPU使用率(5分钟内)1.3.6.1.4.1.9.2.1.58.0
硬件状态1.3.6.1.4.1.9.9.13
系统配置:
由于使用check_snmp检测的结果不够人性化,大部分的结果都需要重新调整。使用Perl脚本调用NET::SNMP模块,实现收集监控结果,并重新输出,更易阅读和使用。
这里引用4个从国外网站收集的脚本,check_snmp_env, check_snmp_cisco_memutil, check_snmp_cisco_loadavg, check_snmp_cisco_ifstatus
请下载至nagios安装目录下的libexec子目录中,例如/usr/local/nagios/libexec,重命名去掉txt扩展名,赋予可执行权限:
[root@nagios libexec]# pwd
/usr/local/nagios/libexec
[root@nagios libexec]# chmod a+x check_snmp_cisco_* check_snmp_env -v
mode of `check_snmp_cisco_ifstatus’ retained as 0755 (rwxr-xr-x)
mode of `check_snmp_cisco_loadavg’ retained as 0755 (rwxr-xr-x)
mode of `check_snmp_cisco_memutil’ retained as 0755 (rwxr-xr-x)
mode of `check_snmp_env’ retained as 0755 (rwxr-xr-x)
剩下的工作就是follow标准流程设置监控命令,添加被监控的交换机和服务了。
编辑etc/objects/command.cfg,添加如下定义:
#Check Cisco, Extreme and Juniper hardware
define command{
command_name check_snmp_env
command_line $USER1$/check_snmp_env -H $HOSTADDRESS$ -C $ARG1$ $ARG2$
}
#Cisco SNMP device monitoring
define command{
command_name check_snmp_cisco_mem
command_line $USER1$/check_snmp_cisco_memutil -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$
}
define command{
command_name check_snmp_cisco_cpu
command_line $USER1$/check_snmp_cisco_loadavg -H $HOSTADDRESS$ -C $ARG1$ -w $ARG2$ -c $ARG3$
}
define command{
command_name check_snmp_cisco_if
command_line $USER1$/check_snmp_cisco_ifstatus -H $HOSTADDRESS$ -C $ARG1$ -i $ARG2$ -w $ARG3$ -c $ARG4$
}
编辑switch.cfg加入监控的交换机配置,新增相关系统服务,例如:
define service{
use generic-service ; Inherit values from a template
host_name CAT4506E_B1_LG3_1, CAT4506E_B3_A09L_1, CAT4507R_B5_A09R_1, CAT4507R_B1_LG3_1, CAT4507R_B5_D12_1, RackSW_PDC_1, RackSW_PDC_2, RackSW_PDC_3, RackSW_PDC_4, RackSW_SDC_2, RackSW_SDC_3
service_description Environment
check_command check_snmp_env!snmppw
}
define service{
use generic-service ; Inherit values from a template
host_name CAT4507R_B5_D12_1, CAT4507R_B1_LG3_1, CAT4506E_B1_LG3_1, CAT4506E_B3_A09L_1, CAT4507R_B5_A09R_1
service_description LoadAVG
check_command check_snmp_cisco_cpu!snmppw!60!80
}
define service{
use generic-service ; Inherit values from a template
host_name CAT4507R_B5_D12_1, CAT4507R_B1_LG3_1, CAT4506E_B1_LG3_1, CAT4506E_B3_A09L_1, CAT4507R_B5_A09R_1
service_description Memutil
check_command check_snmp_cisco_mem!snmppw!70!90
}

Mocha与Nagios相比,哪个功能更强大、更完整


1、Mocha非来源,价格不便宜呀,无法进行自定义扩展,Nagios完全开源,不要一分钱。
2、Mocha管理相对简单一些,nagios的配置和管理都很麻烦,开源软件不是很完善,需要对系统很熟悉的人才能搞的定。
3、功能都很强大呀,如果没有什么很苛刻的需求都能够满足、

推荐阅读