当前位置:首页 > Centos > 正文

CentOS日志分析脚本(新手入门指南:轻松掌握Linux系统日志自动化监控)

在运维工作中,CentOS日志分析脚本是排查系统问题、监控安全事件和优化性能的重要工具。对于刚接触Linux的新手来说,日志文件看起来可能杂乱无章,但通过编写简单的脚本,我们可以快速提取关键信息,实现自动化日志分析

CentOS日志分析脚本(新手入门指南:轻松掌握Linux系统日志自动化监控) CentOS日志分析脚本  Linux系统日志 日志监控工具 自动化日志分析 第1张

一、CentOS常见日志文件位置

在开始写脚本前,先了解CentOS中常用的日志文件:

  • /var/log/messages:系统全局日志,记录内核、服务等通用信息
  • /var/log/secure:SSH登录、认证相关日志
  • /var/log/cron:定时任务日志
  • /var/log/dmesg:内核环形缓冲区消息
  • /var/log/yum.log:YUM包管理器操作日志

二、编写第一个日志分析脚本

下面我们将创建一个简单的Bash脚本,用于分析最近1小时内SSH失败登录尝试次数,这是Linux系统日志中最常见的安全监控需求之一。

步骤1:创建脚本文件

sudo nano /usr/local/bin/ssh_fail_check.sh

步骤2:编写脚本内容

#!/bin/bash# CentOS SSH失败登录分析脚本# 功能:统计最近1小时内的SSH失败登录次数LOG_FILE="/var/log/secure"ONE_HOUR_AGO=$(date -d "1 hour ago" +"%b %d %H:%M")CURRENT_TIME=$(date +"%b %d %H:%M")# 使用awk和grep组合提取最近1小时的Failed password记录FAIL_COUNT=$(awk -v start="$ONE_HOUR_AGO" -v end="$CURRENT_TIME" 'BEGIN {  split(start, s_arr, " ");  split(end, e_arr, " ");}{  log_time = $1 " " $2 " " $3;  if (log_time >= start && log_time <= end) {    print $0;  }}' "$LOG_FILE" | grep "Failed password" | wc -l)# 输出结果echo "[INFO] $(date): 最近1小时内SSH失败登录次数: $FAIL_COUNT"# 如果失败次数超过10次,输出警告if [ $FAIL_COUNT -gt 10 ]; then  echo "[WARNING] 检测到异常登录尝试!请检查系统安全。"fi

步骤3:赋予执行权限并测试

chmod +x /usr/local/bin/ssh_fail_check.sh/usr/local/bin/ssh_fail_check.sh

三、进阶:定时自动运行日志分析

为了让脚本定期运行,我们可以使用cron定时任务。例如,每小时执行一次:

# 编辑当前用户的cron任务sudo crontab -e# 添加以下行(每小时整点执行)0 * * * * /usr/local/bin/ssh_fail_check.sh >> /var/log/ssh_monitor.log 2>&1

四、其他实用日志分析技巧

除了SSH监控,你还可以用类似方法分析其他日志:

  • 系统错误分析:使用 grep -i "error" /var/log/messages
  • 磁盘空间告警:结合 df -h 和日志记录
  • 服务崩溃检测:监控 /var/log/messages 中的 segfault 或 killed 信息

五、总结

通过本文,你已经掌握了如何编写一个基础的CentOS日志分析脚本,并学会了将其集成到定时任务中实现日志监控工具的功能。随着经验积累,你可以扩展脚本功能,比如发送邮件告警、生成可视化报告等,真正实现自动化日志分析

提示:在生产环境中使用前,请务必在测试环境充分验证脚本逻辑,避免对系统造成意外影响。