一、

i.被监控机上监控内存使用情况,在被监控机上操作
cd /usr/local/nagios/libexec
vi check_mem.sh

#!/bin/bashif [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; thenmemTotal_b=`free -b |grep Mem |awk '{print $2}'`memFree_b=`free -b |grep Mem |awk '{print $4}'`memBuffer_b=`free -b |grep Mem |awk '{print $6}'`memCache_b=`free -b |grep Mem |awk '{print $7}'`memTotal_m=`free -m |grep Mem |awk '{print $2}'`memFree_m=`free -m |grep Mem |awk '{print $4}'`memBuffer_m=`free -m |grep Mem |awk '{print $6}'`memCache_m=`free -m |grep Mem |awk '{print $7}'`memUsed_b=$(($memTotal_b-$memFree_b-$memBuffer_b-$memCache_b))memUsed_m=$(($memTotal_m-$memFree_m-$memBuffer_m-$memCache_m))memUsedPrc=$((($memUsed_b*100)/$memTotal_b))if [ "$memUsedPrc" -ge "$4" ]; thenecho "Memory: CRITICAL Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_b;;;; USED=$memUsed_b;;;; CACHE=$memCache_b;;;; BUFFER=$memBuffer_b;;;;"$(exit 2)elif [ "$memUsedPrc" -ge "$2" ]; thenecho "Memory: WARNING Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_b;;;; USED=$memUsed_b;;;; CACHE=$memCache_b;;;; BUFFER=$memBuffer_b;;;;"$(exit 1)elseecho "Memory: OK Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used|TOTAL=$memTotal_b;;;; USED=$memUsed_b;;;; CACHE=$memCache_b;;;; BUFFER=$memBuffer_b;;;;"$(exit 0)fielseecho "check_mem v1.1"echo ""echo "Usage:"echo "check_mem.sh -w <warnlevel> -c <critlevel>"echo ""echo "warnlevel and critlevel is percentage value without %"echo ""echo "Copyright (C) 2012 Lukasz Gogolin (lukasz.gogolin@gmail.com)"exit
fi

ii.chmod +x check_mem.sh
测试check_mem脚本是否能正常使用
./check_mem.sh -w 80 -c 90

iii.修改nrpe.cfg
vi /usr/local/nagios/etc/nrpe.cfg
增加一行:command[check_mem]=/usr/lib64/nagios/plugins/check_mem.sh -w 80 -c 90

iiii.重启电脑

iv.执行命令启动nrpe:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

二、在监控机上添加commands.cfg配置
vi /etc/nagios/objects/commands.cfg

define command{command_name        check_memcommand_line        $USER1$/check_mem.sh -w $ARG1$ -c $ARG2$}

在被监控机配置文件里面添加vi /usr/local/nagios/etc/objects/linux37.cfg

define service{use                     generic-servicehost_name               Nagios_Centos_Client1service_description     Memery Monitoringcheck_command           check_nrpe!check_mem}
重启nagios即可systemctl restart nagios

三、检查CPU,步骤同上,

把check_cpu.sh 文件放在libexec目录下。

#!/bin/sh
# Filename: check_cpu.shprocinfo=`which procinfo 2>/dev/null`
sar=`which sar 2>/dev/null`
function help {echo -e "\n\tThis plugin shows the % of used CPU, using either procinfo or sar (whichever is available)\n\n\t$0:\n\t\t-c <integer>\tIf the % of used CPU is above <integer>, returns CRITICAL state\n\t\t-w <integer>\tIf the % of used CPU is below CRITICAL and above <integer>, returns WARNING state\n"exit -1
}
# Getting parameters:
while getopts "w:c:h" OPT; docase $OPT in"w") warning=$OPTARG;;"c") critical=$OPTARG;;"h") help;;esac
done
# Checking parameters:
( [ "$warning" == "" ] || [ "$critical" == "" ] ) && echo "ERROR: You must specify warning and critical levels" && help
[[ "$warning" -ge  "$critical" ]] && echo "ERROR: critical level must be highter than warning level" && help
# Assuring that the needed tools exist:
( ( [ -f $procinfo ] && command="procinfo") ||  [ -f $sar ] ) || \( echo "ERROR: You must have either procinfo or sar installer in order to run this plugin" && exit -1 )
# Doing the actual check:idle=`top -b -n 1 | grep Cpu |awk '{print $5}' |cut -f 1 -d "%"`
used=10
# Comparing the result and setting the correct level:
if [[ $used -ge $critical ]]; thenmsg="CRITICAL"status=2
else if [[ $used -ge $warning ]]; thenmsg="WARNING"status=1elsemsg="OK"status=0fi
fi
# Printing the results:
echo "$msg - CPU used=$used% idle=$idle% | 'CPU Usage'=$used%;$warning;$critical;"
# Bye!
exit $status

四、Nagios服务端check_nt 检查命令介绍,windows系统的

# 检查本次系统启动总时间
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v UPTIME

# 检查内存占用情况
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v MEMUSE -w 80 -c 90

# 检查客户端版本信息
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v CLIENTVERSION

# 检查5分钟内CPU占用情况
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v CPULOAD -w 80 -c 90 -l 5,80,90

# 检查磁盘C占用情况
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v USEDDISKSPACE -d SHOWALL -l C

# 检查服务状态
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v SERVICESTATE -l Spooler -d SHOWALL

# 检查进程状态
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v PROCSTATE -l spark.exe -d SHOWALL

# 查看所有进程列表
check_nt -H 192.168.1.121 -p 12489 -s 12345 -v INSTANCES -l process

五、一个完整的windows配置文件

[root@nagios objects]# cd winserver
[root@nagios winserver]# vi winhost_172.cfg
#定义监控主机,设置主机名(不可重复)、别名、IP地址。
define host{use             windows-serverhost_name       winhost_172alias           ywzhou_pcaddress         10.188.1.172}
#定义主机组,在winserver文件下只需要一个文件定义了主机组,其他文件就不要再定义了。
define hostgroup{hostgroup_name  windows-serversalias           Windows Servers}
#第一部分:定义基于check_nt命令的监控服务。
#一个配置文件中的service_description不能重复
#监控NSClient++客户端软件版本
define service{use                     generic-servicehost_name               winhost_172service_description     NSClient++ Versioncheck_command           check_nt!CLIENTVERSION}
#监控在线时长
define service{use                     generic-servicehost_name               winhost_172service_description     Uptimecheck_command           check_nt!UPTIME}
#监控CPU负载,超过80%报警,超过90%严重
define service{use                     generic-servicehost_name               winhost_172service_description     CPU Loadcheck_command           check_nt!CPULOAD!-l 5,80,90}
#监控内存使用情况,超过80%报警,超过90%严重
define service{use                     generic-servicehost_name               winhost_172service_description     Memory Usagecheck_command           check_nt!MEMUSE!-w 80 -c 90}
#监控C盘使用情况,可以复制该组服务来监控其他磁盘
define service{use                     generic-servicehost_name               winhost_172service_description     C:\ Drive Spacecheck_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90}
#监控系统服务状态(是否启动),默认的W3SVC是IIS的服务,可以复制该组服务来监控其他系统服务
#可以在任务管理器中的服务项查看哪些服务器比较重要就监控起来,比如IIS、SQLServer等。
define service{use                     generic-servicehost_name               winhost_172service_description     W3SVCcheck_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC}
#监控程序状态(是否运行),默认的Explorer.exe是桌面进程的程序,可以复制该组服务来监控其他系统服务
#可以在任务管理器中的进程项查看哪些服务器比较重要就监控起来。
define service{use                     generic-servicehost_name               winhost_172service_description     Explorercheck_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe}#第二部分:定义基于check plugins的监控服务。
#安装NSCP时启用了Enable common check plugins功能
#check plugins是位于/usr/local/nagios/libexec下的Nagios自带的监控插件
#监控ftp服务
define service{use                     generic-servicehost_name               winhost_172service_description     FTPcheck_command           check_ftp}
#监控http服务
define service{use                     generic-servicehost_name               winhost_172service_description     HTTPcheck_command           check_http}
#监控ssh服务
define service{use                     generic-servicehost_name               winhost_172service_description     SSHcheck_command           check_ssh}
#监控dhcp服务
define service{use                     generic-servicehost_name               winhost_172service_description     DHCPcheck_command           check_dhcp}
#监控pop3服务
define service{use                     generic-servicehost_name               winhost_172service_description     POPcheck_command           check_pop}
#监控imap服务
define service{use                     generic-servicehost_name               winhost_172service_description     IMAPcheck_command           check_imap}
#监控smtp服务
define service{use                     generic-servicehost_name               winhost_172service_description     SMTPcheck_command           check_smtp}
#监控tcp端口,常用于监控多个网站使用不同端口时,监控端口状态
define service{use                     generic-servicehost_name               winhost_172service_description     TCPcheck_command           check_tcp!80}

nagios 监控内存和CPU,磁盘等使用情况相关推荐

  1. zabbix自动发现与监控内存和CPU使用率最高的进程

    监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用za ...

  2. linux服务器显卡的占用量,命令查看Linux服务器内存、CPU、显卡使用情况

    查看内存使用情况 使用命令:free -m 大致结果类似下图: 参数解释: Mem行(单位均为M): * total:内存总数 * used:已使用内存数 * free:空闲内存数 * shared: ...

  3. win10 计算机磁盘加内存,win10 cpu 磁盘 100% 运行及内存使用量变大 优化汇总

    如同历代Windows一样,通过在线方式升级Windows 10之后会在C盘留下旧版本的备份文件,这些"垃圾"会占用大量的硬盘空间,令C盘告急.虽然windows10虽然优化了wi ...

  4. 最简单的nagios监控内存插件(shell)

    首先看下内存信息吧 [root@localhost ~]# free -m total       used       free     shared    buffers     cached M ...

  5. powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率

    目录 1.获取性能计数器代码如下: 2.发送邮件代码如下: 3.完整的代码如下:

  6. Linux 查看CPU 内存 IO使用率,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  7. 如何查看linux网络io,linux 查看CPU内存 网络 流量 磁盘 IO

    使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...

  8. Linux下查看服务器内存、CPU、GPU显卡使用情况

    一.查看内存使用情况 1.使用命令:free -m 2.内存占用情况: 3.参数说明: (1)Mem行(单位均为M): total:内存总数 used:已使用内存数 free:空闲内存数 shared ...

  9. linux 监控网络IO、磁盘、CPU、内存

    linux 监控网络IO.磁盘.CPU.内存 CPU:vmstat ,sar –u,top 磁盘IO:iostat –xd,sar –d,top 网络IO:iftop -n,ifstat,dstat ...

  10. python通过内置模块监控磁盘、内存、CPU、负载

    01. 概述 闲来无事干,说干就干.主要是通过python函数以及python内置模块来实现对磁盘.内存.CPU.负载的数据采集,然后发送到企业号,并到达微信端,方便查看信息. 脚本存放于gitlab ...

最新文章

  1. MySQL5.7.10多元复制功能搭建
  2. 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别
  3. NullPointerException异常的原因及java异常??
  4. Oracle EBS-SQL (INV-3):检查仓库库存价值明细.sql
  5. python内置函数源码_python如何查看内置函数源码
  6. 手写select,解决浏览器兼容性
  7. 【转】Linux单人维护密码
  8. python输入文字、成为字典_Python 字典(Dictionary)操作详解
  9. iOS开发之解决系统数字键盘无文字时delete键无法监听的技巧
  10. java 正则 关键字_正则表达式关键字
  11. 辛辛苦苦写100条测试用例,为何只被正经执行的只有50条?
  12. yolo v3制作自己的数据_【手把手AI项目】五、自己制作图像VOC数据集--Objection Detection(目标检测)...
  13. ajax请求去获取base64_前端将图片转换为base64位,使用ajax传递到后台,但是图片经过base64转换成字符串后非常长,无法使用ajax...
  14. oracle 空间数据库说明
  15. 数据结构笔记(二十四)-- 哈夫曼编译码
  16. Codejock Xtreme Controls 最新版下载试用2021版本
  17. python多线程刷网站流量(含ip代理池文档,可制作成exe文件挂服务器代刷)
  18. 运维人员必须熟悉的运维工具汇总
  19. android4.4.3版本root,碉堡了!ROOT精灵支持Nexus 5等Android4.4.3机型ROOT
  20. 微信小程序学习笔记4

热门文章

  1. excel随机数_利用excel快速凭空制造大量随机数据?想要制造什么数据都可以
  2. .net core 下文件压缩打包下载
  3. 深度解析反思型Essay怎么写?
  4. LHC有望揭示新的物理学理论
  5. drupal与html转换,HTML转Drupal主题的方法
  6. Photoshop设置图片的背景色为透明
  7. 接口工具POSTMAN怎么设置中文
  8. cisp软考书籍【注册信息安全专业人员培训教材】
  9. (思科模拟器)三层交换机dhcp动态获取,ping通不同vlan ,连通外网
  10. 5G商用牌照发放,“以竞争促落地”,日常5G服务可期