Python学习笔记-DNS域名轮循业务监控
生活随笔
收集整理的這篇文章主要介紹了
Python学习笔记-DNS域名轮循业务监控
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ?大部分的DNS解析是一個(gè)域名對(duì)應(yīng)一個(gè)IP地址,但是通過DNS輪循技術(shù)可將一個(gè)域名對(duì)應(yīng)多個(gè)IP地址,這樣可以實(shí)現(xiàn)簡(jiǎn)單且高效的負(fù)載平衡,但是輪循技術(shù)有一個(gè)缺點(diǎn)就是當(dāng)目標(biāo)主機(jī)不可用時(shí),不能自動(dòng)的刪除,所以引出了要對(duì)業(yè)務(wù)主機(jī)的服務(wù)的可用性進(jìn)行監(jiān)控。
本例通過分析當(dāng)前域名的解析IP,再結(jié)合服務(wù)端口探測(cè)來實(shí)現(xiàn)自動(dòng)監(jiān)控,在域名解析中添加、刪除IP時(shí),無須對(duì)監(jiān)控腳步更改。
! Python 2.x中的"httplib"模塊在Python 3.x中變?yōu)?#34;http.client"
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #!/usr/bin/python3 # import?dns.resolver import?os import?http.client iplist=[]???#定義域名IP列表變量 appdomain="www.google.cn"???#定義業(yè)務(wù)域名 def?get_iplist(domain=""):?#域名解析函數(shù),解析成功IP將被追加到iplist ????try: ????????A?=?dns.resolver.query(domain,?'A')??#解析A記錄類型 ????except?Exception?as?e: ????????print?("dns?resolver?error:?")+str(e) ????????return ????for?i?in?A.response.answer: ????????for?j?in?i.items: ????????????iplist.append(j.address)????#追加到iplist ????return?True def?checkip(ip): ????checkurl?=?ip+":80" ????getcontent?=?"" ????http.client.socket.setdefaulttimeout(5)?????#定義http連接超時(shí)時(shí)間(5秒) ????conn?=?http.client.HTTPConnection(checkurl)???#創(chuàng)建http連接對(duì)象 ????try: ????????conn.request("GET",?"/",?headers?=?{"Host":?appdomain})????????#發(fā)起url請(qǐng)求,添加host主機(jī)頭 ????????r?=?conn.getresponse() ????????getcontent?=?r.read(15)???????#獲取url頁面前15個(gè)字符,以便做可用性校驗(yàn) ????finally: ????????if?getcontent?==?"<!doctype?html>":???#監(jiān)控URL頁的內(nèi)容一般是事先定義好的,比如"HTTP200"等 ????????????print?(ip+"?[OK]") ????????else: ????????????print?(ip+"?[Error]")?#此處可放告警程序,可以是郵件、短信通知 if?__name__?==?"__main__": ????if?get_iplist(appdomain)?and?len(iplist)>0:???#條件:域名解析正確且至少返回一個(gè)IP ????????for?ip?in?iplist: ????????????checkip(ip) ????else: ????????print?("dns?resolver?error.") |
總結(jié)
以上是生活随笔為你收集整理的Python学习笔记-DNS域名轮循业务监控的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux redhat 红帽 cent
- 下一篇: 六:Dubbo与Zookeeper、Sp