设为首页 收藏本站
查看: 1020|回复: 0

安装Nagios来监控远程Windows主机和Linux主机

[复制链接]

尚未签到

发表于 2019-1-15 13:54:18 | 显示全部楼层 |阅读模式
安装Nagios来监控远程Windows主机和Linux主机
Nagios程序简介

Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、NSClient++和NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务器端工作所必须的组件。而四个ADDON中,NRPE用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控;NSCA用来让被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特别要用到);NSClient++是用来监控Windows主机时安装在Windows主机上的组件;而NDOUtils则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现这些数据的快速检索和处理。这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安装在服务器端和客户端。

目前,Nagios只能安装在Linux系统主机上,其编译需要用到gcc。同时,如果打算使用web界面的管理工具的话,还需要有apache服务器和GD图形库的支持。




安装配置Nagios



安装前的准备工作

(1)解决安装Nagios的依赖关系:

Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经完全安装:
# yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server

说明:以上软件包您也可以通过编译源代码的方式安装,只是后面许多要用到的相关文件的路径等需要按照您的源代码安装时的配置逐一修改。此外,您还得按需启动必要
的服务,如httpd等。

(2)添加nagios运行所需要的用户和组:
# groupadd  nagcmd
# useradd -G nagcmd nagios
# passwd nagios


把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:
# usermod -a -G nagcmd apache
如果源码编译安装的Apache配置文件中的用户可能不是apache,只把相应的用户加入nagcmd即可。


(3)如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您的系统是否开启了selinux:
#getenforce

如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:
#setenforce 0

如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的值“force”修改为“disable”即可。

当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:
# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin
# chcon -R -t httpd_sys_content_t /usr/local/nagios/share



下面就可以安装nagios软件了。所需要的软件有:
nagios-3.3.1.tar.gz
nagios-plugins-1.4.15.tar.gz
这里用的都是nagios的最新版本。



安装nagios:
# tar zxf nagios-3.3.1.tar.gz
# cd nagios-3.3.1
# ./configure --with-command-group=nagcmd --enable-event-broker
# make all
# make install
# make install-init
# make install-commandmode
# make install-config

为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:
# vi /usr/local/nagios/etc/objects/contacts.cfg
email        nagios@localhost       #这个是默认设置

在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:
# make install-webconf

创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

以上过程配置结束以后需要重新启动httpd:
# service httpd restart

编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。

# tar zxf 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

配置并启动Nagios

(1)把nagios添加为系统服务并将之加入到自动启动服务队列:
# chkconfig --add nagios
# chkconfig nagios on


(2)检查其主配置文件的语法是否正确:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

(3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:
# service nagios start



通过web界面查看nagios:
http://your_nagios_IP/nagios 登录时需要指定前面设定的web认证帐号和密码。如图所示是监控成功所显示的结果:




从图上可以看出所有的服务都是正常。
下面来用这个Nagios来监控远程主机。先来用此软件来监控|Windows主机



基于NSClinet++监控Windows主机



要想监控Windows服务器要先在Windows主机上安装上NSClinet++这个软件,在安装可以定义好让这个Nagios服务器来监控Windows主机。安装好完成后在Windows主机可查看12489端口,如果启动说明安装成功。

下面在配置Nagios来监控Windows主机。

在配置之前可以在命令行中来测试一下是否能监控Windows主机。方法是:

在nagios端使用如下命令测试:
check_nt -H  -p  -v  ...
# check_nt -H 192.168.35.20 -p 12489 -v CPULOAD -w 80 -c 90 -l 5,80,90

如果能够测试成功,下面就可以配置了。如果不能成功,在Windows上安装的软件没有安装好。



下面来配置Nagios的文件来监控Windows主机。



1、定义命令:
# vim /etc/nagios/object/command.cfg
在这个配置文件中定义一个主机,对于Windows主机已经在配置文件中有一个定义了。可以直接运用
2、定义远程主机的服务
# vim /etc/nagios/object/name.cfg

在这里是使用的winhost.cfg
在这个配置文件中要定义的内容如下:
定义主机和服务:
define host{
        use             windows-server  
        host_name       winhost
        alias           My Windows Host
        address         192.168.35.20   
        }
define service{
        use                     generic-service
        host_name               winhost
        service_description     NSClient++ Version
        check_command           check_nt!CLIENTVERSION
        }
define service{
        use                     generic-service
        host_name               winhost
        service_description     Uptime
        check_command           check_nt!UPTIME
        }
define service{
        use                     generic-service
        host_name               winhost
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90
        }
define service{
        use                     generic-service
        host_name               winhost
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90
        }
define service{
        use                     generic-service
        host_name               winhost
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90
        }

define service{
        use                     generic-service
        host_name               winhost
        service_description     W3SVC
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
        }

define service{
        use                     generic-service
        host_name               winhost
        service_description     Explorer
        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
        }



这样一个主机和服务就定义完成了。
下面要在nagios.cfg中去加入这个远程主机。
# vim /etc/nagios/nagios.cfg
在相应的位置加入:
像如下的行:
cfg_file=/etc/nagios/objects/windows.cfg



做完相应的配置后就可以检测一下所做的是否有错误:
# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg
如果没有什么错误 就可以在服务端对这个远程主机进行监控了。在浏览器打开网页就看到如图所示:





到此就把一个远程的Windows服务器监控起来了。也可以定义不同的服务。


下面来定义如何来监控远程的Linux主机。



基于NRPE监控远程Linux主机



NRPE简介

Nagios监控远程主机的方法有多种,其方式包括SNMP、NRPE、SSH和NCSA等。这里介绍其通过NRPE监控远程Linux主机的方式。

NRPE(Nagios Remote Plugin Executor)是用于在远端服务器上运行检测命令的守护进程,它用于让Nagios监控端基于安装的方式触发远端主机上的检测命令,并将检测结果输出至监控端。而其执行的开销远低于基于SSH的检测方式,而且检测过程并不需要远程主机上的系统帐号等信息,其安全性也高于SSH的检测方式。

安装配置被监控端

1)先添加nagios用户
# useradd -s /sbin/nologin nagios

2)NRPE依赖于nagios-plugins,因此,需要先安装之

# tar zxf nagios-plugins-1.4.15.tar.gz
# cd nagios-plugins-1.4.15
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
# make all
# make instal

3)安装NRPE

# tar -zxvf nrpe-2.12.tar.gz
# cd nrpe-2.12.tar.gz
# ./configure --with-nrpe-user=nagios \
     --with-nrpe-group=nagios \
     --with-nagios-user=nagios \
     --with-nagios-group=nagios \
     --enable-command-args \
     --enable-ssl
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config

4)配置NRPE

# vim /usr/local/nagios/etc/nrpe.conf

log_facility=daemon
pid_file=/var/run/nrpe.pid
server_address=172.16.100.11
server_port=5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts=192.168.35.11
command_timeout=60
connection_timeout=300
debug=0

上述配置指令可以做到见名知义,因此,配置过程中根据实际需要进行修改即可。其中,需要特定说明的是allowed_hosts指令用于定义本机所允许的监控端的IP地址。

5)启动NRPE

# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

为了便于NRPE服务的启动,可以将如下内容定义为/etc/init.d/nrped脚本:

#!/bin/bash
# chkconfig: 2345 88 12
# description: NRPE DAEMON

NRPE=/usr/local/nagios/bin/nrpe
NRPECONF=/usr/local/nagios/etc/nrpe.cfg

case "$1" in
start)
echo -n "Starting NRPE daemon..."
$NRPE -c $NRPECONF -d
echo " done."
;;
stop)
echo -n "Stopping NRPE daemon..."
pkill -u nagios nrpe
echo " done."
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 start|stop|restart"
;;
esac
exit 0



在监控端上的配置:

1)安装NRPE

# tar -zxvf nrpe-2.12.tar.gz
# cd nrpe-2.12.tar.gz
# ./configure --with-nrpe-user=nagios \
     --with-nrpe-group=nagios \
     --with-nagios-user=nagios \
     --with-nagios-group=nagios \
     --enable-command-args \
     --enable-ssl
# make all
# make install-plugin

2)定义如何监控远程主机及服务:



如果希望上面的command定义更具有通用性,那么上面的定义也可以修改为如下:
# vim /etc/nagios/objects/commands.cfg


定义监控远程Linux主机的命令:
define command
{
command_name check_nrpe
command_line $USER1$/check_nrpe –H "$HOSTADDRESS$" -c $ARG1$
}

定义远程Linux主机的swap资源:
define service
{
use generic-service
host_name linuxserver1,linuxserver2
hostgroup_name linux-servers
service_description SWAP
check_command check_nrpe!check_swap
normal_check_interval 30
}



# vim /etc/nagios/objects/linhost.cfg

添加如下内容:

define host{
        use             linux-server    ; Inherit default values from a template
        host_name       linhost
        alias           My Linux Host   ; A longer name associated with the host
        address         192.168.35.12   ; IP address of the host
        }


define service{
        use                     generic-service
        host_name               linhost
        service_description     CHECK USERS
        check_command           check_nrpe!check_users
        }


define service{
        use                     generic-service
        host_name               linhost
        service_description     Load
        check_command           check_nrpe!check_load
        }

define service{
        use                     generic-service
        host_name               linhost
        service_description     SDA1
        check_command           check_nrpe!check_sda1
        }

define service{
        use                     generic-service
        host_name               linhost
        service_description     Zombie
        check_command           check_nrpe!check_zombie_procs
        }
define service{
        use                     generic-service
        host_name               linhost
        service_description     Total procs
        check_command           check_nrpe!check_total_procs
        }



这样一个Linux主机就定义完成了。下面要把这个Linux加入到nagios.cfg中。

# vim /etc/nagios/nagios.cfg

在相应的位置上添加如下行即可

cfg_file=/etc/nagios/objects/linhost.cfg



做完之后重新启动nagios服务就可以监控一个远程的Linux主机了。

在浏览器中如下图所示:




这个主机刚刚接入,等待几分钟后就可心查看各服务的情况了。


好了,Nagiosr的监控就先写到这里了,在下一篇中要用到联系人了。所要用到的是飞信机器人这个工具。想想这个飞信机器人还是蛮好玩的。









运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-663655-1-1.html 上篇帖子: Nagios部署文档 下篇帖子: Nagios监控和飞信机器人结合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表