Linux swatch 命令详解:用于实时监视系统日志文件,并在检测到特定模式的日志时触发预定义的操作(如发送邮件、执行脚本等)

Linux swatch 命令详解

一、命令简介

swatchSimple WATCHer)是一款日志监控工具,用于实时监视系统日志文件,并在检测到特定模式的日志时触发预定义的操作(如发送邮件、执行脚本等)。它适用于监控系统安全日志、应用程序日志、网络流量日志等。

swatch 主要基于Perl 编写,并使用正则表达式匹配日志内容,可以对日志文件进行高效的筛选、报警和处理。


二、命令语法
swatch [选项]

或者:

swatch --config-file <配置文件> --tail-file <日志文件>

三、命令选项
选项作用
--config-file <文件>指定 swatch 配置文件。
--tail-file <文件>指定要监视的日志文件。
--daemon以守护进程模式运行 swatch
--pid-file <文件>指定 swatch 进程 ID 文件。
--script-dir <目录>设置 swatch 存放临时脚本的目录。
--verbose输出详细信息。
--version显示 swatch 版本信息。

四、常见用法
1. 监视 /var/log/syslog 并输出匹配的日志
swatch --tail-file /var/log/syslog

此命令会持续监视 /var/log/syslog,并在终端显示所有匹配的日志。

2. 使用配置文件启动 swatch
swatch --config-file /etc/swatch.conf --tail-file /var/log/auth.log

/etc/swatch.conf 读取规则,并监视 /var/log/auth.log 文件。

3. 后台运行 swatch
swatch --config-file /etc/swatch.conf --tail-file /var/log/messages --daemon

以守护进程模式运行 swatch,监视 /var/log/messages 日志文件。

4. swatch 监控到特定日志时发送邮件

可以在 swatch 配置文件中指定 mail 操作,例如:

watchfor /Failed password/
    mail=root@localhost, subject="SSH Login Failure"

然后执行:

swatch --config-file /etc/swatch.conf --tail-file /var/log/auth.log

当检测到 Failed password 记录时,swatch 会发送邮件通知管理员。

5. 检测 SSH 登录失败并执行报警

/etc/swatch.conf 中添加:

watchfor /Failed password/
    exec /usr/bin/say "Unauthorized login attempt detected"

运行:

swatch --config-file /etc/swatch.conf --tail-file /var/log/auth.log

当检测到 SSH 失败登录日志时,执行 /usr/bin/say 命令进行报警。


五、swatch 配置文件示例

创建 /etc/swatch.conf 并添加以下内容:

watchfor /Failed password/
    echo bold red
    mail admin@example.com, subject="SSH Login Failure Detected"

watchfor /error|fail|critical/
    echo bold yellow
    bell 3

该配置的作用:

  • 监测 Failed password,红色高亮输出,并邮件通知 admin@example.com

  • 监测 errorfailcritical 关键字,黄色高亮输出,并响铃 3 次。

启动 swatch

swatch --config-file /etc/swatch.conf --tail-file /var/log/auth.log

六、常见问题及解决方案
1. swatch: command not found

原因:未安装 swatch
解决方案:根据系统类型安装:

# Debian/Ubuntu
sudo apt install swatch

# CentOS/RHEL
sudo yum install swatch

# Arch Linux
sudo pacman -S swatch
2. 无法监视日志文件

原因:可能没有权限访问日志文件。
解决方案

sudo swatch --config-file /etc/swatch.conf --tail-file /var/log/auth.log
3. 邮件未发送

原因:邮件服务未配置。
解决方案:确保系统安装并启用了 postfixsendmail

sudo systemctl restart postfix

七、应用场景
  • 安全监控:监视 /var/log/auth.log,检测 SSH 登录失败、su 命令使用等异常行为。

  • 系统运维:监视 /var/log/syslog/var/log/messages,检测关键错误信息。

  • 应用日志监控:对 Nginx、Apache、MySQL 日志进行实时分析,自动触发报警或执行自动修复措施。


八、总结
  • swatch 是一个实时日志监控工具,支持 模式匹配 并执行 报警、邮件通知、脚本执行等操作

  • 使用 --config-file 指定规则,结合 --tail-file 监控日志。

  • 配置文件支持 颜色高亮、邮件通知、命令执行 等操作。

  • 适用于 安全日志监控、系统运维、应用日志分析 等场景。

这里是封面:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值