监视云服务的运行状态

若您部署了云服务程序,并且使用Paas服务(比如Service bus或者sql server等等),偶尔我们会在日志中发现无法解析主机名的错误信息,这基本是因为网络闪断造成的,需要我们在代码中添加retry逻辑,详细的说明,请参考:

The Transient Fault Handling Application Block

Service Bus retry guidelines

关于网站的问题,我们需要在问题发生的时候去抓取网络包去排查,如果错过了出现问题的时刻,则网络的问题很难去排查。基于这个背景,有个开发的小工具大家可以使用下,具体功能如下:

  1. 将程序拷贝到云服务的实例中去运行
  2. 程序运行的时候会在指定的位置中检测是否安装了Network Monitor Tool, 若发现没有安装,程序会自动下载并启动安装程序。
  3. 程序启动后会间隔几秒去发Get请求到service bus, 若调用有异常则会再尝试几次,若超过了配置的retry次数,则系统会调用network monitor tool 去抓取90秒的网络包,完成抓包后会将这个抓包信息上传到配置的存储账号中。然后会发送邮件到指定的邮箱,邮件中包含了网络包日志的下载链接(若调用的时间超过了配置时间或者返回值不是200,也会执行相应的动作)
  4. 具体参数说明如下:

  

 <add key="NetMonInstallDir" value="d:Program FilesMicrosoft Network Monitor 3"/>  Network Monitor Tool的安装路径,目前云服务实例默认是按照在当前配置的位置

    <add key="LogPath" value="D:Monitor"/> <!--It is for auto-run-->   程序日志的文件夹路径

    <add key="TraceTimes" value="2"/><!--trace times, define how many times will it capture network trace-->  若Network Monitor Too已经捕获了2次日志文件并发送后,这个监视程序会退出。

    <add key="RertyNumberTimes" value="2"/><!-- define how many times when we get error-->  若发现异常,retry的次数

    <add key="TimerSeconds" value="5"/><!--check the network/target URL every *** seconds--> 监视的时间间隔

    <add key="TargetURL" value="https://xxxxx.servicebus.chinacloudapi.cn"/> 监视的url

    <add key="TargetHttpCode" value="200"/><!--expected http return code-->

    <add key="LimitSeconds" value="30"/><!--criterion time to judge if it is slow performance--> 若请求时间花费超过了设置的值,则会抓包并发送邮件

    <add key="MailNotification" value="1"/><!--0 for false, 1 for true-->

    <add key="MailRecipients" value="xxxxx@xxxx.com;xxxxx@163.com"/><!--use ; to add more--> 设置邮件的收件人

    <add key="MailHostName" value="smtp.**.com"/>  设置邮箱的host

    <add key="MailPort" value="***"/>  设置邮箱的Port

    <add key="MailSenderName" value="**"/>  邮箱的发件人

    <add key="MailSenderPassword" value="*"/> 邮箱发件人的密码

    <add key="StorageAccountName" value="*"/><!--* for null--> 存储账号

    <add key="StorageAccountKey" value="*"/><!--* for null--> 存储账号密码

    <add key="StorageContainerName" value="parsedns"/> 存储中使用的容器名称

    <add key="DownloadUrl" value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>  下载network monitor tool的地址,建议您修改为自己存储中的下载地址

<add key="FirstRun" value="true"/> 在您第一次运行并下载安装了network monitor tool后,建议您将这个参数改为false并重新运行监视程序,这样在您reboot了这个实例后,监视程序也会自动启动

程序运行的信息都是记录在日志中,内容如下:10/9/2015 9:57:25 PM Network Check is running ... | OK | 3 | http://test11111.chinacloudsites.cn/

Ok是调用的返回结果,3表明这次请求花费了3秒钟

 运行结果如下:

程序下载的地址:http://pan.baidu.com/s/1sjQjOlf

原文地址:https://www.cnblogs.com/xiuj/p/4874300.html