找回密码
 加入怎通
查看: 205|回复: 1

生产环境url告警检测--通过curl来获取http各阶段时间(生产环境中的有害因素主要包括)

[复制链接]
我来看看 发表于 2023-03-20 20:26:22 | 显示全部楼层 |阅读模式
3 K: S: ?: F* X7 t/ h

概述最近系统总是url告警,有点烦,所以想要通过curl来获取http各阶段时间,定位下问题的原因,看能不能获取一些有效信息,下面介绍下curl的参数和常用的一些用法curl的部分参数解释:http_code http状态码,如200成功,301转向,404未找到,500服务器错误等。

5 G: L* `# J0 ]1 k

7 z+ e8 U" @7 |8 ` time_total 总时间,按秒计精确到小数点后三位 9 f0 H4 ]" i$ r. {4 l) p time_namelookup DNS解析时间,从请求开始到DNS解析完毕所用时间6 p7 a0 n! P/ `4 H1 { time_connect 连接时间,从开始到建立TCP连接完成所用时间,包括前边DNS解析时间,如果需要单纯的得到连接时间,用这个time_connect时间减去前边time_namelookup时间。

. z( C% D( Z' R( H. `$ Q/ @

& V! I$ M+ N$ j: _. Y time_appconnect 连接建立完成时间,如SSL/SSH等建立连接或者完成三次握手时间$ W2 \3 O4 Z* l time_pretransfer 从开始到准备传输的时间* z" ?5 T4 p: Y) L5 t- n6 I2 J' P time_redirect 重定向时间,包括到最后一次传输前的几次重定向的DNS解析,连接,预传输,传输时间。

" x, B9 j6 x m& \

6 v- ~+ a; n6 k# d" I time_starttransfer 开始传输时间在client发出请求之后,Web 服务器返回数据的第一个字节所用的时间: I6 ~. m5 I1 q- p size_download 下载大小 * ]& L. n$ v3 U size_upload 上传大小' j/ F2 k) t$ p, U s/ I0 v# O% V size_header 下载的header的大小 % ?0 Q. V J; z size_request 请求的大小。

+ U G. [9 c" k P. y

# D$ |4 R0 y0 e$ c! A% | speed_download 下载速度,单位-字节每秒 3 e1 h9 B) i0 |& N9 l2 r, B speed_upload 上传速度,单位-字节每秒) y$ q5 k0 o# S; Y3 D `# ~! W' I content_type 就是content-Type,不用多说了,这是一个访问我博客首页返回的结果示例(text/html; charset=UTF-8);" V0 E: G6 {" o5 m# h& C ssl_verify_result ssl认证结果,返回0表示认证成功。

" v+ I- d- i/ {

" b7 C& }! l; e( x T, p; L 1、直接访问使用#curl -o /dev/null -s -w %{http_code}:%{http_connect}:%{content_type}:%{time_namelookup}:%{time_redirect}:%{time_pretransfer}:%{time_connect}:%{time_starttransfer}:%{time_total}:%{speed_download} www.baidu.com* a4 W, ]1 P# {

5 c f& a6 O3 M" |3 `* r

输出变量需要按照%{variable_name}的格式,如果需要输出%,double一下即可,即%%,同时,\n是换行,\r是回车,\t是TAB-w 指定格式化文件-o 请求重定向到,不带此参数则控制台输出返回结果。

' |( m' @4 f( D1 }# n

-s 静默,不显示进度2、定义时间格式化文件访问#vim curl-time.txt: q6 w6 K) H2 ^ \n : C1 q* F1 ]2 j- ?: J- r http: %{http_code}\n) V3 ]1 R; B$ B( f, W ]! a3 M dns: %{time_namelookup}s\n, ^' M- s8 A0 \! n! ]! \- ?1 Y+ } redirect: %{time_redirect}s\n; f' U R/ _- b0 b time_connect: %{time_connect}s\n 2 `6 ~; w/ l) ~1 @, T) [. M time_appconnect: %{time_appconnect}s\n 9 b0 H# E5 Q1 s5 f# U3 X time_pretransfer: %{time_pretransfer}s\n4 k( Y& N+ Q8 Z$ B' ^ time_starttransfer: %{time_starttransfer}s\n5 e) {9 u+ N: X1 ]' O( b size_download: %{size_download}bytes\n, @7 e* H9 p+ K- M) C speed_download: %{speed_download}B/s\n 1 o3 B- E |- { ----------\n 2 I( G- y, T4 [ P/ X: M. G* } time_total: %{time_total}s\n" h! J! q4 Z4 P- r+ h& q. ?" H \n $ q- d3 O! u0 }& N+ X

" S U/ i; I8 ~$ U8 Z3 V" F

执行命令:#curl -w "@curl_time.txt" -s -H "Content-Type: application/json" --insecure --header Host: passport.500.com --data {"platform":"android","userimei":"F5D815EA2BD8DBARD","app_channel":"10000","mbimei":"9DB358AF","version":"3.1.4","username":"hqzx","userpass":"976af4"} --compressed https://119.147.113.177/user/login 7 n! h+ V) | \9 g

3 c& j' r, z- ]- t

3、curl以post请求方法3.1、以json格式数据 #curl -H "Content-Type: application/json" -X POST --data {"data":"1"} http://127.0.0.1/% i8 W S# @! p1 H, @

# I# B9 A, B0 o) S2 w

3.2、以&连接参数数据#curl -d "data=7778a8143f111272&score=19&app_key=8d49f16fe034b98b&_test_user=test01" "http://127.0.0.1" 5 H% Y7 u3 c% l4 P7 `0 N/ m& e U* ]

/ E! B& d) P) ]3 @" r: m

3.3、 附带文本数据,比如通过"浏览"选择本地的card.txt并上传发送post请求,其中-F 为带文件的形式发送post请求,blob为文本框中的name元素对应的属性值 9 X8 n' m8 w2 X% a: {! s 8 ]+ D! {/ m9 A5 O9 A K #curl -F "blob=@card.txt;type=text/plain" "http://172.16.102.208:8089/wiapi/score?leaderboard_id=7778a8143f111272&score=40&app_key=8d49f16fe034b98b&_test_user=test01" ; v6 m0 ]& O/ Y- B) @! g) m

: s8 Q- W }) F

4、curl调试时常用命令:curl -o /home/1.txt -s -w %{time_connect}:%{time_starttransfer}:%{time_total}\n http://10.92.xx.xx/nwpp/9 m' m% R* R! ] t

& {5 ^& A. O) P) n

这里可以看到有6次异常,4次正常,证明url访问不是很稳定。后面可以考虑让开发写个jar包去检测每个节点的访问情况。

7 [& v E4 K" V+ p0 t

大家如果碰到url告警方面的问题可以考虑自己写一些命令参数,然后去请求特定url来判断问题,整体逻辑都差不多。后面会分享更多关于平时工作中碰到问题的一些解决办法,感兴趣的朋友可以关注下!

' p; A G/ Q. g$ I& Q 9 Q3 L! D8 C2 \; ?) k; e# P4 N! @ - S/ r$ |6 l/ s, S4 W5 F 1 u Z1 Y9 d; T3 J % g, f. z6 O0 f* _' H% y3 J
回复

使用道具 举报

店小二 发表于 2026-06-03 16:38:44 | 显示全部楼层
完全赞同,我也是这么认为的,英雄所见略同~
回复 支持 反对

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-6-14 17:15 , Processed in 0.022494 second(s), 23 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表