Nagios系列文章:

Nagios监控平台之二:nrpe监控远程Linux主机

监控监控linux本地主机时,我们可以直接更改配置文件进行监控,如果需要监控的主机与nagios不在同一机器上,即监控远程linux主机时,我们需要借助NRPE插件实现。

nrpe工作原理图:

远程主机的操作

安装支持:

# yum -y install openssl openssl-devel

下载Nagios Plugins和NRPE

#cd /tmp

#wget http://iweb.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz

#wget http://iweb.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz

创建nagios帐号

# useradd nagios

# passwd nagios

安装nagios-plugin

# cd /tmp

# tar xvfz nagios-plugins-1.4.16.tar.gz

# cd nagios-plugins-1.4.16

# export LDFLAGS=-ldl

# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround

# make

# make install

#chown nagios.nagios /usr/local/nagios

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

安装NRPE

# cd /tmp

# tar xvfz nrpe-2.13.tar.gz

# cd nrpe-2.13

# ./configure

# make all

# make install-plugin

# make install-daemon

# make install-daemon-config

# yum install xinetd

# make install-xinetd

配置NRPE以守护进程运行

1、更改/etc/xinetd.d/nrpe文件,设置允许nagios服务器连接,如nagios服务器的ip为192.168.1.2:

only_from       = 127.0.0.1 192.168.1.2

2、在/etc/services结尾增加:

nrpe 5666/tcp # NRPE

3、启动xinetd

# service xinetd restart

4、验证nrpe是否监听

# netstat -at | grep nrpe

5、测试nrpe是否正常运行

# /usr/local/nagios/libexec/check_nrpe -H localhost

NRPE v2.13

6、更改 /usr/local/nagios/etc/nrpe.cfg

nrpe.cfg文件里包含需要监控远程主机的命令,如下面是我的配置:

#用户登录数

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

#CPU负载

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

#磁盘空间

command[check_disk]=/usr/local/nagios/libexec/check_disk -w  20 -c 10 -p /dev/sda

#僵尸进程数

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

#进程总数

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

#物理内存

command[check_mem]=/usr/local/nagios/libexec/check_mem -H $HOSTADDRESS$

#脚本内容见下文

物理内存检查脚本/usr/local/nagios/libexec/check_mem:

#!/bin/bash

# check memory script

# Total memory

# by Barlow

# 2014-06-13

help() {

echo "Usage: `basename $0` -w -c "

echo "-w is WARNING % of used mem;-c is CRITICAL % of used mem!"

exit 3

}

TOTAL=`free -m | head -2 |tail -1 |gawk '{print $2}'`

# check memory

FREE=`free -m | head -3 |tail -1 |gawk '{print $4}'`

USED=`free -m | head -3 |tail -1 |gawk '{print $3}'`

# to calculate free percent

# use the expression free * 100 / total

FREETMP=`expr $FREE \* 100`

USEDTMP=`expr $USED \* 100`

FREE_PERCENT=`expr $FREETMP / $TOTAL`

USED_PERCENT=`expr $USEDTMP / $TOTAL`

if [ $# -le 3 ];then

help

elif ! [ $1 == "-w" ]&>/dev/null;then

help

elif ! [ $3 == "-c" ]&>/dev/null;then

help

fi

WARNIFNUM() {

if ! [ "$WARN" == "$OPTARG" ];then

help

fi

}

CRITIFNUM() {

if ! [ "$CRIT" == "$OPTARG" ];then

help

fi

}

while getopts "w:c:h" OPT; do

case $OPT in

"w")

WARNTMP=$OPTARG

WARN=$(echo $WARNTMP |bc 2>/dev/null)

if ! [ "$WARN" == "$WARNTMP" ];then

help

fi

;;

"c")

CRITTMP=$OPTARG

CRIT=$(echo $CRITTMP |bc 2>/dev/null)

if ! [ "$CRIT" == "$CRITTMP" ];then

help

fi

;;

"h")

help;;

esac

done

CRIT_LEVEL=`expr $TOTAL \* $CRIT \/ 100`

WARN_LEVEL=`expr $TOTAL \* $WARN \/ 100`

if [ $USED_PERCENT -gt $CRIT ];then

echo "CRITICAL! Used Memory $USED MB ($USED_PERCENT%,Total=$TOTAL MB) | 'USED MEM'=${USED}MB;$WARN_LEVEL;$CRIT_LEVEL;0;$TOTAL"

exit 2

fi

if [ $USED_PERCENT -gt $WARN ];then

echo "WARNING! Used Memory $USED MB ($USED_PERCENT%,Total=$TOTAL MB) | 'USED MEM'=${USED}MB;$WARN_LEVEL;$CRIT_LEVEL;0;$TOTAL"

exit 1

else

echo "OK! Used Memory $USED MB ($USED_PERCENT%,Total=$TOTAL MB) | 'USED MEM'=${USED}MB;$WARN_LEVEL;$CRIT_LEVEL;0;$TOTAL"

exit 0

fi

nagios服务器的操作

下载安装NRPE

# cd /tmp

# wget http://iweb.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.13/nrpe-2.13.tar.gz

# tar xvfz nrpe-2.13.tar.gz

# cd nrpe-2.13

# ./configure

# make all

# make install-plugin

测试是否正常:

# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.3

NRPE v2.13

为监控远程主机定义host和service

1、定义check_nrpe命令

在文件/usr/local/nagios/etc/objects/commands.cfg后面增加:

# 'check_nrpe' command definition

define command{

command_name check_nrpe

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

}

2、创建/usr/local/nagios/etc/objects/host.cfg    (需提前在nagios.cfg中定义)

host定义示例:

define host{

use linux-server

host_name remotehost

address 192.168.1.3

}

3、创建服务:vi /usr/local/nagios/etc/objects/services.cfg  (需提前在nagios.cfg中定义)

如定义监控远程主机磁盘空间示例(其他服务语法相同):

define service{

use generic-service

host_name  remotehost

service_description sda磁盘空间

check_command check_nrpe!check_disk

}

之后重载nagios配置文件使其生效

# service nagios reload

nagios监控linux主机,Nagios监控平台之二:nrpe监控远程Linux主机 | 旺旺知识库相关推荐

  1. 采用Opserver来监控你的ASP.NET项目系列(二、监控SQL Server与Asp.Net项目)

    前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. ASP.NET Core之跨平台的实时性能监控 ASP.NET Core之跨平台的实时性能监控(2.健康检查) ...

  2. python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)

    paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...

  3. Linux服务器运维管理 项目二 管理与维护Linux系统

    任务一 安装与维护Linux系统 系统已安装,略.                任务二 认识Linux的文件系统 子任务一 熟悉Linux系统的目录结构 第一步:理解Linux系统目录的结构树 第二 ...

  4. 怎么复制window上的内容到linux,怎样将文件从window系统复制到远程linux系统上

    怎样将文件从window系统复制到远程linux系统上 怎样将文件从window系统复制到linux系统上,其实有几种方法,好比,将windows上的文件共享出来,经过cifs协议mount到linu ...

  5. cmd下载远程linux的文件,Java利用ssh协议实现从远程Linux服务器下载文件和文件夹...

    近来应需求需要,做了服务器之间的文件传输,利用的ssh协议.查阅各种资料博客,基本都是下载文件的方法,找不到下载文件夹得方法.思索多日写了一个下载文件夹的简单方法,可能步骤繁琐,优化不大好.由于jsc ...

  6. 电商平台商品上新监控

    对于实物商品,现在的商家都学会了饥饿营销,新品上架往往非常抢手,如果你需要关注某个电商平台最新的上架商品,就用网站资讯监控工具. 对于虚拟商品,存在大量的中间商,低买高卖就可以赚取差价,需要实时关注新 ...

  7. 采用Opserver来监控你的ASP.NET项目系列(三、监控你的服务器状态)

    前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. ASP.NET Core之跨平台的实时性能监控 ASP.NET Core之跨平台的实时性能监控(2.健康检查) ...

  8. 然后上传到linux主机上,Xshell实现Windows上传文件到Linux主机

    我是怎么操作的: 1.打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面:(经常第一步都不顺利,无法挂载Windows的文件 ...

  9. 平板连接远程linux系统,使用Termius从iPad连接到Linux服务器

    借助Termius,iPad用户可以连接到Linux服务器并获得良好的远程体验,包括终端访问.文件访问支持等.本文的内容包括设置SSH服务器.安装Termius.注册Termius帐户.在Termiu ...

  10. CDH报错: 主机的 NTP 服务未同步至任何远程服务器

    CDH报错: 主机的 NTP 服务未同步至任何远程服务器 主机的 NTP 服务未同步至任何远程服务器. 可以采取以下方式解决 选择ntp时间服务器 : 10.0.61.4 Step1 : 进入linu ...

最新文章

  1. Machine Learning week 5 quiz: Neural Networks: Learning
  2. Hyperledger Fabric 三种node节点 (1) 基本概念
  3. Android 五大存储方式具体解释
  4. WinSock2编程之打造完整的SOCKET池
  5. spring 请求转码_Spring请求级备忘录
  6. 略读《大教堂与市集》
  7. 两款404页面自动跳转源码html
  8. linux 文件管理器_8个Linux文件管理器尝试
  9. [Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated.
  10. 解决spring的xml文件打开没有namespace等操作选项的问题
  11. The Bayes Risk选择的问题
  12. html是用来表示网上信息的符号标记语言,html标记的一般格式
  13. 微机原理与接口技术实验:完整的汇编语言程序设计实验
  14. 【python】websockets
  15. dB、dBFS、dBV、dBu...都是啥啊..
  16. html怎样制作背题模式和答题模式,科目一背题模式还是答题模式,技巧口诀答题...
  17. c++语言读取excel文件,C++读取Excel文档(CSV) | C/C++程序员之家
  18. 初学者如何从零学习人工智能?看完你就懂了
  19. 数据合集、并集和差集的产生(seq、cat、sort和uniq的综合使用)
  20. 【好奇心驱动力】e-paper电子价签从零开始折腾记录

热门文章

  1. 10个性鼠标指针主题包_游戏鼠标推荐
  2. 微信公众号开发C#系列-5、用户和用户组管理-支持同步
  3. 究竟 javascript 错误处理有哪些类型?
  4. 企业IT架构转型之道 读书笔记-1.阿里巴巴集团中台战略引发的思考
  5. 当对象转换成JSON的时候处理时间格式
  6. 理解T-SQL: 触发器
  7. Python 3.10新增软关键字实现真正意义上的多分支选择结构
  8. Linux 常用的IO接口
  9. java接口自动化+博客园_java+接口自动化+eclipse之-----环境搭建
  10. elasticsearch版本_折腾下Windows下的Elasticsearch安装与使用