温馨提示×

Linux nohup日志监控工具推荐

小樊
40
2026-01-11 09:00:33
栏目: 智能运维

Linux nohup 日志监控工具推荐

一 内置命令组合

  • 实时查看:使用 tail -ftail -F 跟踪日志新增内容;当日志被轮转或改名时,-F(–follow=name --retry) 会继续追踪,-f 可能中断。示例:tail -f app.log 或 tail -F app.log。
  • 关键字高亮与过滤:结合 grep 实时筛选,如 tail -f app.log | grep --color=auto -i “error”;仅输出匹配部分可用 grep -o
  • 进程存活检查:用 ps -ef | grep your_commandpgrep your_command 确认进程是否在运行。
  • 快速定位与排查:用 grep/awk/sed 检索关键字、按时间窗口分析,配合 vim/nano 查看上下文。
  • 后台持续过滤:将过滤结果长期写入文件,如 nohup tail -f app.log | grep “error” > error.log 2>&1 &。
    以上命令适合“轻量、即开即用”的日常排查与值守场景。

二 系统级日志轮转与归档

  • 使用 logrotate 做按大小或按天轮转、压缩与保留策略,避免 nohup.out 或业务日志无限增长。示例配置(/etc/logrotate.d/myapp):
    /path/to/app.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 root root
    size 100M
    }
    说明:daily 表示按天轮转;rotate 7 保留最近 7 份;compress 压缩旧日志;size 100M 达到 100MB 触发轮转;create 设定新日志权限与属主。可手动测试:logrotate -f /etc/logrotate.conf。
  • 权限与安全:日志文件建议权限 640/600,防止非授权访问。
  • 归档压缩:历史日志可用 gzip 归档节省空间。
    该方案适合长期运行服务的生产环境,稳定、低开销、可审计。

三 集中式日志平台

  • 当服务器数量多、日志分散时,建议引入 ELK Stack(Elasticsearch、Logstash、Kibana)Graylog 做集中采集、检索、可视化与告警。
  • 典型做法:应用将日志写入本地文件(nohup 输出或日志框架),由 Filebeat/rsyslog 等采集器发送到 Logstash/Elasticsearch,在 Kibana 中构建仪表盘与阈值告警。
  • 适用场景:跨主机统一检索、指标与错误趋势分析、合规审计与长期留存。
    集中式方案在复杂环境中能显著提升可观测性与运维效率。

四 轻量监控与告警脚本

  • 关键字触发告警:实时扫描并高亮错误,同时写入告警日志。示例:
    tail -F app.log | while IFS= read -r line; do
    echo “$line” | grep -q -i “error” && \ echo “$(date ‘+%F %T’) ALERT: $line” >> alerts.log
    done
  • 定期模式匹配:用 cron 每分钟检查一次并将匹配行追加到告警文件:
            • grep -o “pattern” /path/to/app.log >> alerts.log 2>&1
  • 日志大小守护:当日志超过阈值时自动备份并清空,避免磁盘被写满。示例脚本思路:
    LOG=/path/to/app.log; MAX=100M
    [ -f “$LOG” ] && [ “$(stat -c%s “$LOG”)” -gt “$(echo $MAX | numfmt --from=iec)” ] && \ mv “$LOG” “$LOG.$(date +%F-%H%M%S)” && touch “$LOG”
    以上脚本便于快速落地“关键字告警 + 容量守护”,适合中小规模或临时值守。

五 选型建议与快速命令清单

  • 选型建议
    • 临时排查与单机值守:优先用 tail -f/-F + grep/awk/sed
    • 稳定生产单机:加上 logrotate 做轮转与压缩。
    • 多机与长期可观测:上 ELK/Graylog 集中化。
    • 需要自动化告警:用 shell + cron 或轻量监控框架做关键字与容量告警。
  • 快速命令清单
    • 启动并记录:nohup your_cmd > app.log 2>&1 &
    • 实时跟踪:tail -f app.log;文件可能被轮转时用 tail -F app.log
    • 只看错误:tail -f app.log | grep -i “error”
    • 进程检查:ps -ef | grep your_cmd
    • 轮转配置示例:创建 /etc/logrotate.d/myapp,内容含 daily、rotate 7、compress、size 100M、create 640 root root
      这些命令覆盖从启动、查看、过滤到轮转与告警的高频操作,可直接复制到终端使用。

0