Linux如何实现自动化日志巡检_Linux日志巡检脚本

2次阅读

通过编写 Shell 脚本可实现 Linux 日志自动化巡检,1. 聚焦系统错误、认证失败、服务重启及内存磁盘告警等关键信息;2. 使用 grep 提取 /var/log/messages 和 secure 等文件中的异常记录;3. 将结果输出至临时文件并支持邮件通知与定时任务,提升运维效率。

Linux 如何实现自动化日志巡检_Linux 日志巡检脚本

在 Linux 系统运维中,日志巡检是发现问题、排查故障的重要手段。手动查看日志费时费力,通过编写自动化脚本可以高效完成日志巡检任务。下面介绍如何实现一个实用的 Linux 日志巡检脚本。

明确巡检目标

日志巡检不是盲目地读取所有内容,而是聚焦关键信息。常见巡检目标包括:

  • 系统错误日志 :如 /var/log/messages、/var/log/syslog 中的 ERROR、CRITICAL 关键字
  • 认证失败记录 :/var/log/secure 或 /var/log/auth.log 中的 Failed password、Invalid user
  • 服务异常重启 :特定服务(如 nginxmysql)日志中的启动或崩溃信息
  • 磁盘或内存告警 :日志中出现 Out of memory、disk full 等提示

确定目标后,脚本可以有针对性地提取和分析这些信息。

编写基础巡检脚本

以下是一个简单的 Shell 脚本示例,实现基本的日志巡检功能:

Linux 如何实现自动化日志巡检_Linux 日志巡检脚本

Reclaim.ai

为优先事项创建完美的时间表

Linux 如何实现自动化日志巡检_Linux 日志巡检脚本 90

查看详情 Linux 如何实现自动化日志巡检_Linux 日志巡检脚本

!/bin/bash

日志巡检脚本

LOG_DIR=”/var/log”
OUTPUT=”/tmp/logcheck$(date +%Y%m%d).txt”

echo “ 开始日志巡检: $(date)” > $OUTPUT
echo “================================” >> $OUTPUT

检查系统日志中的错误

echo “【系统错误】” >> $OUTPUT
grep -i -E “error|fail|critical|warning” $LOG_DIR/messages 2>/dev/null | tail -20 >> $OUTPUT

检查登录认证失败

echo -e “n【登录失败】” >> $OUTPUT
grep -i “Failed password” $LOG_DIR/secure 2>/dev/null | awk ‘{print $1,$2,$3,$9,$11}’ | tail -20 >> $OUTPUT

检查是否有 oom-killer 记录

echo -e “n【内存溢出】” >> $OUTPUT
grep -i “out of memory” $LOG_DIR/messages 2>/dev/null >> $OUTPUT

输出完成提示

echo -e “n 巡检完成,结果保存至: $OUTPUT”

将上述内容保存为 log_check.sh,赋予执行权限:
chmod +x log_check.sh,然后运行即可生成巡检报告。

增强脚本实用性

为了让脚本更贴近实际使用,可加入以下改进:

  • 邮件通知 :通过 mail 命令将结果发送给管理员
    mail -s " 日志巡检报告 " admin@company.com < $OUTPUT
  • 定时执行 :使用 crontab 每天自动运行
    0 8 * * * /path/to/log_check.sh(每天上午 8 点执行)
  • 高亮关键词 :用 sed 或 echo 配合颜色输出,便于识别
  • 支持多日志路径 :根据发行版判断日志位置(如 Ubuntu 用 syslog,CentOS 用 messages)

注意事项

编写和运行日志巡检脚本时需注意:

  • 确保脚本以 root 或具备日志读取权限的用户运行
  • 避免频繁扫描大文件,影响系统性能
  • 敏感信息(如 IP、用户名)可在输出前脱敏处理
  • 定期清理临时输出文件,防止占用空间

基本上就这些。一个简单有效的日志巡检脚本不需要复杂逻辑,关键是稳定、可读、可持续运行。结合系统 cron 和邮件提醒,就能实现基础的自动化巡检能力。不复杂但容易忽略。

星耀云
版权声明:本站原创文章,由 星耀云 2025-12-02发表,共计1535字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources