nagios+nrpe安装配置

 

第一章、          监控软件nagios

Nagios功能非常强大,它可以监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。再说报警功能,如果监控系统发现问题不能报警那就没有意义了,所以报警也是nagios很重要的功能之一。但是,nagios自身也没有报警部分的代码,甚至没有插件,而是交给用户或者其他相关开源项目组去完成比如飞信,邮件等实现报警。nagios安装,是指基本平台,也就是nagios软件包的安装。它是监控体系的框架,也是所有监控的基础。

1.1.  服务器端搭建

1.1.1.      nagios搭建

准备 nagios-xxx.tar.gz

     Nagios-plugins-xxx.tar.gz

     Nrpe-xxx.tar.gz

(注:本文中,我的安装包都放在/usr目录下)

1.1.2.      用户和组的建立:

 建立 nagios 账号

 useradd  nagios

 passwd   nagios

创建一个用户组名为 nagcmd 用于从 Web 接口执行外部命令。将 nagios用户和 apache 用户都加到这个组中。

 groupadd   nagcmd

 usermod -G nagcmd nagios

 usermod -G nagcmd apache

安装软件:nagios-3.3.1.tar.gz

cd /usr

tar xzvf nagios-3.3.1.tar.gz

./configure --with-command-group=nagcmd --prefix=/usr/local/nagios

make all

make install

make install-init

make install-config

make install-commandmode bin

make install-webconf 

监控软件nagios-xxx配置web接口(介绍的是最简单的方法,不要改apache的配置文件)直接在nagios 的解压目录下执行一下, make install-webconf 主要作用:在/etc/httpd/conf.d目录下生成nagios.conf,这种配置方式是最简单,最方便的。

 Nagios执行程序的目录

bin

Nagios执行程序的目录

etc

Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件 3与2区别 对象配置文件都在etc/objects目录下

sbin

Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录

Share

Nagios网页文件所在的目录

Var

Nagios日志文件、spid 等文件所在的目录

var/archives

Empty directory for the archived logs

var/rw

Empty directory for the external command file

Nagios主配文件nagios.conf简介

 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //联系人/组配置文件

 cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //本机配置文件

 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //监视时段配置文件

 cfg_file=/usr/local/nagios/etc/objects/commands.cfg //监视脚本配置

 cfg_file=/usr/local/nagios/etc/objects/templates.cfg //监视服务,报警配置

 cfg_file=/usr/local/nagios/etc/objects/switch.cfg //监视路由

 cfg_file=/usr/local/nagios/etc/objects/windows.cfg //监视微软

1.1.3.      安装插件: nagios-plugins-1.4.15.tar.gz来扩展nagios的功能

cd /usr

tar zxvf nagios-plugins-1.4.15.tar.gz

cd nagios-plugins-1.4.15

 ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &&make && make install

chown nagios.nagios /usr/local/nagios

chown -R nagios.nagios /usr/local/nagios/libexec

验证插件是否安装成功:

 ls /usr/local/nagios/libexec

成功会显示安装的插件文件,即所有的插件都安装在 libexec 这个目录下

 创建一个 nagiosadmin 的用户用于 Nagios 的 WEB 接口登录。记下你所设置的登录口令。

useradd   nagiosadmin

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

重启apache让刚才生成的配置文件生效:

service httpd   restart

把 Nagios 加入到服务列表中以使之在系统启动时自动启动

chkconfig --add nagios

chkconfig nagios on

 检查Nagios 的配置文件是否有语法错误

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

 (这条命令会经常用到要牢记 )

如果没有报错,就可以启动 Nagios 服务

service nagios start

访问http://服务器ip/nagios 输入用户名和口令就可以访问了,访问的结果是里面并没有任何监控的主机。

1.2.  自定义监视内容和集成 Nagios 报告 Ganglia 指标

1.2.1.      自定义监视内容

注册以收到警告

所有配置完成后,注册以收到警告。我们开始时已经完成了该操作,但是如果希望更改或添加用户,则可以修改 /usr/local/nagios/etc/objects/contacts.cfg 文件。将联系人名称改为您的名字,将电子邮件改为您的电子邮件地址。大部分基本的 Linux 服务器应该已经设置好,可以处理邮件了。

在 grid/cloud/cluster 中配置其他节点,为了以示区别。创建一个目录放置所有关于ganglia-nagios的配置文件:

mkdir -p /usr/local/nagios/etc/dallas

我需要通知 Nagios 我的配置文件将放在哪里。为此我修改 nagios.cfg 文件,添加以下行:

vi /usr/local/nagios/etc/nagios.cfg

在相应位置添加一行:

cfg_dir=/usr/local/nagios/etc/dallas

我将在此创建一组文件(很容易让人糊涂)。下图 显示了这些条目以及它们所属的文件,并展示了对象之间的关系。

条目及文件图(/etc/local/nagios/etc/、/etc/local/nagios/etc/objects/)

根据该图继续进行其他设置和安装。

在 /usr/local/nagios/etc/dallas/nodes.cfg (和localhost.cfg文件内容、作用相似)文件中,定义所有节点和节点组。需要监视三种机器:

网络服务器(本例中是运行 Ganglia 的 Linux 服务器)

网络交换机(交换机包括高速交换机和 Gigabit Ethernet)

管理设备(比如刀片式管理模块、老 IBM RSA 卡、BMC、可能的智能 PDU 等等)。

创建三个相应的组,如下所示:

define hostgroup {

 hostgroup_name  dallas-cloud-servers

 alias  Dallas Cloud Servers

}

define hostgroup{

 hostgroup_name  dallas-cloud-network

 alias  Dallas Cloud Network Infrastructure

}

 

define hostgroup{

 hostgroup_name dallas-cloud-management

 alias Dallas Cloud Management Devides

}

接下来我创建三个模板文件,三个节点组的节点共享通用特征:

define host {

        name dallas-management

        use linux-server

        hostgroups dallas-cloud-management

        # TEMPLATE!

        register 0

}

define host {

        name dallas-server

        use linux-server

        hostgroups dallas-cloud-servers

        # TEMPLATE!

        register 0

}

 

define host {

        name dallas-network

        use generic-switch

        hostgroups dallas-cloud-network

        # TEMPLATE!

        register 0

}

现在每个节点定义为 添加要监控的服务器。各自的示例如下:

define host {

 use dallas-server

 host_name x336001

 address 172.10.11.1

}

define host {

 use dallas-network

 host_name smc001

 address 172.10.0.254

}

define host {

 use dallas-management

 host_name x346002-rsa

 address 172.10.11.12

}

(注:注意带颜色的部分)

验证是否配置成功,(这一步很重要)则运行:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

这将验证文件并帮助您发现错误。

现在创建另一文件对要监控的内容进行自定义:

vi /usr/local/nagios/etc/dallas/host-services.cfg

最简单的是将配置从希望监视的 localhost 中复制出来。并添加了一个依赖关系:

define service{

        use                            generic-service

        hostgroup_name             dallas-cloud-servers

        service_description             SSH

        check_command                   check_ssh

        }

 

define service{

        use                            generic-service

        hostgroup_name             dallas-cloud-servers

        service_description             PING

        check_command     check_ping!100.0,20%!500.0,60%

        }

 

define servicedependency{

        hostgroup_name                dallas-cloud-servers

        service_description             PING

        dependent_hostgroup_name        dallas-cloud-servers

        dependent_service_description   SSH

}

 

重启 Nagios 并测试菜单,以确保看到 ping 和 ssh 检查了节点:

service nagios reload

1.2.2.      集成 Ganglia。

Nagios Exchange 是另一个获取 Nagios 插件的好地方。假设您将源代码解压到 /usr 目录中,剩下的只需要复制 contrib 目录中的 check_ganglia.py 脚本即可:

cp /usr/ganglia-3.2.0/contrib/check_ganglia.py   /usr/local/nagios/libexec/

check_ganglia 是一个很棒的 Python 脚本,可以运行于 gmetad 运行的服务器上(在我的示例中是 Nagios和ganglia 在同一服务器)。

创建 /usr/local/nagios/etc/dallas/ganglia-services.cfg 文件并添加要监控的内容(也可以和上面所自定义的内容一起使用):

 

vi /usr/local/nagios/etc/dallas/ganglia-services.cfg

 

define servicegroup {

  servicegroup_name    ganglia-metrics

  alias Ganglia Metrics

}

define command {

  command_name check_ganglia

  command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$

}

define service {

  use          generic-service

  name       ganglia-service

  hostgroup_name        dallas-cloud-servers

  service_groups        ganglia-metrics

  notifications_enabled     0

}

define service {

  use         ganglia-service

  service_description      load_one

  check_command       check_ganglia!load_one!4!5

}

define service {

  use         ganglia-service

  service_description         disk_free

  check_command           check_ganglia!disk_free!10!5

}

 

重启 Nagios 时,现在可以根据 Ganglia 指标发出警告!

1.3.  监控软件nagios-扩展

1.3.1.      NRPE功能和意义

基本的Nagios 监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE这个核心扩展插件程序,NRPE作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。

1.3.2.      NRPE工作方式

如以上提到的实现Nagios对远程系统的监测,那么首先必须要在被监测的远程主机上除了安装Nagios-plugins插件程序之外还必须安装NRPE 核心扩展插件程序,并将NRPE在被监测的远程主机系统上以守护进程的方式运行起来,开放指定的NRPE监听端口监听着Nagios监测服务器发送过来的所有监测请求。另外,在Nagios监测服务器上,在必须要安装Nagios-plugins插件程序和NRPE核心扩展插件程序。唯一不同的是, Nagios监测服务器不需要将NRPE作为守护进程运行着,因为它本身一般不需要被别人监测着而是去监测别人,对Nagios监测服务器而言,它只需要使用到Nagio-plugins插件程序和NRPE扩展插件程序就足够了

1.3.3.      被监控端的安装配置

首先为被监控端准备nagios-plugins和nrpe的安装包。

添加用户nagios:

usradd    nagios

passwd   nagios

我的安装包放在/usr目录下面;

cd   /usr

tar xzvf nagios-plugins-XXX.tar.gz

cd nagios-plugins-XXX

./configure --prefix=/usr/local/nagios

make

make install

./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios &&make && make install

 chown nagios.nagios /usr/local/nagios

 chown -R nagios.nagios /usr/local/nagios/libexec

再在被监控主机上安装NRPE扩展插件程序:

tar -zxvf nrpe-xxx.tar.gz

cd nrpe-xxx

./configure

预配置完毕后会反馈提示信息以及建立Makefile

-------------------------------------------------------

configure: creating ./config.status

config.status: creating Makefile

config.status: creating src/Makefile

config.status: creating subst

config.status: creating include/config.h

*** Configuration summary for nrpe 2.9 08-13-2007 ***:

 General Options:

 -------------------------

 NRPE port:    5666

 NRPE user:    nagios

 NRPE group:   nagios

 Nagios user:  nagios

 Nagios group: nagios

 

Review the options above for accuracy.  If they look okay,

type 'make all' to compile the NRPE daemon and client.

最后提示继续使用“make all”命令来对NRPE守护程序以及客户端程序进行编译。

-------------------------------------------------------

 

make all

make install-plugin

make install-daemon

make install-daemon-config

make install-xinetd

 相关文件的修改

vi   /etc/xinetd.d/nrpe

only_from       = 127.0.0.1 192.168.0.224

(注意,192.168.0.224监控服务器的IP,也就是所允许192.168.0.224来监控本机的服务)

配置nrpe的主配置文件
cd /usr/local/nagios/etc
vim nrpe.cfg

allow_hosts=127.0.0.1,192.168.0.224

#注: 修改为nagios的服务器地址,如果是多个IP 中间用“,” 隔开

vi    /etc/services

nrpe          5666/tcp             # NRPE(添加一行)

service xinetd restart

 

如果配置没有问题的话,输入如下命令。查看配置是否配好

netstat -at | grep nrpe

tcp 0      0 *:nrpe *:*                         LISTEN

找到NRPE运行的执行程序

ll /usr/local/nagios/bin/nrpe

-rwxrwxr-x 1 nagios nagios 93420 Oct  7 01:16 /usr/local/nagios/bin/nrpe

 

了解NRPE的执行程序的使用方式

/usr/local/nagios/bin/nrpe -h

-------------------------------------------------------

Usage: nrpe [-n] -c <config_file> <mode>

运行方法:nrpe -c NRPE配置文件路径 运行模式

Options:

可用选项

   -n          = Do not use SSL

   不使用SSL方式,一般都使用SSL。

 <config_file> = Name of config file to use

   指定NRPE配置文件路径,这个NRPE主配置文件就是nrpe.cfg。

 <mode>        = One of the following two operating modes:

   指定NRPE的运行方式,一共有2种可用的NRPE运行方式:

   -i          =    Run as a service under inetd or xinetd

   以超级守护进程inetd或xinetd方式运行NRPE,要通过这种方式运行的话还要安装和配置xinetd,一般不用。

   -d          =    Run as a standalone daemon

   以独立守护进程方式运行NRPE,一般常用这种运行方式。

-------------------------------------------------------

 

测试NEPE本地是否正常启动

 /usr/local/nagios/libexec/check_nrpe –H  localhost

如果正确的话,回返回NRPE的版本号

将NRPE运行添加加入系统启动脚本中

echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local

到此,被监控主机要做的工作已经完成了。

1.3.4.      服务器端的配置:

1. 安装软件nrpe-2.12.tar.gz(有些版本装不上,这个版本可以)

服务器和被监控主机通过nrpe通信

cd /usr

tar xzvf nrpe-2.12.tar.gz

cd nrpe-2.12

./configure &&make all &&make install-plugin &&make install-daemon &&make install-daemon-config 

在command.cfg命令定义文件中添加NRPE命令。

vi /usr/local/nagios/etc/commands.cfg

添加NRPE功能命令。

define command(

  command_name  check_nrpe

  command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

  }

这里要说明几点:

(1)        这里定义的命令名就叫作check_nrpe。

(2)        $USER1$/check_nrpe会通过引用resource.cfg获得/usr/local/nagios/libexec/check_nrpe这个绝对路径。

(3)        -H $HOSTADDRESS$ 用来获得指定被监测主机的IP地址,$HOSTADDRESS$变量会通过定义主机名查找到host段中的IP地址。

(4)        -c $ARG1$ 用来指定被监测主机上NRPE守护进程运行着的NRPE命令名。

 

在Nagios监控服务器上然后按照NRPE命令定义来添加NRPE远程监控服务:

vi usr/local/nagios/etc/object/localhost.cfg

在localhost.cfg 添加 define host define service

define host{

use linux-server

host_name remotehost

alias Remote Host

address 192.168.0.221 #远程Linux服务器的地址

contact_groups admins

}

实现监控192.168.0.221服务器硬盘使用情况

define service{

use   genericPservice

host_name    remotehost

service_description    SwapRUsage

check_command    check_nrpe!check_swap

}

通过这样的方法可以在localhost文件里添加更多的服务

检查是否可以监控客户端:

/usr/local/nagios/libexec/check_nrpe -H 192.168.0.221(此IP为被监控端地址)

返回版本号则是正确的,如果有错可以通过如下命令检查:

/usr/local/nagios/bin/nagios –v /usr/local/ngaios/etc/nagios.cfg 

重启 Nagios Service 使配置生效

service nagios reload

注意:监控主机和被监控主机如果启动Iptables防火墙的话,测试的时候可以停止iptables服务 Service iptables stop  正真的使用中,需要开启Iptables,同时配置防火墙是Iptables 的5666端口开放。

防火墙配置方法:

/sbin/iptables -A FORWARD -i eth0 -p tcp --dport 5666 -j ACCEPT 

第二章、          注意事项

l  必须通过yum源安装php

l  必须为网络配置网关

Nagios定义的监控状态

nagios定义了4中监控状态,代表不同的严重级别,除了OK代表正常不用关心外,其余3种都要引起重视.如下表

状态

代码

颜色

正常

OK

绿色,

警告

WARNING

黄色,

严重

CRITICAL

红色,

未知错误

UNKOWN

深黄色

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值