最近发生了几次web应用停止响应,最后虽然解决了问题,但应该给应用加上监控
检查apache, ps aux | grep httpd 发现apache进程已经有10个之多,
再通过curl直接检查8080端口的jboss,发现jboss已经停止响应,从而拖垮了apahe
shell掌握有限, 简单用curl进行应用的监控
监控机器列表文件:
server.list
server1
server2
server3
建立监控脚本: webstatus.sh
#!/bin/sh
monitor_dir=/home/admin/monitor/
if [ ! -d $monitor_dir ]; then
mkdir $monitor_dir
fi
cd $monitor_dir
web_stat_log=web.status
if [ ! -f $web_stat_log ]; then
touch $web_stat_log
fi
server_list_file=server.list
if [ ! -f $server_list_file ]; then
echo "`date '+%Y-%m-%d %H:%M:%S'` ERROR:$server_list_file NOT exists!" >>$web_stat_log
exit 1
fi
#total=`wc -l $server_list_file|awk '{print $1}'`
for website in `cat $server_list_file`
do
url="http://$website/app.htm"
server_status_code=`curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "$url"`
if [ "$server_status_code" = "200" ]; then
echo "`date '+%Y-%m-%d %H:%M:%S'` visit $website status code 200 OK" >>$web_stat_log
else
echo "`date '+%Y-%m-%d %H:%M:%S'` visit $website error!!! server can't connect at 10s or stop response at 10 s, send alerm sms ..." >>$web_stat_log
echo "!app alarm @136xxxxxxxx server:$website can't connect at 10s or stop response at 10s ..." | nc smsserver port &
fi
done
exit 0
主要是利用 curl -o /dev/null -s -m 10 --connect-timeout 10 -w %{http_code} "$url" 返回状态码是否200,如果10s没有返回200状态码,则发警报
最后让linux 定时执行脚本:
crontab -e
*/10 * * * * /home/admin/app/bin/webstatus.sh
这样每隔10分钟就会执行一次
分享到:
相关推荐
CURL在win系统和linux下使用的详细教程
Linux下使用curl下载url文件,直接可用。包括文件夹检查创建,多线程文件下载。
在linux下(需要安装curl库),通过curl通过https协议,实现远程下载文件。测试时将宏定义中的地址和文件名修改为自己想要测试的即可。带有一定注释。
想要就下哈,curl 在c语言下的例子。
Linux中编译的curl动态库
Linux下网络检测与通讯命令netcat、curl的Windows/DOS版,经过多方努力才攒成的。 工作中经常需要用ping、netcat、curl等命令进行网络的检测和模拟通讯,通过linux下强大的Shell脚本进行组织调用,克服图形环境灵活...
利用开源库curl写的一个访问webapi的一个demo,内有curl的头文件和静态库(VC9和VC14)
curl 安装、应用,绝对实用。 CURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 库。本文将介绍 cURL 的一些高级特性,以及在PHP中如何运用它。
利用openssl和curl库获取https证书
最新版linux curl-7.71.1.tar.gz
linux下php扩展的安装,比如curl扩展。
本文将为大家简单介绍Linux系统下超级强悍的下载工具Curl。
介绍Linux下curl命令、wget命令常见用法,使用curl获取一些常见的HTTP接口返回的数据,再利用CJSON库进行解析。最后的一个小节介绍了Linux下摄像头的简单操作流程并编译了`mjpg-streamer-r63`库,运行网页监控项目,
curl 是利用 URL语法在命令行方式下工作的开源文件传输工具。 它被广泛应用在 UNIX、 多种 Linux 发行版中,并且有 DOS 和 Win32、 Win64 下的移植版本。如果你的开发环境是 Mac 或者 Linux, 会自带 curl;如果是 ...
主要介绍了linux shell中curl 发送post请求json格式问题的处理方法,文中给大家提到了linux中使用curl发送post请求问题,需要的朋友可以参考下
linux下curl的源码,编译成静态库的步骤如下: (1)./buildconf (2)./configure --with-ssl=ssl目录(如果不需要编译ssl则可以不写) --prefix=生成目录 --enable-static --without-libidn make make install
用arm-linux-gcc交叉编译 openssl zlib curl
利用curl下载文件的源码,可以顺利执行
利用CURL写下载工具,刚刚研究并不完善,将来慢慢完善
linux 环境下配置安装curl. 让php支持curl curl是利用URL语法在命令行方式下工作的文件传输工具。