热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Python3对DNS负载均衡环境下的WEB服务器的监控脚本

很多大型网站为了减轻压力,避免单点故障,使用了多个服务器(IP)地址来为单一网站提供服务。其中包括使用DNS轮训来实现负载。但是对于管理员而言,如何可以监控这些服务器那些是ok那些是有问题的呢?下面脚本可以帮你实现。importsocket,urllib.parse

很多大型网站为了减轻压力,避免单点故障,使用了多个服务器(IP)地址来为单一网站提供服务。

其中包括使用DNS轮训来实现负载。

但是对于管理员而言,如何可以监控这些服务器那些是ok那些是有问题的呢?

下面脚本可以帮你实现。  

  1. import socket,urllib.parse,configparser,re,sys,http.client,time  
  2.   
  3. #coding:utf-8   
  4.   
  5. #域名转换IP地址函数   
  6. def dom2ip(dname):  
  7.     iplist=socket.gethostbyname_ex(dname)[2]  
  8.     return iplist  
  9.   
  10. #字典数据生成函数   
  11. def parse(url,key):  
  12.     zhlist[key]={}  
  13.     zhlist[key][\'host\']=a.hostname  
  14.     zhlist[key][\'path\']=a.path  
  15.     zhlist[key][\'port\']=a.port  
  16.     zhlist[key][\'query\']=a.query  
  17.     zhlist[key][\'url\']=a.geturl()  
  18.     try:  
  19.         zhlist[key][\'ips\']=dom2ip(a.hostname)  
  20.     except Exception as err:  
  21.         print(\'你的配置文件格式有错误,n错误信息:\',err,\'n程序已退出\')  
  22.         sys.exit(1)  
  23.           
  24.   
  25.   
  26. #headers   
  27. headers={  
  28.     \'User-Agent\':\'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko)\'  
  29. }  
  30.   
  31.   
  32.   
  33.   
  34. def getinfo(domain,ip,path=\'/\',port=80):  
  35.     headers[\'Host\']=domain  
  36.     h=http.client.HTTPConnection(ip,port,timeout=8)  
  37.     h.request(\'GET\',path,headers=headers)  
  38.     r=h.getresponse()  
  39.     print(r.getheaders())  
  40.     print(\'服务器返回状态\',r.status)  
  41.     print(\'服务器返回结果\',r.reason)  
  42.     print(\'目标时间:\',r.getheader(\'Date\'))  
  43.     print(\'目标Web端:\',r.getheader(\'Server\'))  
  44.     print(\'目标网页上次修改时间:\',r.getheader(\'Last-Modified\'))  
  45.     print(\'目标内容返回:\',r.getheader(\'Content-Length\'),\'字节\')  
  46.     print(\'目标返回编码:\',r.getheader(\'Content-Encoding\'))  
  47.     try:  
  48.          
  49.           
  50.         #分析网页的字符集   
  51.         a=r.getheader(\'Content-Type\')  
  52.         b=re.findall(\'charset=(.*)$\',a,re.I)  
  53.         for i in b:  
  54.             charset=i  
  55.         try:  
  56.             charset  
  57.             res=res.decode(charset,\'ignore\')  
  58.         except:  
  59.             res=r.read(2048)  

推荐阅读
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Python爬取豆瓣数据实现过程解析
    这篇文章主要介绍了Python爬取豆瓣数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
  • html结构 ... [详细]
  • 为什么三角形与菜单背景的颜色不同? - Why is the triangle a different colour shade to the menu background?
    Imnotunderstandingastowhythetrianglewhichappearswhenthemousehoversoverthemenuitem, ... [详细]
author-avatar
天使犯罪de快乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有