Appearance
排查工具使用指南
技术支持工作中常用的排查工具
概述
本文档介绍了技术支持工作中常用的排查工具及其使用方法,帮助快速定位和解决问题。
网络工具
curl - HTTP 请求测试
bash
# 基本 GET 请求
curl https://api.example.com/v1/health
# 带 Header 的请求
curl -H "Authorization: Bearer token" \
-H "Content-Type: application/json" \
https://api.example.com/v1/users
# POST 请求
curl -X POST \
-H "Content-Type: application/json" \
-d '{"name":"test"}' \
https://api.example.com/v1/users
# 查看响应头
curl -I https://api.example.com/v1/health
# 跟随重定向
curl -L https://api.example.com/v1/health
# 显示详细输出
curl -v https://api.example.com/v1/healthPostman / HTTPie
HTTPie 常用命令:
bash
# GET 请求
http GET https://api.example.com/v1/users
# POST 请求
http POST https://api.example.com/v1/users name=test email=test@example.com
# 带认证
http GET https://api.example.com/v1/users Authorization:"Bearer token"
# 表单提交
http -f POST https://api.example.com/v1/upload file@/path/to/file.txt数据库工具
MySQL 客户端
bash
# 连接数据库
mysql -h host -u user -p database
# 执行 SQL 文件
mysql -u user -p database < script.sql
# 常用查询
SHOW PROCESSLIST; -- 查看当前连接
SHOW FULL PROCESSLIST; -- 查看完整查询
KILL QUERY <id>; -- 终止查询
EXPLAIN SELECT * FROM table; -- 分析查询计划Redis 客户端
bash
# 连接 Redis
redis-cli -h host -p port
# 常用命令
KEYS * -- 查看所有键
GET key -- 获取键值
SET key value -- 设置键值
DEL key -- 删除键
EXPIRE key 3600 -- 设置过期时间
INFO -- 查看信息
MONITOR -- 实时监控(谨慎使用)日志工具
grep - 文本搜索
bash
# 搜索包含关键词的行
grep "ERROR" /var/log/app.log
# 忽略大小写
grep -i "error" /var/log/app.log
# 显示前后行
grep -C 3 "ERROR" /var/log/app.log
# 统计出现次数
grep -c "ERROR" /var/log/app.log
# 正则表达式搜索
grep -E "ERROR|WARN" /var/log/app.log
# 反向搜索(排除)
grep -v "DEBUG" /var/log/app.logawk - 文本处理
bash
# 提取特定列
awk '{print $1, $2}' /var/log/app.log
# 按条件过滤
awk '$3 == "ERROR" {print $0}' /var/log/app.log
# 统计
awk '{count[$3]++} END {for (word in count) print word, count[word]}' /var/log/app.logsed - 流编辑器
bash
# 替换文本
sed 's/old/new/g' file.txt
# 删除行
sed '/pattern/d' file.txt
# 按行号操作
sed '1,10d' file.txt # 删除 1-10 行
sed -n '5,10p' file.txt # 打印 5-10 行性能工具
top / htop
bash
# 查看进程
ps aux --sort=-%cpu | head -20 # CPU 占用最高的进程
ps aux --sort=-%mem | head -20 # 内存占用最高的进程
# 查看线程
ps -T -p <pid> # 查看指定进程的线程strace - 系统调用跟踪
bash
# 跟踪进程
strace -p <pid>
# 跟踪并输出到文件
strace -o output.log -p <pid>
# 跟踪特定系统调用
strace -e open,read,write -p <pid>Docker 工具
常用命令
bash
# 查看容器
docker ps
docker ps -a
# 查看日志
docker logs -f container_id
docker logs --tail 100 container_id
# 进入容器
docker exec -it container_id /bin/bash
# 查看资源使用
docker stats
# 查看网络
docker network ls
docker inspect container_id浏览器开发者工具
Network 面板
用于分析 HTTP 请求:
查看请求详情
- 请求 URL、方法、状态码
- 请求头、响应头
- 请求体、响应体
分析性能
- 请求耗时 breakdown
- 瀑布图分析
模拟网络条件
- 慢速 3G
- 离线模式
Console 面板
javascript
// 查看日志
console.log('message');
console.error('error');
console.table(data);
// 网络请求
fetch('/api/health')
.then(r => r.json())
.then(data => console.log(data));在线工具
| 工具 | 用途 | 地址 |
|---|---|---|
| JSON 格式化 | 格式化 JSON 数据 | jsonformatter.org |
| Base64 编解码 | 编码/解码 Base64 | base64decode.org |
| URL 编解码 | 编码/解码 URL | urldecoder.org |
| 正则表达式 | 测试正则表达式 | regex101.com |
| 时间戳转换 | 时间戳与日期互转 | unixtimestamp.com |
| Diff 比较 | 文本差异比较 | diffchecker.com |