使用python监视几台服务器上的服务的最佳方法

时间:2008-12-12 20:02:14

标签: python

从python为一些服务器监控HTTP / FTP / IMAP / POP3 / SMTP等服务的最佳方法是什么? 使用套接字并尝试连接到服务端口http-80,ftp-21等...如果连接成功则假定服务正常或使用python libs连接到指定的服务并处理异常/返回代码/等...... < / p>

例如对于ftp来说,最好是

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    s.connect(("ftp.domain.tld", 21))
    print "ok"
except:
    print "failed"
s.close()

from ftplib import FTP

try:
    ftp = FTP('ftp.domain.tld')
    print "FTP service OK"
    ftp.close()
except:
    print "FTP err"

其余部分,socket vs urllib2,imaplib等... 如果我采用lib方式,我该如何测试smtp?

1 个答案:

答案 0 :(得分:2)

更新1:

实际上,在您的代码中,两个选项(在FTP中)没有区别。对于代码可读性,第二个选项应该是首选。但是不能登录到ftp服务器,也许还能看一些文件?

更新0:

监控时,测试完整堆栈更好。因为否则你可能会错过在套接字级别没有表现出来的问题。可以使用smtplib测试smtp。最好的方法是用它发送邮件。并使用imaplib从目标中读取它。或者,您可以使用smtplib与smtp服务器进行通信。做整个端到端的事情会更好。但是应该考虑开发和配置资源以防止丢失问题的影响。