【应用服务 App Service】App Service中抓取网络日志
问题描述
众所周知,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 工具
打开 PowerShell (管理员权限)
安装 chocolatey, 命令为: iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
- 安装 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中抓取网络日志的更多相关文章
- 【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
问题描述 在App Service For Windows的环境中,我们可以通过ArmClient 工具发送POST请求在Web应用的实例中抓取网络日志,但是在App Service For Linu ...
- 【Azure 环境】在Windows环境中抓取网络包(netsh trace)后,如何转换为Wireshark格式以便进行分析
问题描述 如何在Windows环境中,不安装第三方软件的情况下(使用Windows内置指令),如何抓取网络包呢?并且如何转换为Wireshark 格式呢? 操作步骤 1) 以管理员模式打开CMD,使用 ...
- windows中抓取hash小结(下)
书接上回,windows中抓取hash小结(上) 指路链接 https://www.cnblogs.com/lcxblogs/p/13957899.html 继续 0x03 从ntds.dit中抓取 ...
- java练习题(字符串类):显示4位验证码、输出年月日、从XML中抓取信息
1.显示4位验证码 注:大小写字母.数字混合 public static void main(String[] args) { String s="abcdefghijklmnopqrstu ...
- #在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat
#在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat子网和主机网络是同一网络,网络管理员要注 ...
- ListView与.FindControl()方法的简单练习 #2 -- ItemUpdting事件中抓取「修改后」的值
原文出處 http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/24/listview_itemupdating_findcontrol_201 ...
- FETCH - 用游标从查询中抓取行
SYNOPSIS FETCH [ direction { FROM | IN } ] cursorname where direction can be empty or one of: NEXT P ...
- windows中抓取hash小结(上)
我上篇随笔说到了内网中横向移动的几种姿势,横向移动的前提是获取了具有某些权限的用户的明文密码或hash,正愁不知道写点啥,那就来整理一下这个"前提"-----如何在windows系 ...
- iOS开发——网络实用技术OC篇&网络爬虫-使用青花瓷抓取网络数据
网络爬虫-使用青花瓷抓取网络数据 由于最近在研究网络爬虫相关技术,刚好看到一篇的的搬了过来! 望谅解..... 写本文的契机主要是前段时间有次用青花瓷抓包有一步忘了,在网上查了半天也没找到写的完整的教 ...
随机推荐
- 向你的C语言项目中加入多线程
C语言在标准库<pthread.h>中为程序员提供了多线程操作接口. 先从简单操作入手 int pthread_create(pthread_t *thread, pthread_attr ...
- html+css入门基础案例之页面设计
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 知识全聚集 .Net Core 技术突破 | 如何实现一个模块化方案一
简介 模块化的介绍一共2篇 这一篇我们实现一个功能非常简单的StartupModules模块化. 第二篇我们来实现一个ABP的模块化效果. 思考 其实来简单想一下模块化的实验思路,写个接口=>模 ...
- BeautifulSoup解析页面
beautiful soup是一个解析包,专门用来解析html语法的,lxml是一个解析器,用来分析以及定位内容的 .是class #是id import requests from bs4 impo ...
- Java Web学习(六)HttpServletRequest(客户端请求)
一.定义 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有 ...
- jstl中ftm标签用法
<fmt:formatDate value="${dateTime}" pattern="yyyy/MM/dd HH:mm:ss"/>
- 《Mybatis进阶》肝了30天专栏文章,整理成册,免费获取!!!
持续原创输出,点击上方蓝字关注我吧 目录 前言 简介 如何获取? 总结 前言 Mybatis专栏文章写到至今已经有一个月了,从基础到源码详细的介绍了每个知识点,没什么多余的废话,全是工作.面试中常用到 ...
- 把VS Code打造成Java开发IDE
近期,公司推行正版化,本人使用的是JetBrains教育版,是不允许进行商业开发的,因此开启了艰难的备用IDE选型之路.最终,我选定了轻量级的Visual Studio Code(以下简称VS Cod ...
- java中对 闰年的计算 以及月份天数
import java.io.*;//局部变量的使用import java.util.Scanner; public class HelloJava { public static void ...
- Spring属性注入(set方式、构造函数方式、p名称空间、spel、复杂类型)
1.set注入方式 (1)注入的为值类型(八大数据类型)的数据 配置文件: <?xml version="1.0" encoding="UTF-8"?&g ...