nagios 监控内存和CPU,磁盘等使用情况
一、
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,磁盘等使用情况相关推荐
- zabbix自动发现与监控内存和CPU使用率最高的进程
监控需求 某项目的应用服务器CPU和内存使用率的监控,通过zabbix系统监控记录应用服务器上进程的CPU和内存的使用情况,并以图表的形式实时展现,以便于我们分析服务器的性能瓶颈. 监控方式 利用za ...
- linux服务器显卡的占用量,命令查看Linux服务器内存、CPU、显卡使用情况
查看内存使用情况 使用命令:free -m 大致结果类似下图: 参数解释: Mem行(单位均为M): * total:内存总数 * used:已使用内存数 * free:空闲内存数 * shared: ...
- win10 计算机磁盘加内存,win10 cpu 磁盘 100% 运行及内存使用量变大 优化汇总
如同历代Windows一样,通过在线方式升级Windows 10之后会在C盘留下旧版本的备份文件,这些"垃圾"会占用大量的硬盘空间,令C盘告急.虽然windows10虽然优化了wi ...
- 最简单的nagios监控内存插件(shell)
首先看下内存信息吧 [root@localhost ~]# free -m total used free shared buffers cached M ...
- powershell自动化操作AD域、Exchange邮箱系列(6)——获取并监控内存、CPU占用率
目录 1.获取性能计数器代码如下: 2.发送邮件代码如下: 3.完整的代码如下:
- Linux 查看CPU 内存 IO使用率,linux 查看CPU内存 网络 流量 磁盘 IO
使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...
- 如何查看linux网络io,linux 查看CPU内存 网络 流量 磁盘 IO
使用vmstat命令来察看系统资源情况 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? Q: 在命令行方式下,如何查看CPU.内存的使用情况,网络流量和磁盘I/O? A: 在命 ...
- Linux下查看服务器内存、CPU、GPU显卡使用情况
一.查看内存使用情况 1.使用命令:free -m 2.内存占用情况: 3.参数说明: (1)Mem行(单位均为M): total:内存总数 used:已使用内存数 free:空闲内存数 shared ...
- linux 监控网络IO、磁盘、CPU、内存
linux 监控网络IO.磁盘.CPU.内存 CPU:vmstat ,sar –u,top 磁盘IO:iostat –xd,sar –d,top 网络IO:iftop -n,ifstat,dstat ...
- python通过内置模块监控磁盘、内存、CPU、负载
01. 概述 闲来无事干,说干就干.主要是通过python函数以及python内置模块来实现对磁盘.内存.CPU.负载的数据采集,然后发送到企业号,并到达微信端,方便查看信息. 脚本存放于gitlab ...
最新文章
- MySQL5.7.10多元复制功能搭建
- 静态方法与非静态方法的区别_程序员必看之ThinkPHP5中model与Db的区别
- NullPointerException异常的原因及java异常??
- Oracle EBS-SQL (INV-3):检查仓库库存价值明细.sql
- python内置函数源码_python如何查看内置函数源码
- 手写select,解决浏览器兼容性
- 【转】Linux单人维护密码
- python输入文字、成为字典_Python 字典(Dictionary)操作详解
- iOS开发之解决系统数字键盘无文字时delete键无法监听的技巧
- java 正则 关键字_正则表达式关键字
- 辛辛苦苦写100条测试用例,为何只被正经执行的只有50条?
- yolo v3制作自己的数据_【手把手AI项目】五、自己制作图像VOC数据集--Objection Detection(目标检测)...
- ajax请求去获取base64_前端将图片转换为base64位,使用ajax传递到后台,但是图片经过base64转换成字符串后非常长,无法使用ajax...
- oracle 空间数据库说明
- 数据结构笔记(二十四)-- 哈夫曼编译码
- Codejock Xtreme Controls 最新版下载试用2021版本
- python多线程刷网站流量(含ip代理池文档,可制作成exe文件挂服务器代刷)
- 运维人员必须熟悉的运维工具汇总
- android4.4.3版本root,碉堡了!ROOT精灵支持Nexus 5等Android4.4.3机型ROOT
- 微信小程序学习笔记4