Usage: check_procs -w <range> -c <range> [-m metric] [-s state] [-p ppid] [-u user] [-r rss] [-z vsz] [-P %cpu] [-a argument-array] [-C command] [-t timeout] [-v]
现在就来解释下逐个参数的意思
-w -c 大家都知道,设置警告和严重警告的范围。一般都是设置一个数字,这样设置的话,进程数比设置的更大才报,比如
[root@udb151k libexec]# ./check_procs -w 84 -c 90 PROCS OK: 83 processes
还具有另一种写法
[root@udb151k libexec]# ./check_procs -w 84: -c :90 PROCS WARNING: 83 processes冒号的意思是大于或者小于,这里的意思是小于84 或 大于90 报警
-m 以什么来衡量报警,后面的参数有
PROCS - number of processes (default) 以进程的数量(默认)
VSZ - virtual memory size 占用虚拟内存的大小
RSS - resident set memory size占用物理内存的大小
CPU - percentage CPU 占用CPU的比例
-s 以进程的状态加以区分,进程的状态有很多种,详细可ps -exX 查看
-p 进程的父进程
-u 进程的UID
-r 实际使用的物理内存
-z 虚拟内存
-P 占用CPU
-a 设定字符串
-C 进程的命令
-t 超时设定
-a 的缺点:很多时候,我们要监控一个进程是否正常,这个时候很多人都喜欢用-a 加上自己进程的参数名称来监控,这样做其实很容易引起不必要的报警,它会找出所有符合设定的字符串的进程,比如,我们在vi一个同名的文件或者查看该目录下的文件时:
[root@udb151k libexec]# ./check_procs -w 1: -c :2 -a mysqld PROCS CRITICAL: 3 processes with args 'mysqld'
这个时候用-C是更准确的:
[root@udb151k libexec]# ./check_procs -w 1: -c :2 -C mysqld PROCS OK: 1 process with command name 'mysqld'