- 浏览: 53163 次
- 性别:
- 来自: 北京
最新评论
-
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 1365Why RSpec? Clear, concise and ... -
linux系统备注
2011-04-29 10:49 1195bin "Essential binaries&qu ... -
vim备注
2011-04-29 10:03 0vim -
ruby
2011-04-28 10:33 1097Ruby编程基础知识概括: 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 7451. CSS是一种为结构化文档添加样式的计算机语言 使 ... -
Mysql相关知识
2011-04-22 14:30 11821. Mysql常规使用 安装 server: sudo ... -
PF_RING
2011-04-14 14:38 20771. PF_RING 安装 A clean insta ... -
thrift实践
2011-04-08 11:52 14991 安装thrift 通过svn获得源码 svn co h ... -
Cmake + protobuf-c + python自定义协议通信
2011-03-29 11:25 4834Cmake是一套跨平台的工程构建工具 sudo apt ... -
清除历史记录
2011-03-18 10:40 01. 选型 [语言] C++ [平台] wind ... -
pyzmq 使用
2011-03-16 16:02 51231. The Socket API Creating an ... -
nginx X-Accel-Redirect实现文件下载权限控制及rails devise实现
2011-03-14 13:52 3347问题1:Nginx的X-Accel-Redirect? 答: ... -
python zeromq 介绍
2011-03-10 10:38 11169简介: ZeroMQ并不是一个对socket的封装,不能用它 ... -
fabric自动部署
2011-03-09 14:00 2633Fabric commands run - run a ... -
在ubuntu下安装nagios监控平台
2011-03-07 16:56 1606问题1:Nagios是什么? 答:是一个监视系统运行状态和网 ...
相关推荐
Nagios是一款强大的开源系统监控工具,用于实时监控网络服务、主机资源以及各种应用程序的状态,确保系统的稳定运行。...通过深入理解和实践Nagios的安装、配置和使用,可以有效地优化IT运维流程,提高工作效率。
- **报警机制**:说明Nagios如何定义和处理报警,以及如何配置通知方式(如邮件、短信)。 - **图形界面**:介绍Nagios的Web界面,包括默认的CGI接口和可选的Web管理界面如Nagios XI、Nagvis等。 - **扩展与集成**:...
Nagios是一款开放源代码的免费网络监控工具,主要用于监控计算机系统的各种指标和服务状态,包括但不限于Windows、Linux及Unix操作系统的主机状态,网络设备如交换机和路由器的状态,甚至打印机的工作状态等。...
它不仅详细介绍了Nagios的监控功能和状态,而且对系统需求、安装步骤、配置方法以及与其他监控工具的结合使用等方面都做了详尽的说明。对于希望学习和使用Nagios进行网络和系统监控的人员来说,这是一份宝贵的参考...
#### 一、NAGIOS简介及应用场景 NAGIOS是一款开源的系统和网络监控工具,广泛应用于企业环境中对服务器、交换机等网络设备进行实时监控。它能够帮助管理员及时发现并解决问题,提高系统的稳定性和可用性。 #### 二...
### Nagios网络监控中文版...通过以上内容的总结,我们可以看到《Nagios网络监控中文版》是一份非常全面且详细的指南,涵盖了从Nagios的基础知识到具体应用场景的各个方面,非常适合希望深入了解Nagios监控系统的读者。
大多数插件可以通过命令行参数-h或--help查看使用说明。例如,要了解check_http插件,只需运行`./check_http --help`。 - **8.1.7. 插件API** 对于有兴趣编写自定义插件的用户,可以参考插件技术文档,了解如何创建...
在IT系统监控领域,Nagios是一款广泛应用的开源网络监控工具,它可以监控网络服务、主机状态以及...这个方法不仅适用于Nagios,也可以应用到其他需要大量重复配置的场景,展示了Shell脚本在自动化运维中的强大能力。
- RAID的工作模式及特点 - RAID0:条带化(Striping),无冗余,适用于读写速度要求高但对数据安全性要求不高的场景。 - RAID1:镜像(Mirroring),数据在两个磁盘上各有一份备份,提高了读取性能和数据安全性,...
## 使用场景 - 【举个例子】 - 某天,某人,因某业务,有redis部署需求,需要批量部署一组redis服务,端口从8001到8009, - 简单,马上开始部署,编译redis,拷贝redis执行文件,配置文件,8001端口,启动,再拷贝...
文档《设置Tomcat CPU内存使用率使用说明.docx》应提供了具体的操作指南,可能包括了如下内容: 1. **JVM内存设置**:推荐的JVM内存分配策略,比如根据服务器硬件和应用规模设置合适的`Xms`和`Xmx`值。 2. **线程池...
Nagios是一款广泛使用的网络监控系统,它可以通过安装特定的插件来实现对MySQL的监控。以下是Nagios中几个常用的MySQL监控插件: - **NRPE(Nagios Remote Plugin Executor)**:NRPE允许远程主机执行本地插件,这...
考试中所覆盖的知识点要求考生不仅要熟悉Azure的通用可用性(GA)特性,还可能包含对于预览特性的问题,如果这些特性被广泛使用的话。考生应具备在Azure管理和开发领域的专业知识,尤其是在某一个领域有专家级的深入...
16. **我们使用Ubuntu及Cloudera,那么我们该去哪里下载Hadoop,或者是默认就与Ubuntu一起安装** - **知识点说明**:在Ubuntu系统中,可以通过软件包管理器如`apt-get` 安装Hadoop。另外,Cloudera也提供了自己的...
6. **测试Hadoop集群**:可以使用`hadoop fs -ls`命令检查HDFS是否正常工作,或者编写一个简单的MapReduce程序验证计算功能。 然而,Hadoop并非没有替代方案。在文档《Hadoop并非完美:8个代替HDFS的绝佳方案》中,...
下面是对“关于统一运维平台 - 业务(RMS)需求说明”的详细分析。 一、业务需求分析 1. **资源分配**:RMS需要提供智能的资源分配策略,确保业务系统的高效运行。这可能涉及到计算资源(CPU、内存)、存储资源和...
如果一切正常,你应该能看到飞信机器人的版本信息和使用说明。按照提示,你需要提供手机号码(--mobile)、服务标识(--sid)、密码(--pwd)以及配置文件路径(--config)来启动发送短信的功能。 飞信机器人配置的...
不过,从标题《工欲善其事必先利其器——工具组套详解.pdf》和描述《工欲善其事必先利其器——工具组套详解.pdf》中可以推测文档的内容应该是围绕着“工具组套”的详细介绍与使用说明。根据这一直观的推断,以下是对...
通过书中详尽的步骤指导和丰富的实践案例,读者能够迅速掌握 Ubuntu Server 的核心技术和应用场景,从而在日常工作和项目实施中发挥出更大的价值。无论是新手还是经验丰富的技术人员,都能从中受益匪浅。