问题描述

众所周知,Azure App Service是一种PaaS服务,也就是说,IaaS层面的所有内容都由平台维护,所以使用App Service的我们根本无法触碰到远行程序的虚拟机(VM), 所以当遇见一些实例级的问题时,可谓一点办法也没有。 这时,一些Azure提供的排查工具就非常有用,如在App Service for Windows的情况下,我们可以通过Kudu工具进行文件管理,如下载日志,修改web.config配置,运行抓取DUMP的命令(或查看进行直接抓取DUMP,详见:(【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core)))。

但是,当我们发现通过App Service调用其他的请求时,需要调查网络丢包请求没有响应,或是需要查看请求的Header时,则需要在实例中抓取网络包(当问题正在发生时抓取)-- 在PowerShell中通过ArmClient向App Service发送抓包请求,然后通过Kudu链接到logfiles\networktrace目录下下载网络包

准备条件

  • PowerShell使用管理员方式打开
  • 登录App Service Kudu管理页面 (Azure App Service --> Advanced Tools --> Go)
  • 准备号App Service的资源ID (Azure App Service --> Properties --> Resource ID)

执行步骤

一:安装 ArmClient 工具

  1. 打开 PowerShell (管理员权限)

  2. 安装 chocolatey, 命令为: iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

  3. 安装 armclient 工具,命令为: choco install armclient

二:使用 Azure 账号登陆 ARMClient

armclient.exe login Mooncake

注:当使用中国区的Azure时候,才需要加入Mooncake参数。

三:抓取网络日志

armclient.exe POST "/subscriptions/<sub>/resourceGroups/<RG>/providers/Microsoft.Web/sites/<site>/networkTrace/start?duration=<seconds>&api-version=2015-06-01"

使用App Serivce中Resource ID中的Sub,RG,Site等替换后,直接再PowerShell中运行以上命令。

注:duration(最大设置为 300,目前只允许抓取最长 5 分钟的网络包)

:当第一次Post请求没有完成前,如果你再次发送请求则会返回Error Message, BadRequest.

当抓取成功后,可以再Kudu站点的\home\logfiles\networktrace 下载网络包

分析网络举例

从App Service Kudu中 \home\logfiles\networktrace 下载网络压缩包解压后。使用Wireshark分析,如下图中我们可以查看的信息有(如使用HTTPS加密传输,则需要解密才可查看)

  • 请求的URL
  • 请求的类型,如GET, POST等
  • 请求中所携带的Header键值
  • Response的状态等
  • 还有也可以分析TCP级的ACK,FIN等

参考资料

如何在 Web 应用实例上住抓取网络日志https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-web-apps-howto-crawl-log

快速获取DUMP文件https://www.cnblogs.com/lulight/p/13574331.html

【应用服务 App Service】App Service中抓取网络日志的更多相关文章

  1. 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志

    问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...

  2. 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析

    问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...

  3. windows中抓取hash小结(下)

    书接上回,windows中抓取hash小结(上) 指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html 继续 0x03 从ntds.dit中抓取 ...

  4. java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息

    1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstu ...

  5. #在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat

    #在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat子网和主机网络是同一网络,网络管理员要注 ...

  6. ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/24/listview_itemupdating_findcontrol_201 ...

  7. FETCH - 用游标从查询中抓取行

    SYNOPSIS FETCH [ direction { FROM | IN } ] cursorname where direction can be empty or one of: NEXT P ...

  8. windows中抓取hash小结(上)

    我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个"前提"-----如何在windows系 ...

  9. iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据

    网络爬虫-使用青花瓷抓取网络数据 由于最近在研究网络爬虫相关技术,刚好看到一篇的的搬了过来! 望谅解..... 写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教 ...

随机推荐

  1. 工具类-Fastjson入门使用

    简介 什么是Fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到Java ...

  2. J.U.C之ReentrantLock 可重入锁

    * A reentrant mutual exclusion {@link Lock} with the same basic * behavior and semantics as the impl ...

  3. 《Java核心技术卷一》之 泛型

    一.引言 在学习集合的时候我们会发现一个问题,将一个对象丢到集合中后,集合并不记住对象的类型,统统都当做Object处理,这样我们取出来再使用时就得强制转换类型,导致代码臃肿,而且加入集合时都是以Ob ...

  4. Ubuntu16环境安装和使用NFS

    通过NFS服务我们可以方便的读写服务器上的文件,一起来实战Ubuntu16环境安装和使用NFS: 文章概要 本次实战由以下步骤组成: 列举环境信息: 在192.168.119.128安装NFS服务,将 ...

  5. Java高级开发必会的50个性能优化的细节(珍藏版)

      在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. ● 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短 ...

  6. 刷题[CISCN2019 华北赛区 Day2 Web1]Hack World

    解题思路 打开发现是很简单的页面,告诉了表名和列名,只需知道字段即可 尝试一下,输入1,2都有内容,后面无内容.输入1'让他报错,发现返回bool(false) 大概思路就是布尔型注入了,通过不断返回 ...

  7. 高并发场景-请求合并(二)揭秘HystrixCollapser-利用Queue和线程池异步实现

    背景 在互联网的高并发场景下,请求会非常多,但是数据库连接池比较少,或者说需要减少CPU压力,减少处理逻辑的,需要把单个查询,用某些手段,改为批量查询多个后返回. 如:支付宝中,查询"个人信 ...

  8. RabbitMQ小记(二)

    1.RabbitMQ相关介绍 (1)RabbitMQ整体上是一个生产者和消费者模型,主要负责接收.存储.转发消息.RabbitMQ整体结构图如下: (2)生产者:发送消息的一方,生产者创建一条消息,发 ...

  9. Spring学习(五)--Spring的IOC

    1.BeanDefinition在IOC的注册 当BeanDefinition完成载入和解析之后,用户定义的BeanDefinition在IOC容器中已经建立自己的数据结构和数据表示,但是无法使用,需 ...

  10. mysqldump 5.7

    简介 mysqldump是官方自带的文本格式备份工具,简单实用,一般在Mysql安装目录的bin目录下.备份文件默认是SQL格式,它由一系列语句例如CREATE TABLE.INSERT等组成.mys ...