如何筛选Debian JS日志
导读:Debian 环境下筛选 JavaScript 日志的实用方法 一 定位日志来源 先确认日志落在哪里:Node.js 应用常写入应用目录下的 app.log / error.log,或由 systemd 托管写入 journal;前端或...
Debian 环境下筛选 JavaScript 日志的实用方法
一 定位日志来源
- 先确认日志落在哪里:Node.js 应用常写入应用目录下的 app.log / error.log,或由 systemd 托管写入 journal;前端或 Nginx/Apache 场景则常见于 /var/log/nginx/error.log、/var/log/apache2/error.log,系统级事件在 /var/log/syslog。
- 快速定位命令示例:
- 列出包含“node”的进程与可能的日志路径:
- ps aux | grep node
- lsof -p | grep log
- 查看 systemd 服务日志:
- journalctl -u < service_name>
- 粗略查找日志文件:
- grep -R “your-app-name” /var/log 2> /dev/null
- 列出包含“node”的进程与可能的日志路径:
- 以上路径与方式适用于 Debian 上常见的 JS(Node.js、前端、Web 服务器集成)日志分布。
二 命令行快速筛选
- 基础筛选(文件/管道均可):
- 按关键词:grep -i ‘error’ app.log
- 多关键词:grep -E ‘error|warn|exception’ app.log
- 排除噪声:grep -v ‘heartbeat|ping’ app.log
- 仅匹配整词:grep -w ‘timeout’ app.log
- 上下文与统计:
- 上下文前后各 5 行:grep -C 5 ‘error’ app.log
- 统计出现次数:grep -o ‘error’ app.log | wc -l
- 时间范围与实时:
- 查看最近 100 行并持续跟踪:tail -n 100 -f app.log
- 按时间过滤(systemd):journalctl -u < service_name> --since “2025-12-12 00:00:00” --until “2025-12-12 12:00:00”
- 结构化日志(JSON):
- 提取字段:jq -r ‘select(.level==“error”) | .message’ app.log
- 多条件:jq -r ‘select(.level==“error” and .service==“api”) | { ts:.ts, msg:.message} ’ app.log
- 以上命令覆盖 Debian 上常用的文本筛选、正则、实时跟踪与 JSON 解析需求。
三 按场景给出可直接使用的命令组合
- Node.js 服务(systemd 托管):
- 实时查看错误级别日志并按时间窗口:
- journalctl -u my-node-app -f -S “10 minutes ago” | grep -i ‘error’
- 实时查看错误级别日志并按时间窗口:
- Nginx 访问/错误日志:
- 统计 4xx/5xx 状态码:
- awk ‘$9 > = 400 { count[$9]++} END { for(c in count) print c, count[c]} ’ /var/log/nginx/access.log
- 查看某时段错误详情:
- grep ’ 500 ’ /var/log/nginx/error.log | grep “2025-12-12”
- 统计 4xx/5xx 状态码:
- 前端静态资源或 Node.js 产出的 JSON 日志:
- 提取当天所有错误并附带时间:
- jq -r --arg d “2025-12-12” ‘select(.level==“error” and .ts?|startswith($d)) | “(.ts) (.message)”’ app.log
- 提取当天所有错误并附带时间:
- 以上组合可直接粘贴执行,按你的实际服务名、时间格式与日志字段名微调。
四 长期分析与可视化
- 日志轮转与容量控制:使用 logrotate 定期切分与压缩日志,避免单文件过大影响筛选性能。
- 集中化与可视化:搭建 ELK Stack(Elasticsearch + Logstash + Kibana) 或 Graylog,将多台机器的 JS 日志统一收集、检索与仪表板展示。
- 监控与告警:结合 Prometheus + Alertmanager 或 Nagios 对错误率、延迟等关键指标设置阈值告警。
- 以上方案适合日志量大、多实例或需要团队协作与历史回溯的场景。
五 排错清单
- 权限不足:用 sudo 或将当前用户加入 adm 组以读取 /var/log 与 journal。
- 路径或文件名错误:用 ps、lsof 确认实际日志路径与文件句柄。
- 时间格式不一致:先用 head/tail 观察样例,再调整 journalctl --since/–until 或 jq 的时间解析。
- 结构化解析失败:确认日志为合法 JSON,或在 jq 前用 sed/grep 做预处理。
- 日志过大导致性能差:先用 head/tail/grep -m 缩小范围,再执行复杂分析;必要时先归档旧日志。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何筛选Debian JS日志
本文地址: https://pptw.com/jishu/770856.html
