- 工作需要监控Httpd并发数,找不到合适的插件,花时间研究了一下Nagios监控内存的脚本,做了一些修改,完成了脚本。
监控内存脚本:
http://www.cnblogs.com/Mrhuangrui/p/4585615.html - 监控Http并发数脚本代码如下:
#!/bin/bash if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then ip_conns=`netstat -na |grep ESTABLISHED |wc -l` if [ "$ip_conns" -ge "$4" ]; then echo "HttpProcessList: CRITICAL connet counts is: $ip_conns |TOTAL=$ip_conns;" $(exit 2) elif [ "$ip_conns" -ge "$2" ]; then echo "HttpProcessList: WARNING connet counts is: $ip_conns |TOTAL=$ip_conns;" $(exit 1) else echo "HttpProcessList: OK connet counts is: $ip_conns |TOTAL=$ip_conns;" $(exit 0) fi else echo "CheckHttpProcessList Error" fi
测试脚本./Check_httpd_processList.sh -w 60 -c 90
- 监控服务器测试
cd /usr/lib64/nagios/plugins/
./check_nrpe -H 10.10.0.116 -c checkHttpdProcesslist - 脚本中运用到了比较运算符
Shell运算符详解
http://blog.csdn.net/ithomer/article/details/6836382 - 第三方插件 (无法出图)
https://exchange.nagios.org/directory/Plugins/Network-Connections,-Stats-and-Bandwidth/Check-Number-Of-Connections/details - 遇到的难题
自定义的插件可能无法采集到正确的执行结果。
故障情况:本机采集的数据显示正常,监控机使用nrpe采集,数据显示为0
监控机是因为使用nrpe执行,而nrpe是以nagios用户来执行,本地服务器使用的是Root账号执行,所以数据不一致。
解决方法:
修改visudo文件,追加2行,注释一行
# visudo
nagios ALL=(ALL) NOPASSWD:/usr/lib64/nagios/plugins/check_http_procslist.sh
nrpe ALL=(ALL) NOPASSWD:/usr/lib64/nagios/plugins/check_http_procslist.sh
#Defaults requiretty
修改nrpe.cnf执行语句配置,命令前添加sudo
command[check_http_procslist]=sudo /usr/lib64/nagios/plugins/check_http_procslist.sh -w 800 -c 1200