nagios外部监控脚本编写
- 格式:doc
- 大小:151.50 KB
- 文档页数:4
Nagios监控路由器和交换机设备1.功能介绍Nagios可以监控有IP可管理的交换机和路由器的设备状态.对小型无管理功能的交换机和HUB是无法监控.监控的方式是通过外部的ping所反馈的信息或者通过SNMP协议来获取相关的状态信息.能够在网络设备上获取的信息包括:包丢失率,包往返时间平均值SNMP状态信息带宽和传输数率2.概述监控的方式有两种一种是利用ping的方式,获取数据包的响应时间和丢包率另一种是利用网络设备的SNMP数据,通过check_snmp获取端口状态和check_mrtgtraf来了解带宽状况.在使用check_snmp之前必须安装snmp包到系统中.如果没有安装则需要先安装好snmp系统包,然后再重新编译nagios plugins3.配置步骤完成第一次执行需要做的操作创建新的监控设备主机和服务对象重新启动Nagios4.确认一下内容在/usr/local/nagios/etc/objects/commands.cfg里面是否包含了check_snmp和check_local_mrt gtraf的命令定义在/usr/local/nagios/etc/objects/templates.cfg里面是否包含了generic-switch5.配置Nagiosa.编辑/usr/local/nagios/etc/nagios.cfg将#cfg_file=/usr/local/nagios/etc/objects/switch.cfg前面的#去掉b.编辑/usr/local/nagios/etc/object/switch.cfg文件设定监控主机的相关内容define host{use generic-switch ; Inherit default values from a templatehost_name Gateway ; The name we're giving to this switchalias Firewall ; A longer name associated with the switchaddress 192.168.200.1 ; IP address of the switchhostgroups allhosts,switches ; Host groups this switch is associated with}监控包的丢失率和RTA响应时间define service{use generic-service ; Inherit values from a templatehost_name Gateway ; The name of the host the service is associated withservice_description PING; The service descriptioncheck_command check_ping!200.0,20%!600.0,60% ;在超过200ms或丢包率在20%上的启动警告,超过600ms或丢包达到60%的启动报警normal_check_interval 5; 在正常情况下,每五分钟监控一次retry_check_interval 1; 在异常情况下,每分钟监控一次}利用SNMP监控交换和网关设备define service{use generic-service ; Inherit values from a templatehost_name Gatewayservice_description Uptimecheck_command check_snmp!-C public -o sysUpTime.0}利用MRTG来监控网络流量信息define service{use generic-service ; Inherit values from a templatehost_name Gatewayservice_description Port 1 Bandwidth Usagecheck_commandcheck_local_mrtgtraf!/var/lib/mrtg/192.168.200.1_1.log!AVG!1000000,2000000!5000000,5000000!10 }利用command里面设定的check_local_mrtgtraf获取本地保存的mrt g流量日志信息来监控,获取文件是/var/lib/mrt g/192.168.200.1_1.log获取数据值是采取AVG的值,数值在1M~2M之间,则状态改为warning,如果超过5M的话则状态改为critical 完成配置后service nagios restart。
Nagios监控mysql工作原理利用特定的用户定期访问指定的mysql数据库。
当不能访问或连不通时则报警。
配置过程如下1、在生产库上安装nagios插件,以nagios-plugins-1.4.15为例来讲述整个配置过程进入nagios-plugins-1.4.15 目录./configure 编译然后是编译完显示一定要有mysql支持,不然没有check_mysql这个插件config.status: creating po/Makefile--with-apt-get-command:--with-ping6-command: /bin/ping6 -n -U -w %d -c %d %s--with-ping-command: /bin/ping -n -U -w %d -c %d %s--with-ipv6: yes--with-mysql: /usr/bin/mysql_config--with-openssl: yes--with-gnutls: no--enable-extra-opts: no--with-perl: /usr/bin/perl--enable-perl-modules: no--with-cgiurl: /nagios/cgi-bin--with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin--enable-libtap: noMake all&&make install插件安装完毕再安装nrpe 安装过程略同时是编译安装三步曲:./configure make make install2、配置mysqlmysql> create database nagios; //建立nagios专用数据Query OK, 1 row affected (0.00 sec)mysql> grant select on nagios.* to nagios@'%' identified by '######'; //建立nagios专用用户权限只给select就OK,给多了不安全。
基于Nagios构建企业级信息系统监控方案作者:武冬春来源:《计算机光盘软件与应用》2013年第16期摘要:企业信息系统中的服务器、网络等基础设施的稳定运行是保障业务正常运行的基础。
而要保证这些基础设施稳定、高效的运行,设备故障及时有效的发现、设备运行状态信息及时有效的展示就显得十分重要,信息系统的有效监控已成为信息系统管理的重要问题。
大中型企业内部存在着成百上千台服务器、网络等设备,如何实现对这些设备的有效监控,并且高效的解决各类系统故障,保障系统稳定、高效的运行呢?本文主要对Nagios监控功能进行分析,论述了如何利用它去监控服务器等设备。
关键词:nagios;监控;网络管理中图分类号:TP393.18随着企业信息系统的不断建设,庞大的服务器等基础设施的有效监控已成为信息系统管理的重要问题。
依靠人工巡检的方式对于系统故障、潜在风险及安全隐患的发现效率越来越差,为提高发现故障的及时性、把运维人员从繁重的工作中解放出来,亟需引入新的工具来协助工程师解决当前的问题。
该工具能够实现对各类IT设备的监视和管理,提高基础设施的服务质量和效率,因此自动化工具对于运维人员就十分必要。
Nagios是一种开源网管软件,利用它可以实现对企业中的服务器、网络等设备进行全面的监控。
1 Nagios介绍1.1 Nagios简介Nagios是一款开源的监视系统运行状态的网管监控系统。
它能监视本地或远程设备以及服务,同时提供异常告警通知功能等。
Nagios能运行在Linux/Unix平台,状态监测等可实现利用WEB浏览器展示。
1.2 Nagios的主要功能特点监视服务状态(SMTP,POP3,FTP,HTTP,PING等)监视资源利用率(CPU、内存,磁盘I/O等)利用插件方式轻松扩展监视功能支持各类服务等监视的并发处理功能支持错误通知功能(通过email,短信等方法)可指定自定义的事件处理控制器基于WEB浏览器的界面以方便维护人员查看被监控端状态支持通过手机终端查看监控信息1.3 Nagios工作原理Nagios的功能是监控服务和主机,Nagios的监控、检测功能都是依赖各种插件来完成。
一、系统环境与软件版本情况本文档使用被监控机的操作系统为rhel6.3 _64位。
监控主机操作系统为rhel6.0 _64位及windows 2003,nagios主服务版本Nagios® Core™ 3.2.3,linu被监控机与主监控通信插件NRPE版本为nrpe-2.8.1。
window被监控机与主监控服务软件为NSClient++-0.2.7所使用的软件如下nrpe-2.8.1.tar.gzNSClient++-0.2.7.zip二、安装配置过程。
因为系统安装大家都非常熟悉了此次略过操作系统安装过程,首先是linux环境下被监控机的安装配置过程。
在安装之前先写个nagios监控非本地信息的原理图主监控机被监控机NRPE总共由两部分组成:–check_nrpe 插件,位于在监控主机上–NRPE daemon,运行在远程的linux主机上(通常就是被监控机)按照上图,整个的监控过程如下:当nagios需要监控某个远程linux主机的服务或者资源情况时1.nagios会运行check_nrpe这个插件,告诉它要检查什么.2.check_nrpe插件会连接到远程的NRPE daemon,所用的方式是SSL3.NRPE daemon会运行相应的nagios插件来执行检查4.NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.注意:NRPE daemon需要nagios插件安装在远程的linux主机上,否则,daemon不能做任何的监控.因为使用rehl线上的yum源安装需要授权,所以先使用iso搭个本地的yum源。
mount /dev/cdrom /mnt/cdrom/ 挂载光驱mkdir /home/rehliso 创建yum源目录。
cp -Rf /mnt/cdrom/* /home/rehliso/ 拷贝安装文件到源目录cd /etc/yum.repos.d/ 切换至yum配置文件目录cp rhel-source.repo rhel-source.repo.bak 备份配置文件vi rhel-source.repo 编辑配置文件,删除之前内容加入[rhel_6_iso]name=local isobaseurl=file:///home/rehlisogpgcheck=1gpgkey=file:///home/rehliso/RPM-GPG-KEY-redhat-release保存退出Yum clean all清除YUM缓存因为是用二进制安装包进行安装所以要先安装gcc编译器yum -y install gcc 安装gcc编译器安装完成后用sftp上传安装文件nrpe-2.8.1.tar.gz, nagios-plugins-1.4.13.tar.gz至/usr/local/src/目录下创建nagios用户Userad nagiosPasswd nagiosCd /usr/local/src 切换至/usr/local/src/目录解压安装包tar zxvf nagios-plugins-1.4.13.tar.gzcd nagios-plugins-1.4.13编译安装./configuremakemake install这一步完成后会在/usr/local/nagios/下生成两个目录libexec和share修改目录权限把权限所属chown nagios.nagios /usr/local/nagios/chown -R nagios.nagios /usr/local/nagios/libexec/至此被监控机nagios插件已经安装完成,接下来就是安装nrpe服务了切换至软件包目录Cd /usr/local/src解压安装文件tar zxvf nrpe-2.8.1.tar.gzcd nrpe-2.8.1编译安装./configurechecking for SSL... configure: error: Cannot find ssl libraries 出现了该错误主要是因为监控主机插件check_nrpe与被监控nrpe服务的通信是通过ssl方式连接的所以必须安装sslyum -y install openssl-devel 所以这个可以在gcc安装时顺便也安装了ssl安装完成后重新./configure*** Configuration summary for nrpe 2.8.1 05-10-2007 ***:General Options:-------------------------NRPE port: 5666NRPE user: nagiosNRPE group: nagiosNagios user: nagiosNagios group: nagiosReview the options above for accuracy. If they look okay,type 'make all' to compile the NRPE daemon and client.成功后会出现以上安装的基本信息接下来编译安装make allmake install-daemonmake install-daemon-configmake install-plugin 安装check_nrpe这个插件之前说过监控机需要安装check_nrpe这个插件,被监控机并不需要,我们在这里安装它是为了测试的目的安装xinetd脚本make install-xinetd这里还要补充一下因为官网的安装文档是将NRPE deamon作为xinetd下的一个服务运行的.在这样的情况下xinetd就必须要先安装好,所以还得确定系统是否已经安装了xinetd的服务[root@localhost nrpe-2.8.1]# service xinetd restartxinetd: unrecognized service服务并未安装yum -y install xinetd 安装xinetd服务安装完成后修改配置文件vi /etc/xinetd.d/nrpeservice nrpe{flags = REUSEsocket_type = streamport = 5666 端口wait = nouser = nagios 用户group = nagios 用户组server = /usr/local/nagios/bin/nrpeserver_args = -c /usr/local/nagios/etc/nrpe.cfg --inetdlog_on_failure += USERIDdisable = noonly_from = 127.0.0.1,192.168.1.243}only_from = 127.0.0.1,192.168.1.243在后面增加监控主机的地址192.168.1.243以空格间隔编辑/etc/services文件,增加NRPE服务端口添加如下信息nrpe 5666/tcp #nrpe查看防火墙是否启动chkconfig iptables –list如果启动需要添加5666端口的开放规则vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 5666 -j ACCEPT添加该条目service iptables restart 重启iptables服务重启xinetd服务service xinetd restart检查服务端口状态[root@localhost ~]# netstat -natp |grep 5666tcp 0 0 :::5666 :::* LISTEN 1959/xinetd 服务端口已经启动测试NRPE是否则正常工作之前我们在安装了check_nrpe这个插件用于测试,现在就是用的时候.执行[root@localhost ~]# /usr/local/nagios/libexec/check_nrpe -H localhostNRPE v2.8.1返回了版本信息说明nrpe已经正常的工作了。
Nagios监控Linux主机(NRPE安装与应用)一、NRPE简介及工作原理NRPE是nagios的一个扩展,它被用于被监控的服务器上,向nagios监控平台提供该服务器的一些本地的情况。
例如,cpu负载、内存使用、硬盘使用等等。
NRPE可以称为nagios 的for linux 客户端。
NRPE 由两个部分组成:工作在监控机一侧的check_nrpe 插件、工作在被监控机一侧的NRPE 守护进程。
Nagios 服务器执行check_nrpe 插件并告诉他检查哪个服务,check_nrpe 插件通过SSL 连接方式联系远程服务器上的NRPE 守护进程,NRPE 守护进程执行相应的插件完成指定的检查,并返回结果。
工作原理是:插件nrpe在被监控机上开启一个daemon,通过这个daemon来和监控主机建立一条ssl加密通道,通过这条通道来传送被监控机的本地信息,达到监控的目的。
装在被监控机上的daemon就相当于一个nagios的传递员,命令行从nagios监控主机发出,然后daemon接受到信息,就会执行这条命令行,执行的方式,其实是和nagios主机是一样的,所以被监控机上也需要装一套nagios-plugins插件。
例如:nagios主机需要监控被监控机的硬盘信息,就会对被监控机发出一条命令说:“我要看你的硬盘信息。
”被监控机nrpe的daemon接到这个命令之后,就会运行一个插件,来检查被监控机本地硬盘的信息,然后插件把信息反馈到nrpe,nrpe通过ssl通道再把这些信息反馈到nagios主机。
如下图所示二、NRPE安装1、所需安装包nrpe、nagios-plugins,这两个包都可以从上得到,本例为nrpe-2.12.tar.gz2、安装openssl、openssl-devel;yum install -y opensslyum install -y openssl-devel3、安装nrpe和nagios-plugins插件1)安装nagios-plugins,在安装时首先在被监控机上新建nagios用户及组。
一、Nagios简介Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。
在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。
NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒,而"Agios"是"saint"的希腊表示方法。
Nagios被开发在Linux下使用,但在Unix下也工作得非常好。
/projects/nagios/files//download/plugins/主要功能∙网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)∙主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)∙可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)∙可以通过配置Nagios远程执行插件远程执行脚本∙远程监控支持SSH或SSL加通道方式进行监控∙简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)∙包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)∙可并行服务检查∙能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查∙当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知∙能够自定义事件处理机制重新激活出问题的服务或主机∙自动日志循环∙支持冗余监控∙包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等二、Nagios工作原理Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。
Nagios监控的使用一、Nagios简介Nagios是一个监视系统运行状态和网络信息的监视系统。
Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios的主要功能特点:监视网络服务(SMTP,POP3,HTTP,NNTP,PING等)监视主机资源(进程,磁盘等)简单的插件设计可以轻松扩展Nagios的监视功能服务等监视的并发处理错误通知功能(通过email,pager,或其他用户自定义方法)可指定自定义的事件处理控制器可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等二、工作原理Nagios自身是不带任何功能的,Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。
为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE或nsclient这个核心扩展插件程序,NRPE 作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。
,要实现监控功能,我们必须安装插件(plugins),以及nrpe。
2.1 监控windows1. windows设置1)安装nsclient,然后在cmd命令台执行以下命令2)修改nsclient的nse.ini配置文件[modules] #去掉注释符号”;”除了CheckWMI.dll和RemoteConfiguration.d llFileLogger.dllCheckSystem.dllCheckDisk.dllNSClientListener.dll[Settings]allowd_host=192.168.2.2 #为nagios服务的IP[NSClient]port=12489 #去掉注释就可以了!3)启动nsclient服务并确认端口是否打开2. linux设置接下来我们开始配置nagios服务器里面的内容,因为nagios是模块化调用,先到配置文件打开windows相关模块。
Shell脚本编写的高级技巧使用系统监控和日志分析工具案例在系统管理和运维中,自动化和脚本编写是不可或缺的一部分。
Shell脚本是一种强大的编程语言,可以帮助我们快速而高效地完成各种任务。
本文将介绍Shell脚本编写的高级技巧,并结合实际案例讲解如何使用系统监控和日志分析工具来提升系统管理的效率。
一、系统监控工具系统监控工具可以让我们实时监测系统的状态,并及时采取相应的措施来预防问题的发生。
在Shell脚本中,我们可以利用系统监控工具来统计并分析系统运行的各项指标,从而实现自动化的监控和报警。
1. SAR(System Activity Reporter)SAR是一款常用的系统性能监测工具,它可以收集和报告系统的相关性能数据,包括CPU利用率、内存使用情况、磁盘I/O等。
我们可以通过编写Shell脚本来自动化地收集和分析SAR产生的数据,并根据阈值进行报警。
2. NagiosNagios是一款开源的网络和系统监控工具,可以监测主机、网络服务和应用程序等。
我们可以编写Shell脚本来监控指定的服务和关键进程,并在发生故障或异常时发送邮件或短信进行报警。
二、日志分析工具日志是系统管理和故障排查中的重要信息来源,通过分析日志可以了解系统运行的情况,发现潜在的问题并及时解决。
在Shell脚本中,我们可以利用日志分析工具来自动化地处理和分析系统日志。
1. AWKAWK是一种文本处理工具,可以用于快速而灵活地处理结构化的文本数据。
在Shell脚本中,我们可以使用AWK来提取日志中的关键信息,并进行统计和分析。
2. grepgrep是一款强大的文本搜索工具,可以根据正则表达式来搜索和过滤文本。
在Shell脚本中,我们可以使用grep来查找关键字或特定模式的日志,并将结果输出到文件或进行其他处理。
三、案例分析为了更好地理解Shell脚本编写的高级技巧,我们将结合实际案例来演示如何使用系统监控和日志分析工具。
案例一:系统资源监控假设我们需要监控一台服务器的CPU利用率和内存使用情况,并在超过阈值时发送报警邮件。
Linux系统监控之 Nagios配置教程详解(赵舜东)实验目的:通过实验熟练掌握Nagios这个开源的监控解决方案的实施。
实验环境:Red Hat Enterprise Linux +nagios.3.2.0实验步骤:第一部分:Linux系统监控之 Nagios详解(一)一、Nagios 简介(一)什么是Nagios,Nagios有哪些特性。
(二)Nagios工作原理二、部署Nagios监控服务器(一)下载所需软件包(二)安装Nagios(三)安装Nagios的插件nagios-plugin(四)配置检测主机是否存活(五)第一部分功能测试第二部分:Linux系统监控之 Nagios详解(二)三、使用Nagios监控Linux 客户端(一)Nagios监控服务器的配置(二)Nagios监控客户端的配置四、使用Nagios 监控Windows 客户端(一)Nagios 监控服务器的配置(二)Nagios 监控客户端的配置第三部分:Linux系统监控之 Nagios详解(三)五、Nagios 配置文件详解实验简介:公司进行了机房改造,新系统也上线了,需要一个强大的监控方案,对服务器和各服务的运行情况进行有效的监控,我第一个想到的就是Nagios这个强大的开源解决方案,本文以监控八台服务器和Nagios服务器本身为例。
根据先实现、后深入的方式,把本文分为三个部分,开始先实现了功能, 在第三个部分,在对配置的内容进行详细的讲解,功能实现:实现Web浏览器监控,Mail报警邮件收发,手机短信收发。
手机短信怎么收发呢?网上有很多很多的方法,我推荐一种就是使用139信箱,139信箱有一项免费的功能就是发邮件通知到您的手机上,可以在手机上看邮件内容,免费的哦。
什么?还没有139信箱,那么别傻呆了,系统运维必备的信箱,快免费申请吧。
本作品为本站原创作品,如需转载请注明来自UnixHot 技术联盟实验答疑:zhaoshundong@一、Nagios 简介官方网站:/ (更多的详细说明请参考官方网站)Nagios® is a system and network monitoring application. It watches hosts and services that you specify, alerting you when things go bad and when they get better.Nagios was originally designed to run under Linux, although it should work under most other unices as well.Some of the many features of Nagios include:1.Monitoring of network services (SMTP, POP3, HTTP, NNTP, PING, etc.) 监控网络资源2.Monitoring of host resources (processor load, disk usage, etc.) 监控主机资源3.Simple plugin design that allows users to easily develop their own service checks4.Parallelized service checks5.Ability to define network host hierarchy using "parent" hosts, allowing detection of and distinction between hosts that are down and those that are unreachable6.Contact notifications when service or host problems occur and get resolved (via email, pager, or user-defined method)7.Ability to define event handlers to be run during service or host events for proactive problem resolution8.Automatic log file rotation 自动日志轮滚9.Support for implementing redundant monitoring hosts 支持冗余10.Optional web interface for viewing current network status, notification and problem history, log file, etc.请参考Nagios 中文在线帮助文档:/docs/nagios/cn/build/html/index.html二、部署Nagios监控服务器(一)下载所需软件包1.nagios.3.2.0.tar.gz Nagios的主程序[root@UnixHot src]# wget /sourceforge/nagios/nagios.3.2.0.tar.gz2.nagios-plugins-1.4.13.tar.gz Nagios 的插件[root@UnixHot src]# wget /sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz3.nrpe-2.12.tar.gz代理检测程序[root@UnixHot src]# wget /sourceforge/nagios/nrpe-2.12.tar.gz[root@UnixHot src]# lsnagios-3.2.0.tar.gz nagios-plugins-1.4.13.tar.gz nrpe-2.12.tar.gz(二)安装Nagios官方的安装文档:/docs/3_0/quickstart-fedora.html1.安装前的依赖检查[root@UnixHot ~]# rpm -q httpd php gcc glibc glibc-common gd gd-devel2.创建Nagios账户和组[root@UnixHot src]# useradd -m nagios[root@UnixHot src]#groupadd nagcmd[root@UnixHot src]# usermod -a -G nagcmd nagios[root@UnixHot src]#usermod -a -G nagcmd apache3.编译安装[root@UnixHot src]# tar xvf nagios-3.2.0.tar.gz[root@UnixHot src]# cd nagios-3.2.0(至于每一步的具体意思,我不再详述,因为运行完毕后,提示信息会明确的告诉你,它干了什么,是怎么干的。
一.nagios在服务器端(监控端)的安装。
服务器IP地址:192.168.0.131.在安装之前首先检测系统是否安装以下包:httpd php gcc glibc glibc-common gd gd-devel#rpm -qa | grep httpd#rpm -qa | grep php....#rpm -qa | grep gd2.创建用户#useradd nagios#groupadd nagcmd#/usr/sbin/usermod -a -G nagcmd nagios#/usr/sbin/usermod -a -G nagcmd apache3.安装nagios包(此处用3.2.0版本)#tar zxvf nagios-3.2.0.tar.gz#cd nagios-3.2.0#./configure --prefix=/usr/local/nagios --with-command-group=nagcmd#make#make install#make install-init#make install-config#make install-commandmode#make install-webconf4.创建管理用户并启动apache#htpasswd -c /usr/local/nagios/etc/ers nagiosadminpasswd:******此处所创建用户为nagiosadmin,如果为其他用户刚后面要修改文件:/usr/local/nagios/etc/cgi.cfg,后面再讲。
#service httpd restart5.安装nagios-plugins(此处用1.4.13版本)#tar zxvf nagios-plugins-1.4.13.tar.gz#cd nagios-plugins-1.4.13#./configure --with-nagios-user=nagios --with-nagios-group=nagios--prefix=/usr/local/nagios#make#make install6.注册服务,设置开机启动#chkconfig --add nagios#chkconfig nagios on7.此时完成初步安装,可以监控查看本机的一些服务,检测配置文件并启动nagios#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgChecking for circular paths between hosts...Checking for circular host and service dependencies...Checking global event handlers...Checking obsessive compulsive processor commands...Checking misc settings...Total Warnings: 0Total Errors: 0出现此处,表明,配置文件没有错误,可以启动nagios#service nagios start8.登录查看http://192.168.0.13/nagios/输入创建的用户名nagiosadmin与设置密码,进去可操作。
服务器性能监控工具ZabbixNagios和Prometheus的选择与使用在现代信息技术快速发展的背景下,服务器性能监控工具成为企业和个人管理服务器的重要利器。
其中,Zabbix、Nagios和Prometheus是市场上广受欢迎的三种性能监控工具。
本文将从功能特点、易用性、扩展性和适用场景等方面,对Zabbix、Nagios和Prometheus进行比较分析,帮助读者选择并使用最合适的服务器性能监控工具。
一、ZabbixZabbix是一个成熟而强大的开源性能监控工具,被广泛应用于企业级网络环境。
Zabbix的主要功能特点包括四个方面:监控、警报、可视化和自动化。
首先,Zabbix具备全面的监控功能,可以监控服务器的CPU利用率、内存使用率、网络流量、磁盘IO等重要指标,实时了解服务器的性能状况。
其次,Zabbix支持配置警报策略,当服务器性能异常时,可以通过邮件、短信等方式及时通知管理员,以便及时采取措施解决问题。
再次,Zabbix提供直观的可视化界面,可以以图表、表格等形式展示服务器性能指标的历史数据,便于管理员分析趋势和进行容量规划。
最后,Zabbix支持自动化功能,可以通过脚本、API等方式自动处理异常事件,提高故障响应效率。
Zabbix的易用性方面,它提供了直观友好的Web界面,管理员可以通过Web界面完成配置、监控和数据展示等操作,无需深入了解复杂的命令行参数。
此外,Zabbix提供丰富的文档和社区支持,用户可以轻松获取相关帮助和资源。
Zabbix的扩展性方面表现突出。
它支持各种操作系统的监控,包括Windows、Linux、Unix等。
同时,Zabbix还支持多种数据库,如MySQL、PostgreSQL等。
此外,Zabbix提供了丰富的插件和API,可以方便地与其他系统进行集成,满足不同用户的需求。
适用场景上,Zabbix适用于中大型企业或服务器数量较多的场景,具备完备的监控和管理功能。
Nagios监控Windows服务器(NSClient++安装与应用)一、NSClient++安装1、下载NSClient++插件点击下面链接下载/x-0.3.x/NSClient%2B%2B-0.3.9-Win32.ms i 2、安装插件与配置1)安装过程十分简单,直接点击下一步,下一步即可。
安装过程注意如下图的设置即可2)配置NSClient编辑NSClient安装目录下的NSC.ini文件,修改后,重启NSClient即可,如下图所示3)模块作用说明,如下表Module Description CommandsCheckSystem.d ll Handles many system checksCPU, MEMORY,COUNTER etcCheckDisk.dll Handles Disk related checks USEDDISKSPACEFileLogger.dll Logs errors to a file so you can see what is going onN/ANSClientListen er.dll Listens and responds to incoming requestsfrom nagiosN/A二、NSClient应用监控NSClient++与Nagios服务器通信,主要使用Nagios服务器的check_nt插件。
原理图如下1、check_nt插件的使用说明[root@localhost libexec]# ./check_nt -hcheck_nt v1.4.15 (nagios-plugins 1.4.15)Copyright (c) 2000 Yves Rubin (rubiyz@) Copyright (c) 2000-2007 Nagios Plugin Development T eam <nagiosplug-devel@>This plugin collects data from the NSClient service running on a Windows NT/2000/XP/2003 server.Usage:check_nt -H host -v variable [-p port] [-w warning] [-c critical] [-l params] [-d SHOWALL] [-u] [-t timeout]Options:-h, --helpPrint detailed help screen-V, --versionPrint version informationOptions:-H, --hostname=HOSTName of the host to check-p, --port=INTEGEROptional port number (default: 1248)-s, --secret=<password>Password needed for the request-w, --warning=INTEGERThreshold which will result in a warning status-c, --critical=INTEGERThreshold which will result in a critical status-t, --timeout=INTEGERSeconds before connection attempt times out (default: -l,--params=<parameters>Parameters passed to specified check (see below) -d, --display={SHOWALL} Display options (currently only SHOWALL works) -u, --unknown-timeout Return UNKNOWN on timeouts10)-h, --helpPrint this help screen-V, --versionPrint version information-v, --variable=STRINGVariable to checkValid variables are:CLIENTVERSION = Get the NSClient versionIf -l <version> is specified, will return warning if versions differ. CPULOAD =Average CPU load on last x minutes.Request a -l parameter with the following syntax:-l <minutes range>,<warning threshold>,<critical threshold>.<minute range> should be less than 24*60.Thresholds are percentage and up to 10 requests can be done in one shot. ie: -l 60,90,95,120,90,95UPTIME =Get the uptime of the machine.No specific parameters. No warning or critical threshold USEDDISKSPACE =Size and percentage of disk use.Request a -l parameter containing the drive letter only.Warning and critical thresholds can be specified with -w and -c. MEMUSE =Memory use.Warning and critical thresholds can be specified with -w and -c. SERVICESTATE =Check the state of one or several services.Request a -l parameters with the following syntax:-l <service1>,<service2>,<service3>,...You can specify -d SHOWALL in case you want to see working servicesin the returned string.PROCSTATE =Check if one or several process are running.Same syntax as SERVICESTATE.COUNTER =Check any performance counter of Windows NT/2000.Request a -l parameters with the following syntax:-l "\\<performance object>\\counter","<description>The <description> parameter is optional and is given to a printfoutput command which requires a float parameter.If <description> does not include "%%", it is used as a label.Some examples:"Paging file usage is %%.2f %%%%""%%.f %%%% paging file used."INSTANCES =Check any performance counter object of Windows NT/2000.Syntax: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object> <counter object> is a Windows Perfmon Counter object (eg. Process),if it is two words, it should be enclosed in quotesThe returned results will be a comma-separated list of instances onthe selected computer for that object.The purpose of this is to be run from command line to determine what instances are available for monitoring without having to log onto the Windows server to run Perfmon directly.It can also be used in scripts that automatically create Nagios serviceconfiguration files.Some examples:check_nt -H 192.168.1.1 -p 1248 -v INSTANCES -l Process2、检查Nagios目录下的libexec子目录,一定要存在check_nt(例如:/usr/local/nagios/libexec/check_nt)3、查看Nagios服务器下定义check_nt命令[root@localhost etc]# vim commands.cfgdefine command {command_name check_ntcommand_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v$ARG1$ $ARG2$register 1}4、Windows系统监控应用首先定义一个需要监控的主机,本例为监控Winxp226,命令如下:define host {host_name winxp226alias My Windows Serveraddress 10.0.192.226use windows-server,host-pnpregister 1}1)监控windows 主机的CPU 负载define service {host_name winxp226service_description cpuloaduse generic-servicecheck_command check_nt!CPULOAD!-l 5,70,80,10,80,90register 1}注:#CPU如果到达80%则报警,到达90%则警笛2)监控windows 主机的内存使用状况define service {host_name winxp226service_description Memory Usageuse generic-servicecheck_command check_nt!MEMUSE!-w 80 -c 90register 1}注:内存使用到达80%则warn,到达90%则Critical3)监控windows 主机的开机运作时间define service {host_name winxp226service_description Uptimeuse generic-servicecheck_command check_nt!UPTIMEregister 1}4)检查windows主机是否已经安装了NSClient++,及它的版本号define service {host_name winxp226service_description NSClient++ Versionuse generic-servicecheck_command check_nt!CLIENTVERSIONregister 1}5)监控windows 主机的C:\ 的空间使用量define service {host_name winxp226service_description C:\ Drive Spaceuse generic-servicecheck_command check_nt!USEDDISKSPACE!-l c! -w 80 -c 90register 1}6)监控windows主机的W3SVC设置的动作状况define service{host_name winxp226use generic-serviceservice_description W3SVCcheck_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC}7)监控windows 主机的Explorer.exe 进程运作状况,如程序终止,则会发Critical define service {host_name winxp226service_description Exploreruse generic-servicecheck_command check_nt!PROCSTATE! -d SHOWALL -l explorer.exe register 1}8)监控windows 主机的SNMP服务的运作状况,如服务终止,则会发CRITICALdefine service{use generic-servicehost_name winxp226service_description SNMPcheck_command check_nt!SERVICESTATE!-d SHOWALL -l "SNMP Service"}9)监控Windows主机的MySQL服务运行情况,如服务终止,则会发出CRITICALdefine service {host_name winxp226service_description MySQL55use generic-servicecheck_command check_nt!SERVICESTATE! -d SHOWALL -l MySQL55register 1}注意:此服务名称应与Windows服务名称相同,如服务中间有空格时请将其放入双引号内,否则将会报无效的参数。
使用NAGIOS 平台开发监控应用服务
BY Country7th 2008年的秋天
●开发NAGIOS监控程序可以做什么用
正如现在已经运行的N A G I O S一样,它可以为相关人员带
到实时的服务运行状态信息,并在出现危急的时候告警通知相关
人员处理,有许多监控程序可用于监控不同的设备和服务,例
如:W E B服务、H T T P访问状态、C P U负荷、磁盘利用
率、内存占用、当前用户数,路由器和交换机运行状态等,还有
更多需求等着大家在工作发觉,通用N A G I O S进行监控
●NAGIOS监控服务原理
当需要检测主机或服务的状态时N a g i o s会执行一个外部
监控程序,外部监控程序总要做点事情(注意一般条件下)来完成
检查并给返回结果给N a g i o s系统,N a g i o s根据检测
结果来决定网络中的主机和服务的当前状态
外部监控程序根据操作系统的不同分为L I U N X和
W I N D O W S两类,插件是编译的执行文件或脚本(P e r l
脚本、P H P、S H E L L脚本等等),可以在命令行下执行对
主机或服务的状态检查。
N a g i o s将处理这些来自插件的结
果并做些该做的动作(运行事件处理、发送出邮件、短信、电话告
警通知等)
●外部监控程序输出到NAGIOS通信方式
●按指定标准输出返回值给NAGIOS系统的监控端(NSClient)
●输出到数据库由NAGIOS服务器端采集读取数据信息进行通信
●采用SNMP协议发送据由NAGIOS服务器端直接采集
●外部监控程序返回值给NAGIOS系统的监控端(NSClient)的输出格式
经讨论机房统一使用第一种通信方式开发以后所有的外部监控应用,以下将详
细介绍从外部监控程序到NAGIOS系统的监控端(NSClient)的输出格式
N a g i o s外部监控程序可以是任何操作系统的可执行的脚本
或都程序,N a g i o s外部监控程序并不关心外部监控程序的
内部细节,你可以根据要监控的情况,是T C P服务,数据库,或者硬盘空间等等,来编写自己的监控代码
一个外部监控程序首先要完成相应的监控功能,向N A G I O S 系统的监控端直接返回结果,外部监控程序必须完成以下格式输出值,内容可包括以下三项输出
(1)输出运行状态摘要[必须输出]
直接向外部输出一段当前状态的自定义说明文字,在NAGIOS浏览界面上显示
(2)输出运行状态[必须输出]
结果是运行、告警、未知和紧急四个状态之一,NAGIOS系统的监控端接收到返回值,将按照检测结果送出通知、记录警告等
1.正常(OK) :直接向外部输出“0”,NAGIOS接收到返回值”0”则表
示正常
2.告警(WARNING):直接向外部输出“1”,NAGIOS接收到返回
值”0”则表示告警
3.紧急(CRITICAL):直接向外部输出“2”,NAGIOS接收到返回值”0”
则表示紧急
4.未知(UNKNOWN):直接向外部输出“3”,NAGIOS接收到返回
值”3”则表示未知
(3)输出性能数据(图表)格式[可选输出]
输出性能数据是可选的,必须用管道符(|)把性能数据与其他数据分开,可同时输出多行性能数据。
在管道符(|)后为此性能项命名,并赋一个当前值,跟随依次分号(;)分别表示“告警值”,“紧急值”,“最小值”,“最大值”,N A G I O S 系统接收到返回值包含性能数据串的内容后,将会调用R R D T o o L输出性能报表
示例:向NAGIOS返回10分钟内CPU平均利用率是否正常
注(示例以Delphi呈现)
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
perfstr:string;
cpustatus:string;
begin
{ TODO -oUser -cConsole Main : Insert code here }
...
检查代码
...
if cpustatus = ok then
write('CPU status OK')//向NAGIOS返回CPU当前运行状态为OK的显示摘要
else if cpustatus = critical then
write('CPU status CRITICAL');//向NAGIOS返回CPU当前运行状态为 CRITICAL的显示摘要 ...
检查代码
...
perfstr := '|10 min avg Load=';//合成性能信息
perfstr := perfstr+inttostr(10);//将此处的10换成实际的当前CPU利用率
perfstr := perfstr++';90;95;0;100';//定义性能图表显示指标
write(perfstr);//输出性能参数
...
检查代码
...
if cpustatus = ok then
exitcode:= 0//返回值为0表示向NAGIOS返回当前检查服务运行正常
else if cpustatus = warning then
exitcode:= 1//返回值为1表示向NAGIOS返回当前检查服务运行告警
else if cpustatus = critical then
exitcode:= 2;//返回值为2表示向NAGIOS返回当前检查服务运行紧急
end.
NAGIOS系统接收到返回值在浏览器看查看到的图示
NAGIOS系统接收到性能数据返回值在浏览器看查看到的图示
●联系人概念
当服务或主机问题产生与解决时将告警发送给预先指定的联系人(通过电话、短信、用户定义方式)
●配置人员概念
一个符合NAGIOS的外部监控程序开发完成后,提交给NAGIOS的配置人员进行监控平台的配置,从而完成一个监控报警服务的最后阶段。