生产上跑的应用,怎么监控其是否运行正常,除了基础环境的监控外,还需要监控使用端口的网络状态,日志是否实时更新。下面分别介绍
1.监控网络状态
常见的网络状态有四种,ESTABLISHED 表示正在通信,TIME_WAIT 表示主动关闭,CLOSE_WAIT 表示被动关闭,LISTEN侦听来自远方的TCP端口的连接请求;其中CLOSE_WAIT状态必须要监控,表示端口被动关闭,可使用如下的语句记录下ClOSE_WAIT状态的个数,如下图:
netstat -n|grep 1521|awk '/^tcp/ {++S[$NF]} END {for(a in S) if(a == "CLOSE_WAIT") print a,S[a]}'
监控ClOSE_WAIT状态的个数,当超过一定的值,系统告警
2.应用日志的最后修改时间监控
有时候进程出现假死,无法对外提供服务,如果只监控基础环境无法知道交易是否正常,可以监控日志最后修改时间,可使用如下的语句
'stat "${file}"|awk '$1 -eq "Modify:"{print $2" "$3}'
file为日志文件,上面的语句会输出modify的最后时间,与系统时间比较,如果超过多长时间未更新,报警提示。
应用日志的监控还可更进一步,实时查看应用日志是否有输出交易成功的日志,可以取日志最新输出几行进行分析。