log-analysis

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Log Analysis

日志分析

When to use this skill

何时使用该技能

  • 오류 디버깅: 애플리케이션 오류 원인 분석
  • 성능 분석: 응답 시간, 처리량 분석
  • 보안 감사: 비정상 접근 패턴 탐지
  • 인시던트 대응: 장애 발생 시 원인 조사
  • 错误调试:分析应用错误原因
  • 性能分析:分析响应时间、吞吐量
  • 安全审计:检测异常访问模式
  • 事件响应:故障发生时调查原因

Instructions

操作说明

Step 1: 로그 파일 위치 파악

步骤1:确定日志文件位置

bash
undefined
bash
undefined

일반적인 로그 위치

常见日志位置

/var/log/ # 시스템 로그 /var/log/nginx/ # Nginx 로그 /var/log/apache2/ # Apache 로그 ./logs/ # 애플리케이션 로그
undefined
/var/log/ # 系统日志 /var/log/nginx/ # Nginx日志 /var/log/apache2/ # Apache日志 ./logs/ # 应用日志
undefined

Step 2: 에러 패턴 검색

步骤2:搜索错误模式

일반 에러 검색:
bash
undefined
一般错误搜索:
bash
undefined

ERROR 레벨 로그 검색

搜索ERROR级别日志

grep -i "error|exception|fail" application.log
grep -i "error|exception|fail" application.log

최근 에러 (마지막 100줄)

最近错误(最后100行)

tail -100 application.log | grep -i error
tail -100 application.log | grep -i error

타임스탬프 포함 에러

包含时间戳的错误

grep -E "^[.*ERROR" application.log

**HTTP 에러 코드**:
```bash
grep -E "^[.*ERROR" application.log

**HTTP错误代码**:
```bash

5xx 서버 에러

5xx服务器错误

grep -E "HTTP/[0-9.]+ 5[0-9]{2}" access.log
grep -E "HTTP/[0-9.]+ 5[0-9]{2}" access.log

4xx 클라이언트 에러

4xx客户端错误

grep -E "HTTP/[0-9.]+ 4[0-9]{2}" access.log
grep -E "HTTP/[0-9.]+ 4[0-9]{2}" access.log

특정 에러 코드

特定错误代码

grep "HTTP/1.1" 500" access.log
undefined
grep "HTTP/1.1" 500" access.log
undefined

Step 3: 패턴 분석

步骤3:模式分析

시간별 분석:
bash
undefined
按时间分析:
bash
undefined

시간대별 에러 카운트

按时间段统计错误数量

grep -i error application.log | cut -d' ' -f1,2 | sort | uniq -c | sort -rn
grep -i error application.log | cut -d' ' -f1,2 | sort | uniq -c | sort -rn

특정 시간대 로그

特定时间段日志

grep "2025-01-05 14:" application.log

**IP별 분석**:
```bash
grep "2025-01-05 14:" application.log

**按IP分析**:
```bash

IP별 요청 수

按IP统计请求数

awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20

특정 IP 활동

特定IP活动

grep "192.168.1.100" access.log
undefined
grep "192.168.1.100" access.log
undefined

Step 4: 성능 분석

步骤4:性能分析

응답 시간 분석:
bash
undefined
响应时间分析:
bash
undefined

Nginx 로그에서 응답 시간 추출

从Nginx日志提取响应时间

awk '{print $NF}' access.log | sort -n | tail -20
awk '{print $NF}' access.log | sort -n | tail -20

느린 요청 (1초 이상)

慢请求(1秒以上)

awk '$NF > 1.0 {print $0}' access.log

**요청량 분석**:
```bash
awk '$NF > 1.0 {print $0}' access.log

**请求量分析**:
```bash

분당 요청 수

每分钟请求数

awk '{print $4}' access.log | cut -d: -f1,2,3 | uniq -c
awk '{print $4}' access.log | cut -d: -f1,2,3 | uniq -c

엔드포인트별 요청 수

按端点统计请求数

awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -20
undefined
awk '{print $7}' access.log | sort | uniq -c | sort -rn | head -20
undefined

Step 5: 보안 분석

步骤5:安全分析

의심스러운 패턴:
bash
undefined
可疑模式:
bash
undefined

SQL Injection 시도

SQL注入尝试

grep -iE "(union|select|insert|update|delete|drop).*--" access.log
grep -iE "(union|select|insert|update|delete|drop).*--" access.log

XSS 시도

XSS尝试

grep -iE "<script|javascript:|onerror=" access.log
grep -iE "<script|javascript:|onerror=" access.log

디렉토리 트래버설

目录遍历

grep -E "../" access.log
grep -E "../" access.log

무차별 대입 공격

暴力破解攻击

grep -E "POST.*/login" access.log | awk '{print $1}' | sort | uniq -c | sort -rn
undefined
grep -E "POST.*/login" access.log | awk '{print $1}' | sort | uniq -c | sort -rn
undefined

Output format

输出格式

분석 리포트 구조

分析报告结构

markdown
undefined
markdown
undefined

로그 분석 리포트

日志分析报告

요약

摘要

  • 분석 기간: YYYY-MM-DD HH:MM ~ YYYY-MM-DD HH:MM
  • 총 로그 라인: X,XXX
  • 에러 수: XXX
  • 경고 수: XXX
  • 分析时间段: YYYY-MM-DD HH:MM ~ YYYY-MM-DD HH:MM
  • 总日志行数: X,XXX
  • 错误数量: XXX
  • 警告数量: XXX

에러 분석

错误分析

에러 유형발생 횟수최근 발생
Error A1502025-01-05 14:30
Error B452025-01-05 14:25
错误类型发生次数最近发生时间
Error A1502025-01-05 14:30
Error B452025-01-05 14:25

권장 조치

建议措施

  1. [조치 1]
  2. [조치 2]
undefined
  1. [措施1]
  2. [措施2]
undefined

Best practices

最佳实践

  1. 시간 범위 지정: 분석할 시간 범위를 명확히 설정
  2. 패턴 저장: 자주 사용하는 grep 패턴 스크립트화
  3. 컨텍스트 확인: 에러 전후 로그도 함께 확인 (
    -A
    ,
    -B
    옵션)
  4. 로그 로테이션: 압축된 로그도 zgrep으로 검색
  1. 指定时间范围: 明确设置要分析的时间范围
  2. 保存模式: 将常用的grep模式编写为脚本
  3. 查看上下文: 同时查看错误前后的日志(使用
    -A
    ,
    -B
    选项)
  4. 日志轮转: 使用zgrep搜索压缩后的日志

Constraints

约束条件

필수 규칙 (MUST)

必须遵守的规则(MUST)

  1. 읽기 전용 작업만 수행
  2. 민감한 정보(비밀번호, 토큰) 마스킹
  1. 仅执行只读操作
  2. 对敏感信息(密码、令牌)进行掩码处理

금지 사항 (MUST NOT)

禁止事项(MUST NOT)

  1. 로그 파일 수정 금지
  2. 민감 정보 외부 노출 금지
  1. 禁止修改日志文件
  2. 禁止泄露敏感信息

References

参考资料

Examples

示例

Example 1: Basic usage

示例1:基础用法

<!-- Add example content here -->
<!-- 添加示例内容 -->

Example 2: Advanced usage

示例2:高级用法

<!-- Add advanced example content here -->
<!-- 添加高级示例内容 -->