apache+mod_jk+tomcat服务,偶尔出现由于tomcat出现大量的CLOSE_WAIT连接状态,但是如CLOSE_WAIT连接状态的个数几乎等于tomcat中设置的最大线程个数时,就会导致mod_jk连接不上tomcat。
发送邮件的模块和认证“用python监控java服务脚本(1)”中的就可以了,或者把这两个脚本合并成一个脚本。
import os
pipe = os.popen('netstat -anlp | grep CLOSE_WAIT | grep java | wc -l')
try:
Close_wait_num = int(pipe.read())
if Close_wait_num > 300:
msg = MIMEText('Host ip: ' + host + "\r\n" + 'CLOSE_WAIT_NUM: ' + Close_wait_num)
msg['Subject'] = 'Java Service CLOSE_WAIT'
svr = smtplib.SMTP(mailserver)
svr.login(username,password)
svr.sendmail(from_addr,to_addr,msg.as_string())
svr.close()
finally:
pipe.close()