|
前面已经把最基本的Nagios以及插件安装好了,现在只能对本机进行监控,要想监控远程主机,就必须通过类似于NRPE的软件来实现。
监控端和被监控端都要装nrpe,因为靠此来通信,nrpe是通过ssl来通信的,所以比较安全。
用到ssl就得装相关支持的包:yum -y install openssl openssl-devel
现在开始来安装nrpe:
以下操作在监控端进行:
首先把下载下来的nrpe-2.12.tar解压(自行网上下载)
- #tar zxf nrpe.2.12.tar
- #cd nrpe-2.12
- #./configure
- #make all
- #make install-plugin
安装完成后会在/usr/local/nagios/libexec/下生成check_nrpe文件
下面定义一个check_nrpe监控命令(默认装好以后没有被nagios调用)
顺带说下监控整体思想:
1.要定义监控的主机或服务
2.执行什么命令来监控
3.出现问题要通知的人
4.采用什么方式通知,邮件|短信 -----后续再细说
修改/usr/local/nagios/ec/commands.cfg(定义命令的文件),添加如下内容:
- define command {
- command_name check_nrpe
- command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
- }
至此监控端暂时完事。
以下操作在被监控端进行:
需要两个文件:
nagios-plugins-1.4.15.tar (nrpe依赖于这个插件)
nrpe-2.12.tar (远程通信)
首先创建安装用户:
useradd -s /sbin/nologin nagios
解压安装Nagios插件:
- #tar xzf nagios-plugins-1.4.15.tar.gz
- #cd nagios-plugins-1.4.15
- #./configure --with-nagios-user=nagios --with-nagios-group=nagios
- #make && make install
解压安装nrpe:
- #tar zxf nrpe.2.12.tar
- #cd nrpe-2.12
- #./configure
- #make all
- #make install-plugin
- #make install-daemon
- #make install-daemon-config
- #make install-xinetd
安装完毕。
接下来把nrpe交由xinetd来监听(好处:修改nrpe的配置文件不需要重启服务)
vim /etc/xinetd.d/nrpe
将only_from = 后面加上监控端的地址
确保/etc/services有nrpe 5666/tcp #NRPE这一行,没有则添加
重启xinetd服务,至此被监控端配置完毕。
接下来测试下连通性,在监控端执行:
/usr/local/nagios/libexec/check_nrpe -H 被监控端的地址
如能显示 “NRPE v2.12”,表明NRPE可以和被监控端正常通信。
部署前的工作基本OK了。
下面来说说,服务器上具体是怎么部署监控的。
首先来看下Nagios的目录结构
bin #存放执行文件,如nagios,以及后续安装的扩展程序
etc #存放配置文件,如nagios.cfg主配文件,平时部署维护操作最多的文件夹
include #存放引用文件,默认为空
libexec #存放执行命令,如check_load等,里面有很多命令,需要熟练掌握
sbin #存放一些cgi,平时一般不用动
share #存放一些网页文件,平时一般不用动
var #存放一些产生的数据文件,平时一般不用动
比较重要的就是etc和libexec。
下面说下如何定义一台主机以及主机上的服务:
首先修改:/usr/local/nagios/etc/nagios.cfg
去掉cfg_dir=/usr/local/nagios/etc/servers前面的注释
mkdir //usr/local/nagios/etc/servers
将来新建的主机以及服务都可以存放在这下面,建议把主机和服务写在一个配置文件中,按主机来划分,便于管理。
例如:
要监控一台http服务器
可以在servers下面新建一个以cfg结尾的文件
vim simple-http.cfg
- define host{ #定义一个主机
- use linux-server #引用etc/objects/templates.cfg中的linux-server配置(后续细说)
- host_name http #定义一个主机名,并不是http的实际主机名,任意即可,但要继续,后面要调用
- alias http #定义一个别名
- address 192.168.1.1 #指定地址
- }
- define service{ #定义一个服务
- use generic-service #引用etc/objects/templates.cfg中的generic-service配置(后续细说)
- host_name http #引用主机名
- service_description CPU Load #定义监控服务名,就是在web网页上显示的服务名
- check_command check_nrpe!check_load #定义要执行的命令:让check_nrpe调用被监控端的check_load命令执行
- } #以下类似(备注:每条定义的命令都必须在etc/nrpe.cfg中明确定义)
- define service{
- use generic-service
- host_name http
- service_description Current Users
- check_command check_nrpe!check_users
- }
- define service{
- use generic-service
- host_name http
- service_description Disk Free Space /
- check_command check_nrpe!check_root
- }
- define service{
- use generic-service
- host_name http
- service_description Total Processes
- check_command check_nrpe!check_total_procs
- }
- define service{
- use generic-service
- host_name http
- service_description Zombie Processes
- check_command check_nrpe!check_zombie_procs
- }
保存以后,check一下,没问题重载nagios的配置文件
service nagios reload
登录网页后就会看见定义监控的项目了。
|
|
|
|
|
|
|