- 浏览: 52243 次
- 性别:
- 来自: 北京
最新评论
-
lehehe:
基站定位,使用接口很方便的,这里有免费的接口,你可以试试,ht ...
google API基站定位 -
donkeyji:
yongqi 写道hi,你好,请教一个问题我在安装python ...
python zeromq 介绍 -
yongqi:
hi,你好,请教一个问题我在安装python的zeromq包时 ...
python zeromq 介绍 -
mimicom:
看着晕乎乎的....
python zeromq 介绍 -
raojl:
不错,好像zeromq就在2011年一夜之间火了,特别的blo ...
python zeromq 介绍
问题1:nagios配置文件说明?
答:
commands.cfg是监控命令的配置文件
与其相关配置说明/usr/local/nagios/etc/objects/commands.cfg
define command{ command_name #定义命令的简称 command_line #定义当服务进行时Nagios要执行的动作。在命令执行以前,所有合法的宏都要被他们的值代替。 }
contacts.cfg是监控报警联系人的配置文件
与其相关配置说明/usr/local/nagios/etc/objects/contacts.cfg
#这段是用来定义一个联系人 define contact{ contact_name #这个指令用来定义一个联系人的简称。他会在定义contactgroup时被引用到。在相应的环境中,宏定义$CONTACTNAME$会包含这个值。 alias #这个指令是为了定义一个联系人的具体的描述。在相应的环境中,宏定义$CONTACTALIAS$会包含这个值。 host_notification_period #这个指令是为了定义,能够通知Contact中定义的那个简称联系人,关于主机有问题或者恢复正常状态的时间段。你可以把他想象成能够通知Contact关于主机的在线时间。 service_notification_period #这个指令是为了定义,能够通知Contact中定义的那个简称联系人,关于服务的问题或恢复正常的时间段。 host_notification_options #这个指令为了定义主机在什么状态下会给联系人发通知。各个参数的描述如下:d=当主机的状态处于down时,发送通知;f=当主机状态处于stop时发送通知。r=当主机恢复up状态时发送通知。n=什么状态下都不发送通知(w-warning , u-unknown,c-critical,r-recovery;d-down,u-unreachable)。 service_notification_options #这个指令为了定义服务在什么状态下会给联系人发通知。各个参数的描述如下:w=当服务处于警告状态时发送通知 u=当服务的状态处于unknown时,发送通知;f=当服务状态处于启动和停止时发送通知。c=当服务处于Critical状态时发送通知。n=什么状态下都不发送通知。 host_notification_commands #这个指令是为了定义一个通知联系人关于主机问题或恢复正常的联系手段的一个列表。多个手段之间用逗号隔开。 service_notification_commands #这个指令是为了定义一个通知联系人关于服务问题或恢复正常的联系手段的一个列表。多个手段之间用逗号隔开。 email #这个指令是为了定义联系人的email地址。这个将取决于你是如何定义你的notification commands.它可以用来给联系人发送紧急邮件。在相应的环境中。宏定义$CONTACTEMAIL$将会包含它的值。 }
联系人组
define contactgroup{ #这段是用来定义一个联系人组。 contactgroup_name #联系组名称,通常定义得较短 alias #联系组别名,通常定义得较长 members #联系组成员 }
timeperiods.cfg是时间定义配置文件
与其相关配置说明/usr/local/nagios/etc/objects/timeperiods.cfg
define timeperiod{ timeperiod_name #时间段名称,通常定义得较短 alias #时间段别名,通常定义得较长 sunday #星期日时间段 monday #星期一时间段 tuesday #星期二时间段 wednesday #星期三时间段 thursday #星期四时间段 friday #星期五时间段 saturday #星期六时间段 }
localhosts.cfg是被监控主机配置和被监控服务配置的文件
与其相关配置说明/usr/local/nagios/etc/objects/localhost.cfg
#这段是用来定义一个被监控的主机 define host{ host_name localhost #用这个名字在host group和service里标识一个主机 alias localhost #用来定义主机的一个完整名字或描述 address 127.0.0.1 #用来定义主机的地址,在有DNS服务器的,也可以用域名 #用来定义在检测返回结果不是OK时,nagios重检测命令的次数。设置这个值为1会导致nagios一次也不重试就报警 max_check_attempts 1 #用一个time period项的名字来定义在哪段时间内激活对这台主机的主动检测。time period是定义在别的文件里的配置项,我们可以在这里用名字来引用它 check_period name #这是一个联系组列表。我们用联系组的名字来引用她们。多个联系组间用“,”来分隔 contact_groups name #这一项用来定义当一个服务仍然down或unreachable时,我们间隔多久重发一次通知给联系组 notification_interval #这一项用一个time period定义来标识什么时间段内给联系组送通知。这里我们用time period定义的名字来引用她 notification_period #这一项用来决定发送通知的时机。选项有:d = 当有down状态时发送通知,u = 当有unreachable状态时发送通知, r = 当有服务recoveries时发送通知,f = 当主机启动或停机时发送通知。如果你给一个n选项,那么永远不会发送通知 notification_options }
主机组
#这段是用来定义一个被监控的主机组 define hostgroup{ hostgroup_name #主机组名称,通常定义得较短 alias #主机组别名,通常定义得较长 members #主机组成员 }
服务
#这段是用来定义一个被监控的服务 define service{ host_name #主机名称 service_description #服务描述 check_command #执行命令 max_check_attempts #最大失败尝试次数,值为1时只报警不重新检测 #常规检测间隔时间,默认为60分钟(常规检测是指无论服务状态是否正常,检测次数达到“最大次数”时) normal_check_interval #失败尝试间隔时间,默认为60分钟(失败尝试是指服务状态不正常,检查次数达到“最大次数”时) retry_check_interval check_period #检测时间段 #当服务状态不正常时通知联系人的间隔时间,值为0时不通知联系人 notification_interval notification_period #通知联系人时间段 #通知联系人选项,w警告,u未知,c危急,f启动和停止,n不发送通知 notification_options contact_groups #联系人组 }
服务组
#这段是用来定义一个被监控的服务组 define servicegroup{ servicegroup_name #服务组名称,通常定义得较短 alias #服务组别名,通常定义得较长 members #服务组成员 }
cgi.cfg这个文件是与WEB相关
与其相关配置说明/usr/local/nagios/etc/cgi.cfg#去除用户验证
#去除用户验证 use_authentication=0 #多个用户用逗号隔开 authorized_for_system_commands=nagiosadmin
templates.cfg是模板配置文件,这里面定义了一些模板以方便用户使用
问题2:nagios配置步骤?
答:
1.需要设置的组件是联系人和联系人组:/usr/local/nagios/etc/objects/contacts.cfg
define contact{ contact_name jdoe alias John Due service_notification_commands notify-by-email host_notification_commands host-notify-by-emailes email john.doe@xxx.com }
define contactgroup{ contactgroup_name server-admins alias Server Administrators members jdoe,albundy }
2.进行监视的主机和定义服务:/usr/local/nagios/etc/objects/localhost.cfg
define host{ host_name ubuntu_1_2 alias Ubuntu test server address 192.168.1.2 check_command check-host-alive max_check_attempts 20 notifications_enabled 1 event_handler_enabled 0 flap_detection_enabled 0 process_perf_data 1 retain_status_information 1 retain_nonstatus_information 1 notification_interval 60 notification_period 24x7 notification_options d,u,r }
define service{ use service-template host_name ubuntu_1_2 service_description PING check_period 24x7 contact_groups server-admins notification_options c,r check_command check_ping!300.0,20%!1000.0,60% }
重启nagios服务,证实Web管理接口中ping服务的可见性。
问题3:如何写nagios插件?
答:
nagios为了管理插件,nagios每次在查询一个服务的状态时,产生一个子进程,并且它使用来自该命令的输入和退出代码来确定具体的状态。
退出状态代码含义
OK:退出代码是0,服务正常工作
WARNING:退出代码是1,服务处于警告状态
CRITICAL:退出代码是2,服务处于危险状态
UNKNOWN:退出代码是3,服务处于未知状态
简单实现:
工作脚本check_getloadavg.py
#!/usr/bin/env python import os,sys (d1, d2, d3) = os.getloadavg() if d1 >= 5.0: print "GETLOADAVG CRITICAL: Load average is %.2f" % (d1) sys.exit(2) elif d1 >= 2.0: print "GETLOADAVG WARNING: Load average is %.2f" % (d1) sys.exit(1) else: print "GETLOADAVG OK: Load average is %.2f" % (d1) sys.exit(0)
nagios注册该插件脚本/usr/local/nagios/etc/objects/commands.cfg
define command{ command_name check_mygetloadavg command_line /path/to/check_getloadavg #脚本存放的路径 }
接下来创建关于这个插件的服务...
通常最好的方式是创建一个可配置的插件脚本,另一个好的实践是捕获所有的异常,统一管理。
获取平均负载的完整插件check_getloadavg2.py
#!/usr/bin/env python import os import sys import getopt def usage(): print """Usage: check_getloadavg [-h|--help] [-m|--mode 1|2|3] \ [-w|--warning level] [-c|--critical level]" Mode: 1 - last minute ; 2 - last 5 minutes ; 3 - last 15 minutes" Warning level defaults to 2.0 Critical level defaults to 5.0""" sys.exit(3) try: options, args = getopt.getopt(sys.argv[1:], "hm:w:c:", "--help --mode= --warning= --critical=", ) except getopt.GetoptError: usage() sys.exit(3) argMode = "1" argWarning = 2.0 argCritical = 5.0 for name, value in options: if name in ("-h", "--help"): usage() if name in ("-m", "--mode"): if value not in ("1", "2", "3"): usage() argMode = value if name in ("-w", "--warning"): try: argWarning = 0.0 + value except Exception: print "Unable to convert to floating point value\n" usage() if name in ("-c", "--critical"): try: argCritical = 0.0 + value except Exception: print "Unable to convert to floating point value\n" usage() try: (d1, d2, d3) = os.getloadavg() except Exception: print "GETLOADAVG UNKNOWN: Error while getting load average" sys.exit(3) if argMode == "1": d = d1 elif argMode == "2": d = d2 elif argMode == "3": d = d3 if d >= argCritical: print "GETLOADAVG CRITICAL: Load average is %.2f" % (d) sys.exit(2) elif d >= argWarning: print "GETLOADAVG WARNING: Load average is %.2f" % (d) sys.exit(1) else: print "GETLOADAVG OK: Load average is %.2f" % (d) sys.exit(0)
nagios注册该插件脚本/usr/local/nagios/etc/objects/commands.cfg
define command{ command_name check_mygetloadavg2 command_line /path/to/check_getloadavg2 -m $ARG1$ -w $ARG2$ -c $ARG3$ }
接下来创建关于这个插件的服务(注意:使用感叹号!来分隔插件参数)
define service{ use service-template host_name localhost service_description LoadAverage2 check_period 24x7 contact_groups server-admins notification_options c,r check_command check_mygetloadavg2!1!3.0!6.0 }
ps:
添加启动服务
rc-update add nagios default
打开/usr/local/nagios/share/config.inc.php,把:
$cfg['cgi_base_url']='/nagios/cgi-bin'
改为(实际情况修改):
$cfg['cgi_base_url']='/cgi-bin'
支持故障时的事件定义,可以先行解决一些问题。
可以很容易地定制开发自己需要的服务监测插件。
Nagios core 只是个Daemon,负责调度,真正的检测操作还是通过Nagios plugins来实现的。
cpu是否超载?
网络接口是否满负荷?
nagios将所有的信息简化为‘工作,可疑,故障’
这可以帮助操作员根据预定义的和可配置的标准,重点关注最重要的,最关注的问题。
nagios内置了报告停机时间的功能
发表评论
-
rails model best practices
2011-05-11 09:50 0name_scope :active, :conditions ... -
Ruby标准库
2011-05-10 15:02 0ruby标准库一览 文本 base64 yaml ... -
rails3测试理解
2011-04-30 10:23 1302Why RSpec? Clear, concise and ... -
linux系统备注
2011-04-29 10:49 1136bin "Essential binaries&qu ... -
vim备注
2011-04-29 10:03 0vim -
ruby
2011-04-28 10:33 1050Ruby编程基础知识概括: 1. ruby is an ob ... -
Javascript简明手册
2011-04-25 10:07 0Javascript和C++,java,Python一样是一种 ... -
KVM
2011-04-24 09:36 01 kvm安装 前期准备 ... -
Jquery
2011-04-22 16:10 01. jQuery解决了什么样的问题? -
CSS相关知识
2011-04-22 16:02 7101. CSS是一种为结构化文档添加样式的计算机语言 使 ... -
Mysql相关知识
2011-04-22 14:30 11361. Mysql常规使用 安装 server: sudo ... -
PF_RING
2011-04-14 14:38 20501. PF_RING 安装 A clean insta ... -
thrift实践
2011-04-08 11:52 14531 安装thrift 通过svn获得源码 svn co h ... -
Cmake + protobuf-c + python自定义协议通信
2011-03-29 11:25 4754Cmake是一套跨平台的工程构建工具 sudo apt ... -
清除历史记录
2011-03-18 10:40 01. 选型 [语言] C++ [平台] wind ... -
pyzmq 使用
2011-03-16 16:02 50481. The Socket API Creating an ... -
nginx X-Accel-Redirect实现文件下载权限控制及rails devise实现
2011-03-14 13:52 3266问题1:Nginx的X-Accel-Redirect? 答: ... -
python zeromq 介绍
2011-03-10 10:38 11106简介: ZeroMQ并不是一个对socket的封装,不能用它 ... -
fabric自动部署
2011-03-09 14:00 2594Fabric commands run - run a ... -
在ubuntu下安装nagios监控平台
2011-03-07 16:56 1570问题1:Nagios是什么? 答:是一个监视系统运行状态和网 ...
相关推荐
Nagios安装配置说明: 1,nagios的安装; 2,nagios配置; 3,nagios服务
本文对nagios的基本配置和使用的一些相关介绍
简单nagios搭建说明附带安装包,通过nagios-3.0.6.tar安装配置监控,并将源码包放进去了~
nagios得安装及使用通过这个文档你可以很好地了解nagios的安装及使用
最详细的nagios搭建手册,本人亲自实践编写,包括nagios的配置安装使用,自定义服务,pnp4nagios,nagiosql等等,还有页面的自定义UI设置
linux下nagios安装配置,及用到的插件。
nagios使用教程.pdf
nagios rpm 安装 配置 及部署 监控 nagios rpm 安装 配置 及部署 监控
NAGIOS3.5详细安装说明,包括资源下载,安装步骤,对象配置等
利用微信API,使用python脚本来实现nagios报警时向微信发送报警通知
nagios检测内存使用率插件,用perl编写,单位为MB
nagios监控cpu使用率插件 CPU OK : user=0% system=0% iowait=0% idle=100% | cpu_user=0%;90;100; cpu_sys=0%;90;100; cpu_iowait=0%;90;100; cpu_idle=100%;
Nagios安装包,httpd,php,DBI,DBD-mysql。。。。。。 Nagios插件: check_mysql check_mysql-replication check_mysql_health check_mysql_connections check_ipconnects ......
Nagios使用SendEmail发送邮件 在Nagios环境下面是用sendmail发送报警邮件方案
nagios
nagios监测软件以及完成的安装配置过程说明,完全可以使用
部署手册
二、 Nagios的工作原理 1 三、 Nagiso的安装及下载 2 四、 安装完毕后网络基本配置和密码说明 4 五、 使用nconf对nagios进行配置 5 5.1 删除主机 5 5.2 添加主机 6 5.3监控主机的基本服务 9 5.4监控本机的对外提供...
nagios监控配置和说明,详细的说明了nagios的配置过程,以及简化了配置文件
这样做的一个很大的优势就是将除去处理数据的其他工作都放 在了被监控机上面(包括了数据的传输),这样就避免了被监控机数量大时,一次轮询时间过长而导致监控反应延迟,这也是被动模式能承担更大监控量的关键