NetScaler循环抓包设置
NetScaler循环抓包设置
来源 https://raynorli.com/2018/07/01/netscaler-nstrace-cycling-capture/
参考文档
How to Record Network Packet Trace on NetScaler Appliance
How to Export and Use SSL Session Keys to Decrypt SSL Traces Without Sharing the SSL Private Key
在处理一些无法100%复现的问题时,以下几种情况比较难以处理
1.由于尚不确定问题复现的触发条件,随机出现
2.系统管理员没有权限,只能等用户使用出现问题时报障,且出现故障概率很低
我们没有办法在问题发生时抓取数据或封包,此时需要设置循环抓包的方式来确保在在问题复现时可以抓到相应数据,来帮助分析和定位问题原因,进而找到解决方法。
NetScaler上的抓包工具提供了循环抓包的功能,根据我的一些经验,建议使用时按照以下步骤来进行
Step 1
确认NetScaler当前资源消耗情况,流量吞吐、磁盘空间、CPU、内存使用率等(MPX和VPX都一样)
这些参数在NetScaler的GUI的Dashboard界面都可以看到,以最新版的12.1举例

可以看到,黄色标出部分即是我们想看到的参数,一般来说CPU和内存不会是瓶颈,但是如果是100%或者很高的话最好需要先解决这部分问题,CPU关系到filter过滤的性能,吞吐量关系到抓包文件的大小,磁盘空间关系到是否能存得下来,这两个与我们抓包的关联性比较高。
磁盘空间也可以通过命令行界面来进行检查VAR文件夹使用率
|
1
2
3
4
5
6
7
8
|
root@NSVPX12# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/md0 395M 381M 5.2M 99% /
devfs 1.0k 1.0k 0B 100% /dev
procfs 4.0k 4.0k 0B 100% /proc
/dev/da0s1a 1.6G 301M 1.1G 21% /flash
/dev/da0s1e 13G 2.4G 10G 18% /var
|
如果发现可用磁盘空间很少,可以检查以下几个目录下是否有很多旧的日志文件,可以根据生成时间将不需要用的备份出来然后删掉
|
1
2
3
|
/var/nstrace ----------------- 存抓包文件
/var/tmp/support ---------------- 存打包日志文件
/var/nslog/ ---------------- newnslog.*.tar.gz文件
|
Step 2
设置合适的filter过滤,通过实际在生产环境的5分钟抓包,来测试会产生多大的封包文件,通过这个数据来估算循环抓包的滚动时间。

命令行方式
|
1
2
3
4
|
> start nstrace -size 0 -filter "CONNECTION.IP.EQ(1.1.1.1)"
Done
> stop nstrace
Done
|
例如,如果抓包文件比较小,那么可以设置成3小时的循环,即每半个小时的抓包生成一个封包文件,正常抓到6个封包文件,再抓第7个的时候覆盖掉第1个封包文件,一般用户报障的延时是囊括住的
Tips
需要注意的是,由于抓包是nstrace进程在接口buffer中来抓取,如果背景流量较大,有可能应用filter的时候来不及过滤出目标封包,直观的结果就是封包没抓到。此时需要将filter取消了来抓,同样按照上面步骤来进行评估。
Step 3
此时可以开始配置循环抓包的参数了,每个参数的具体作用如下图

上面的参数的意思是,每个封包最大1个G,每个封包文件最长时间抓3600秒(1小时),一共最多抓24个封包(1天)
封包文件大小和封包文件抓取时长这两个限制条件,谁先达到就生效,即如果没到3600秒,但抓包文件达到1G的时候,此时就会抓下一个包了,总共只抓24个包。
如果想抓6个包,每个包抓30分钟,则应该这样设置

命令行方式
start nstrace -nf 6 -time 1800 -size 0
Step 4
结束抓包,看到6个封包文件,将其全部下载出来并进行下一步分析

其他一些抓包参数
link
|
1
2
3
4
5
|
Includes filtered connection's peer traffic.
Possible values: ENABLED, DISABLED
Default value: DISABLED
|
traceBuffers
|
1
2
3
4
5
|
Number of 16KB trace buffers
Default value: 5000
Minimum value: 1000
|
capsslkeys
|
1
2
3
4
5
6
7
|
Capture SSL Master keys. Master keys will not be captured on FIPS machine.
Warning: The captured keys can be used to decrypt information that may be confidential. The captured key files have to be stored in a secure environment
Possible values: ENABLED, DISABLED
Default value: DISABLED
|
=================== End
NetScaler循环抓包设置的更多相关文章
- Fiddler 抓包设置
手机抓包设置 一:配置Fiddler参数 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTTPS CONNECTs ...
- Windows 使用windump进行循环抓包
准备工作 1.下载tcpdump http://www.winpcap.org/windump/ 2.下载WinPcaphttp://www.winpcap.org/install/bin/WinP ...
- charles 手机抓包设置
本文参考:charles 抓包手机 charles经常会进行手机上的网页抓包,比如去copy别人网站图片或脚本的时候o(∩_∩)o : 手机抓包的原理,和PC类似,手机依靠charles与服务端进行对 ...
- Fiddler之常用操作(过滤器设置,代理设置,手机抓包设置,手机代理配置)
记录下,工作中常用的一些设置和操作~ 1.过滤“脏”请求 两个下拉框的名词解释: A.内外网过滤 No Zone Filter:不分区域过滤(内网外网都显示) Show only Intranet H ...
- Android测试(三)——burpsuite抓包设置
导出证书: 将证书导入模拟器中: 设置监听端口,透明代理(一定要设置这个): 进入adb shell,输入如下命令,即可抓包了: iptables -t nat -A OUTPUT -p tcp - ...
- Fiddler手机抓包设置
前提条件:1).电脑需要安装Fiddler2).测试手机需要支持Wifi3).测试手机与电脑需要同一网络4).所测APP需支持代理 三.设置Fiddler 1.(1)电脑端打开安装好的的fiddler ...
- Charles手机抓包设置&无法打开火狐网页设置
1. Charles抓取手机上的网络包,需要安装证书(Charles的和手机的) 操作方法: https://blog.csdn.net/lea__dongyang/article/details/7 ...
- charles抓包工具的使用:手机抓包设置和安装证书
一. 设置手机抓包 第一步:在charles里设置允许手机联网的权限,并设置接入接口 在Charles的菜单栏上选择"Proxy"->"Proxy Settings ...
- Fiddler抓包设置
介绍 Fiddler 在 PC 端和移动端,模拟器抓取数据包 Fiddler抓取PC端数据包: 这里 Fiddler 抓取网页客户端的数据包时,其原理就是在 客户端/浏览器 和 服务器端 之间,加上了 ...
随机推荐
- PHP 二维数组去重方法
php二维数组的去重策略,如果需要根据某字段去重(其他字段可能不一致),那么需要使用循环策略,如果去重的都是相同的(字段,值),那么可以用序列化方式. $allComments = array_map ...
- Centos7卸载nginx及php、php-fpm方法
Centos7卸载nginx及php.php-fpm方法 2016年12月01日 18:17:22 阅读数:20824 本文环境:Centos7.yum方式安装的nginx和php.php-fpm 之 ...
- Spring数据分析思维课
本文目录 一.杂 二.四大行业数据分析 1.工具 1.电商数据分析——以京东为例 2.sql常见问题 2.互联网金融——以芝麻信用为例 3.数据异常排查 3.游戏行业——以欢乐斗地主为例 4.融入 ...
- npm 权限
将npm默认目录定向到其他你具有读写权限的目录 很多时候你可能并不想改变npm所用的默认目录(如/usr)的拥有者,因为这可能会导致一些问题,比如你在与其他用户共用此系统时. 这时,你可以设置npm整 ...
- 2.1 Go语言基础之运算符
运算符用于在程序运行时执行数学或逻辑运算. 一.运算符 Go 语言内置的运算符有: 1. 算术运算符 2. 关系运算符 3. 逻辑运算符 4. 位运算符 5. 赋值运算符 1.1 算数运算符 运算符 ...
- SQL-W3School-基础:SQL 教程
ylbtech-SQL-W3School-基础:SQL 教程 1.返回顶部 1. SQL 是用于访问和处理数据库的标准的计算机语言. 在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据, ...
- Performance Analysis of Logs (PAL) Tool
Performance Analysis of Logs (PAL) Tool 背景 在众多的独立项目中,我们如何快速了解数据库(SQL Server)服务器的性能,以及数据库的基线情况是怎样的,或者 ...
- ElasticSearch——常用命令
集群相关 --查询集群健康状态 GET _cluster/health --查询所有节点 GET _cat/nodes --查询索引及分片的分布 GET _cat/shards --查询指定索引分片的 ...
- Spring-Kafka —— 消费如何达到最高的吞吐量
首先简单的介绍一下消费者对topic的订阅.客户端的消费者订阅了topic后,如果是单个消费者,那么消费者会顺序消费这些topic分区中的数据,如果是创建了消费组有多个消费者,那么kafak的服务端将 ...
- 在spring的业务层获取request,response
1.直接通过controller层获取到传输到业务层2.SpringMVC提供的RequestContextHolder可以直接获取代码: RequestAttributes requestAttri ...