- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linux下Nagios的安装与配置方法(图文详解)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、Nagios简介 。
Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。 Nagios原名为NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒,而"Agios"是"saint"的希腊表示方法。Nagios被开发在Linux下使用,但在Unix下也工作得非常好.
主要功能 。
•网络服务监控(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界面可以查看当前网络状态,通知,问题历史,日志文件等 。
2、Nagios工作原理 。
Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。 启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。 Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。 Nagios可以识别4种状态返回信息,即 0(OK)表示状态正常/绿色、1(WARNING)表示出现警告/黄色、2(CRITICAL)表示出现非常严重的错误/红色、3(UNKNOWN)表示未知错误/深黄色。Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来,以供管理员及时发现故障.
四种监控状态 。
再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,同样的,Nagios 自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成的。 Nagios 安装,是指基本平台,也就是Nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。 打开Nagios官方的文档,会发现Nagios基本上没有什么依赖包,只要求系统是Linux或者其他Nagios支持的系统。不过如果你没有安装apache(http服务),那么你就没有那么直观的界面来查看监控信息了,所以apache姑且算是一个前提条件。关于apache的安装,网上有很多,照着安装就是了。安装之后要检查一下是否可以正常工作。 知道Nagios 是如何通过插件来管理服务器对象后,现在开始研究它是如何管理远端服务器对象的。Nagios 系统提供了一个插件NRPE。Nagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图所示: 。
Nagios 通过NRPE 来远端管理服务 。
1. Nagios 执行安装在它里面的check_nrpe 插件,并告诉check_nrpe 去检测哪些服务。 2. 通过SSL,check_nrpe 连接远端机子上的NRPE daemon 3. NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc) 4. 最后,NRPE 把检测的结果传给主机端的check_nrpe,check_nrpe 再把结果送到Nagios状态队列中。 5. Nagios 依次读取队列中的信息,再把结果显示出来.
3、实验环境 。
。
Host Name | OS | IP | Software |
Nagios-Server | CentOS release 6.3 (Final) | 192.168.1.108 | Apache、Php、Nagios、nagios-plugins |
Nagios-Linux | CentOS release 5.8 (Final) | 192.168.1.111 | nagios-plugins、nrpe |
Nagios-Windows | Windows XP | 192.168.1.113 | NSClient++ |
。
Client 安装了NRPE等客户端,根据监控机的请求执行监控,然后将结果回传给监控机.
防火墙已关闭/iptables: Firewall is not running. 。
SELINUX=disabled 。
4、实验目标 。
5、Nagios服务端安装 5.1 基础支持套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel # rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel 。
如果系统中没有这些套件,使用yum 安装 。
# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel 。
5.2 创建nagios用户和用户组 。
# useradd -s /sbin/nologin nagios# mkdir /usr/local/nagios# chown -R nagios.nagios /usr/local/nagios 。
查看nagios 目录的权限 。
# ll -d /usr/local/nagios/ 。
5.3 编译安装Nagios 。
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz 。
# tar zxvf nagios-3.4.3.tar.gz 。
# cd nagios 。
# ./configure --prefix=/usr/local/nagios 。
# make all 。
# make install 。
# make install-init 。
# make install-commandmode 。
# make install-config 。
# chkconfig --add nagios 。
# chkconfig --level 35 nagios on 。
# chkconfig --list nagios 。
5.4 验证程序是否被正确安装 切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 这五个目录,如果存在则可以表明程序被正确的安装到系统了。Nagios 各个目录用途说明如下: 。
bin | Nagios 可执行程序所在目录 |
etc | Nagios 配置文件所在目录 |
sbin | Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 |
share | Nagios网页文件所在的目录 |
libexec | Nagios 外部插件所在目录 |
var | Nagios 日志文件、lock 等文件所在的目录 |
var/archives | Nagios 日志自动归档目录 |
var/rw | 用来存放外部命令文件的目录 |
。
5.5 安装Nagios 插件 。
# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz 。
# tar zxvf nagios-plugins-1.4.16.tar.gz 。
# cd nagios-plugins-1.4.16 。
# ./configure --prefix=/usr/local/nagios 。
# make && make install 。
5.6 安装与配置Apache和Php 。
Apache 和Php 不是安装nagios 所必须的,但是nagios提供了web监控界面,通过web监控界面可以清晰的看到被监控主机、资源的运行状态,因此,安装一个web服务是很必要的。 需要注意的是,nagios在nagios3.1.x版本以后,配置web监控界面时需要php的支持。这里我们下载的nagios版本为nagios-3.4.3,因此在编译安装完成apache后,还需要编译php模块,这里选取的php版本为php5.4.10.
a. 安装Apache 。
# wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz 。
# tar zxvf httpd-2.2.23.tar.gz 。
# cd httpd-2.2.23 。
# ./configure --prefix=/usr/local/apache2 。
# make && make install 。
若出现错误:
则在编译时入加 --with-included-apr 即可解决.
b. 安装Php 。
# wget http://cn2.php.net/distributions/php-5.4.10.tar.gz 。
# tar zxvf php-5.4.10.tar.gz 。
# cd php-5.4.10 。
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs 。
# make && make install 。
c. 配置apache 找到apache 的配置文件/usr/local/apache2/conf/httpd.conf 找到:
。
。
修改为 。
。
。
然后找到 。
。
。
修改为 。
。
。
接着增加如下内容:
AddType application/x-httpd-php .php 为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf 文件最后添加如下信息:
d. 创建apache目录验证文件 。
在上面的配置中,指定了目录验证文件htpasswd,下面要创建这个文件:
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd david 。
这样就在/usr/local/nagios/etc 目录下创建了一个htpasswd 验证文件,当通过http://192.168.1.108/nagios/ 访问时就需要输入用户名和密码了.
e. 查看认证文件的内容 。
# cat /usr/local/nagios/etc/htpasswd 。
f. 启动apache 服务 。
# /usr/local/apache2/bin/apachectl start 。
到这里nagios 的安装也就基本完成了,你可以通过web来访问了.
6、配置Nagios 。
Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等。默认的Nagios 配置没有任何监控内容,仅是一些模板文件。若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍.
6.1 默认配置文件介绍 。
Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下.
每个文件或目录含义如下表所示:
。
。
文件名或目录名 | 用途 |
cgi.cfg | 控制CGI访问的配置文件 |
nagios.cfg | Nagios 主配置文件 |
resource.cfg | 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$ |
objects | objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象 |
objects/commands.cfg | 命令定义配置文件,其中定义的命令可以被其他配置文件引用 |
objects/contacts.cfg | 定义联系人和联系人组的配置文件 |
objects/localhost.cfg | 定义监控本地主机的配置文件 |
objects/printer.cfg | 定义监控打印机的一个配置文件模板,默认没有启用此文件 |
objects/switch.cfg | 定义监控路由器的一个配置文件模板,默认没有启用此文件 |
objects/templates.cfg | 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 |
objects/timeperiods.cfg | 定义Nagios 监控时间段的配置文件 |
objects/windows.cfg | 监控Windows 主机的一个配置文件模板,默认没有启用此文件 |
。
6.2 配置文件之间的关系 。
在nagios的配置过程中涉及到的几个定义有:主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义可以看出,nagios各个配置文件之间是互为关联,彼此引用的.
成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点:
第一:定义监控哪些主机、主机组、服务和服务组; 第二:定义这个监控要用什么命令实现; 第三:定义监控的时间段; 第四:定义主机或服务出现问题时要通知的联系人和联系人组.
6.3 配置Nagios 。
为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:
• 创建hosts.cfg文件来定义主机和主机组 • 创建services.cfg文件来定义服务 • 用默认的contacts.cfg文件来定义联系人和联系人组 • 用默认的commands.cfg文件来定义命令 • 用默认的timeperiods.cfg来定义监控时间段 • 用默认的templates.cfg文件作为资源引用文件 a. templates.cfg文件 。
nagios主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。这就是templates.cfg的作用.
下面详细介绍下templates.cfg文件中每个参数的含义:
b. resource.cfg文件 。
resource.cfg是nagios的变量定义文件,文件内容只有一行:
$USER1$=/usr/local/nagios/libexec 。
其中,变量$USER1$指定了安装nagios插件的路径,如果把插件安装在了其它路径,只需在这里进行修改即可。需要注意的是,变量必须先定义,然后才能在其它配置文件中进行引用.
c. commands.cfg文件 。
此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可.
d. hosts.cfg文件 此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息,根据实验目标配置如下:
注意:在/usr/local/nagios/etc/objects 下默认有localhost.cfg 和windows.cfg 这两个配置文件,localhost.cfg 文件是定义监控主机本身的,windows.cfg 文件是定义windows 主机的,其中包括了对host 和相关services 的定义。所以在本次实验中,将直接在localhost.cfg 中定义监控主机(Nagios-Server),在windows.cfg中定义windows 主机(Nagios-Windows)。根据自己的需要修改其中的相关配置,详细如下: localhost.cfg 。
windows.cfg 。
e. services.cfg文件 此文件默认也不存在,需要手动创建,services.cfg文件主要用于定义监控的服务和主机资源,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等。Nagios-Server 和Nagios-Windows 相关服务已在相应的配置文件中定义,所以这里只需要定义Nagios-Linux 相关服务即可,这里只定义一个检测是否存活的服务来验证配置文件的正确性,其他服务的定义将在后面讲到。 。
。
h. cgi.cfg文件 此文件用来控制相关cgi脚本,如果想在nagios的web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。 由于nagios的web监控界面验证用户为david,所以只需在cgi.cfg文件中添加此用户的执行权限就可以了,需要修改的配置信息如下: 。
。
6.4 验证Nagios 配置文件的正确性 Nagios 在验证配置文件方面做的非常到位,只需通过一个命令即可完成: # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 。
Nagios提供的这个验证功能非常有用,在错误信息中通常会打印出错误的配置文件以及文件中的哪一行,这使得nagios的配置变得非常容易,报警信息通常是可以忽略的,因为一般那些只是建议性的。 看到上面这些信息就说明没问题了,然后启动Nagios 服务。 7、Nagios的启动与停止 7.1 启动Nagios a. 通过初始化脚本启动nagios 。
。
c. 手工方式平滑重启 。
# kill -HUP <nagios_pid> 。
7.3 停止Nagios 。
a. 通过初始化脚本关闭nagios服务 。
。
。
b. 通过web监控页停止nagios 。
可以通过web监控页的 "Process Info" -> "Shutdown the Nagios process"来停止nagios 。
c. 手工方式停止Nagios # kill <nagios_pid> 8、查看初步配置情况 8.1 启动完成之后,登录Nagios Web监控页http://192.168.1.108/nagios/ 查看相关信息。 8.2 点击左面的Current Status -> Hosts 可以看到所定义的三台主机已经全部UP了。 。
8.3 点击Current Status -> Services 查看服务监控情况.
看到Nagios-Linux和Nagios-Server的服务状态已经OK了,但是Nagios-Windows的服务状态为CRITICAL,Status Information 提示Connection refused。因为Nagios-Windows上还未安装插件,内部服务还无法查看,所以出现这种情况。将在下面具体讲解。 9、利用NRPE监控远程Linux上的“本地信息” 上面已经对远程Linux 主机是否存活做了监控,而判断远程机器是否存活,我们可以使用ping 工具对其监测。还有一些远程主机服务,例如ftp、ssh、http,都是对外开放的服务,即使不用Nagios,我们也可以试的出来,随便找一台机器看能不能访问这些服务就行了。但是对于像磁盘容量,cpu负载这样的“本地信息”,Nagios只能监测自己所在的主机,而对其他的机器则显得有点无能为力。毕竟没得到被控主机的适当权限是不可能得到这些信息的。为了解决这个问题,nagios有这样一个附加组件--“NRPE”,用它就可以完成对Linux 类型主机"本地信息”的监控。 9.1 NRPE 工作原理 。
NRPE 总共由两部分组成: check_nrpe 插件,位于监控主机上NRPE daemon,运行在远程的Linux主机上(通常就是被监控机) 按照上图,整个的监控过程如下: 当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时: Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;NRPE daemon 会运行相应的Nagios 插件来执行检查;NRPE daemon 将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。 注意:NRPE daemon 需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。 9.2 在被监控机(Nagios-Linux)上 a. 增加用户&设定密码 # useradd nagios # passwd nagios 。
b. 安装Nagios 插件 。
。
。
这一步完成后会在/usr/local/nagios/下生成三个目录include、libexec和share.
修改目录权限 。
。
。
c. 安装NRPE 。
。
。
# make all 。
接下来安装NPRE插件,daemon和示例配置文件.
c.1 安装check_nrpe 这个插件 。
# make install-plugin 。
监控机需要安装check_nrpe 这个插件,被监控机并不需要,我们在这里安装它只是为了测试目的.
c.2 安装deamon 。
# make install-daemon 。
c.3 安装配置文件 。
# make install-daemon-config 。
现在再查看nagios 目录就会发现有5个目录了 。
按照安装文档的说明,是将NRPE deamon作为xinetd下的一个服务运行的。在这样的情况下xinetd就必须要先安装好,不过一般系统已经默认安装了.
d. 安装xinted 脚本 。
# make install-xinetd 。
可以看到创建了这个文件/etc/xinetd.d/nrpe.
编辑这个脚本:
在only_from 后增加监控主机的IP地址.
编辑/etc/services 文件,增加NRPE服务 。
重启xinted 服务 。
# service xinetd restart 。
查看NRPE 是否已经启动 。
可以看到5666端口已经在监听了.
e. 测试NRPE是否则正常工作 。
使用上面在被监控机上安装的check_nrpe 这个插件测试NRPE 是否工作正常.
# /usr/local/nagios/libexec/check_nrpe -H localhost 。
会返回当前NRPE的版本 。
也就是在本地用check_nrpe连接nrpe daemon是正常的.
注:为了后面工作的顺利进行,注意本地防火墙要打开5666能让外部的监控机访问.
f. check_nrpe 命令用法 。
查看check_nrpe 命令用法 。
# /usr/local/nagios/libexec/check_nrpe –h 。
可以看到用法是:
check_nrpe –H 被监控的主机 -c 要执行的监控命令 。
注意:-c 后面接的监控命令必须是nrpe.cfg 文件中定义的。也就是NRPE daemon只运行nrpe.cfg中所定义的命令.
g. 查看NRPE的监控命令 。
# cd /usr/local/nagios/etc 。
# cat nrpe.cfg |grep -v "^#"|grep -v "^$" 。
红色部分是命令名,也就是check_nrpe 的-c 参数可以接的内容,等号 “=” 后面是实际执行的插件程序(这与commands.cfg 中定义命令的形式十分相似,只不过是写在了一行)。也就是说check_users 就是等号后面/usr/local/nagios/libexec/check_users -w 5 -c 10 的简称。 我们可以很容易知道上面这5行定义的命令分别是检测登陆用户数,cpu负载,sda1的容量,僵尸进程,总进程数。各条命令具体的含义见插件用法(执行“插件程序名 –h”)。 由于-c 后面只能接nrpe.cfg 中定义的命令,也就是说现在我们只能用上面定义的这五条命令。我们可以在本机实验一下。 。
9.3 在监控主机(Nagios-Server)上 。
之前已经将Nagios运行起来了,现在要做的事情是:
安装check_nrpe 插件;在commands.cfg 中创建check_nrpe 的命令定义,因为只有在commands.cfg 中定义过的命令才能在services.cfg 中使用;创建对被监控主机的监控项目; 。
9.3.1 安装check_nrpe 插件 。
# tar zxvf nrpe-2.13.tar.gz # cd nrpe-2.13# ./configure# make all# make install-plugin 。
只运行这一步就行了,因为只需要check_nrpe插件.
在Nagios-Linux 上我们已经装好了nrpe,现在我们测试一下监控机使用check_nrpe 与被监控机运行的nrpe daemon之间的通信.
看到已经正确返回了NRPE的版本信息,说明一切正常.
9.3.2 在commands.cfg中增加对check_nrpe的定义 。
# vi /usr/local/nagios/etc/objects/commands.cfg 。
在最后面增加如下内容:
意义如下:
。
。
还有一个任务是要监控Nagios-Linux 的swap 使用情况。但是在nrpe.cfg 中默认没有定义这个监控功能的命令。怎么办?手动在nrpe.cfg 中添加,也就是自定义NRPE命令。 现在我们要监控swap 分区,如果空闲空间小于20%则为警告状态 -> warning;如果小于10%则为严重状态 -> critical。我们可以查得需要使用check_swap插件,完整的命令行应该是下面这样。 # /usr/local/nagios/libexec/check_swap -w 20% -c 10% 在被监控机(Nagios-Linux)上增加check_swap 命令的定义 # vi /usr/local/nagios/etc/nrpe.cfg 增加下面这一行 command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10% 我们知道check_swap 现在就可以作为check_nrpe 的-c 的参数使用了 修改了配置文件,当然要重启。 如果你是以独立的daemon运行的nrpe,那么需要手动重启;如果你是在xinetd 下面运行的,则不需要。 由于本实验中nrpe 是xinetd 下运行的,所以不需要重启服务。 在监控机(Nagios-Server)上增加这个check_swap 监控项目 XML/HTML Code复制内容到剪贴板 。
同理,Nagios-Linux 上我还开启了http 服务,需要监控一下,按照上面的做法,在被监控机(Nagios-Linux)上增加check_http 命令的定义 # vi /usr/local/nagios/etc/nrpe.cfg 增加下面这一行 command[check_http]=/usr/local/nagios/libexec/check_http -I 127.0.0.1 在监控机(Nagios-Server)上增加check_http 监控项目 。
所有的配置文件已经修改好了,现在重启Nagios。 # service nagios restart 9.3.4 查看配置情况 登录Nagios Web监控页http://192.168.1.108/nagios/ 查看相关信息。 。
可以看到,对于Nagios-Server 和Nagios-Linux 上的相关服务的监控已经成功了,还有Nagios-Windows 上的服务还没有定义,下面讲到.
。
10、利用NSClient++监控远程Windows上的“本地信息” 。
在Nagios的libexec下有check_nt这个插件,它就是用来检查windows机器的服务的。其功能类似于check_nrpe。不过还需要搭配另外一个软件NSClient++,它则类似于NRPE.
NSClient++的原理如下图 。
可以看到NSClient与nrpe最大的区别就是:
被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行的。当监控主机将监控请求发给nrpe后,nrpe调用插件来完成监控。NSClient++则不同,被监控机上只安装NSClient,没有任何的插件。当监控主机将监控请求发给NSClient++后,NSClient直接完成监控,所有的监控是由NSClient完成的.
这也说明了NSClient++的一个很大的问题:不灵活、没有可扩展性。它只能完成自己本身包含的监控操作,不能由一些插件来扩展。好在NSClient++已经做的不错了,基本上可以完全满足我们的监控需求.
10.1 安装NSClient++ 。
从http://www.nsclient.org/nscp/downloads 下载NSClient++-0.2.7.zip 。
解压到C盘根目录.
打开cmd 切换到c:\NSClient++-0.2.7 。
执行nsclient++ /install 进行安装 。
执行nsclient++ SysTray (注意大小写),这一步是安装系统托盘,时间稍微有点长.
在运行里面输入services.msc 打开“服务” 。
看到下图就说明NSClient服务已经安装上了 。
双击打开,点“登录”标签,在“允许服务与桌面交互”前打勾.
编辑c:\NSClient++-0.2.7下的NSC.ini文件.
将 [modules]部分的所有模块前面的注释都去掉,除了CheckWMI.dll 和 RemoteConfiguration.dll 这两个.
在[Settings]部分设置'password'选项来设置密码,作用是在nagios连接过来时要求提供密码。这一步是可选的,我这里设置为'123456'.
将[Settings]部分'allowed_hosts'选项的注释去掉,并且加上运行nagios的监控主机的IP。各IP之间以逗号相隔。这个地方是支持子网的,如果写成192.168.1.0/24则表示该子网内的所有机器都可以访问。如果这个地方是空白则表示所有的主机都可以连接上来.
注意是[Settings]部分的,因为[NSClient]部分也有这个选项.
必须保证[NSClient]的'port'选项并没有被注释,并且它的值是'12489',这是NSClient的默认监听端口.
在cmd 中执行nsclient++ /start启动服务,注意所在目录是c:\NSClient++-0.2.7 。
这时在桌面右下角的系统托盘处会出现一个黄色的M字样的图标 。
查看服务 。
已经正常启动了.
注意服务默认设的是“自动”,也就是说是开机自动启动的.
在cmd 里面执行netstat –an 可以看到已经开始监听tcp的12489端口了.
这样外部就可以访问了吗?
错! 。
防火墙也要打开tcp的12489端口,否则nagios 检查此服务的时候会报错.
这样被监控机的配置就搞定了,它就等待nagios 发出某个监控请求,然后它执行请求将监控的结果发回到nagios监控主机上.
之前已经在监控主机(Nagios-Server)上对Windows 主机的监控做了配置,但是commands.cfg 中默认没有设置密码项,所以要修改一下,增加"-s 123456",如下:
现在打开Nagios Web监控页便可查看到相关信息了.
可以看到有错误:NSClient - ERROR: PDH Collection thread not running. 。
Google 一下,是由于操作系统语言的问题,好像NSClient 默认支持的语言并不多,具体可以百度一下.
查看NSClient的日志C:\NSClient++-0.2.7\nsclient.log,信息如下:
2013-02-02 22:05:30: error:.\PDHCollector.cpp:98: You need to manually configure performance counters.
需要手动配置performance counters.
打开C:\NSClient++-0.2.7\counters.defs文件,复制文件里面"English US"那部分内容,粘贴到counters.defs 文件的最后,修改Description = "Chinese".
修改完之后,在mmc中重启NSClient 服务.
然后查看日志,内容如下:
在正常执行了.
打开Nagios Web监控页查看.
执行成功,但是W3SVC服务为Unknown 状态。查资料,需要开启Windows 的IIS服务.
打开“控制面板”进行安装.
安装完毕后,再到Nagios Web监控页查看,全部监控正常.
11、Nagios邮件报警的配置 。
11.1 安装sendmail 组件 。
首先要确保sendmail 相关组件的完整安装,我们可以使用如下的命令来完成sendmail 的安装:
# yum install -y sendmail* 。
然后重新启动sendmail服务:
# service sendmail restart 。
然后发送测试邮件,验证sendmail的可用性:
# echo "Hello World" | mail david.tang@bsmart.cn 。
11.2 邮件报警的配置 。
在上面我们已经简单配置过了/usr/local/nagios/etc/objects/contacts.cfg 文件,Nagios 会将报警邮件发送到配置文件里的E-mail 地址.
11.3 Nagios 通知 。
PROBLEM 。
RECOVERY 。
Linux下Nagios安装配置完毕。 以下是针对错误的一些补充: 配置nagios,第一次查到的就是这篇资料。 文档中有一些错误,希望螺柱更改,不然会让新手走很多弯路。我就是、。 初次配置,复制文档中的代码,出现错误,查找了好长时间。 发现在语句的后面注释,使用#注释,都发生错误,修改为';'号注释才能正确。 希望修改一下注释符#为';'。谢谢。 。
。
最后此篇关于Linux下Nagios的安装与配置方法(图文详解)的文章就讲到这里了,如果你想了解更多关于Linux下Nagios的安装与配置方法(图文详解)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我想了解 Ruby 方法 methods() 是如何工作的。 我尝试使用“ruby 方法”在 Google 上搜索,但这不是我需要的。 我也看过 ruby-doc.org,但我没有找到这种方法。
Test 方法 对指定的字符串执行一个正则表达式搜索,并返回一个 Boolean 值指示是否找到匹配的模式。 object.Test(string) 参数 object 必选项。总是一个
Replace 方法 替换在正则表达式查找中找到的文本。 object.Replace(string1, string2) 参数 object 必选项。总是一个 RegExp 对象的名称。
Raise 方法 生成运行时错误 object.Raise(number, source, description, helpfile, helpcontext) 参数 object 应为
Execute 方法 对指定的字符串执行正则表达式搜索。 object.Execute(string) 参数 object 必选项。总是一个 RegExp 对象的名称。 string
Clear 方法 清除 Err 对象的所有属性设置。 object.Clear object 应为 Err 对象的名称。 说明 在错误处理后,使用 Clear 显式地清除 Err 对象。此
CopyFile 方法 将一个或多个文件从某位置复制到另一位置。 object.CopyFile source, destination[, overwrite] 参数 object 必选
Copy 方法 将指定的文件或文件夹从某位置复制到另一位置。 object.Copy destination[, overwrite] 参数 object 必选项。应为 File 或 F
Close 方法 关闭打开的 TextStream 文件。 object.Close object 应为 TextStream 对象的名称。 说明 下面例子举例说明如何使用 Close 方
BuildPath 方法 向现有路径后添加名称。 object.BuildPath(path, name) 参数 object 必选项。应为 FileSystemObject 对象的名称
GetFolder 方法 返回与指定的路径中某文件夹相应的 Folder 对象。 object.GetFolder(folderspec) 参数 object 必选项。应为 FileSy
GetFileName 方法 返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。 object.GetFileName(pathspec) 参数 object 必选项。应为
GetFile 方法 返回与指定路径中某文件相应的 File 对象。 object.GetFile(filespec) 参数 object 必选项。应为 FileSystemObject
GetExtensionName 方法 返回字符串,该字符串包含路径最后一个组成部分的扩展名。 object.GetExtensionName(path) 参数 object 必选项。应
GetDriveName 方法 返回包含指定路径中驱动器名的字符串。 object.GetDriveName(path) 参数 object 必选项。应为 FileSystemObjec
GetDrive 方法 返回与指定的路径中驱动器相对应的 Drive 对象。 object.GetDrive drivespec 参数 object 必选项。应为 FileSystemO
GetBaseName 方法 返回字符串,其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。 object.GetBaseName(path) 参数 object 必
GetAbsolutePathName 方法 从提供的指定路径中返回完整且含义明确的路径。 object.GetAbsolutePathName(pathspec) 参数 object
FolderExists 方法 如果指定的文件夹存在,则返回 True;否则返回 False。 object.FolderExists(folderspec) 参数 object 必选项
FileExists 方法 如果指定的文件存在返回 True;否则返回 False。 object.FileExists(filespec) 参数 object 必选项。应为 FileS
我是一名优秀的程序员,十分优秀!