Linux实时监控日志文件的swatchdog

1. 前言

本教程主要讲解在Linux系统中如何使用swatchdog实时监控日志文件的变化。

swatchdog(Simple WATCH DOG)是一个简单的Perl脚本,用于监视类Unix系统(比如Linux)上的活动日志文件。它根据可以在配置文件中定义的正则表达式监控日志。您可以从命令行或后台运行它,使用daemon模式选项在后台运行。

请注意,该程序最初名为swatch(Simple Watcher翻译为简单的观察者),但在这家老牌瑞士手表公司要求更改名称时,开发人员将其名称改为swatchdog。

重要的是,swatchdog是从一个用于监视Unix syslog工具生成的日志的脚本发展起来的,它可以监视任何类型的日志。

2. 在Linux系统上如何安装Swatch

swatchdog安装程序可以从主流Linux发行版的官方软件仓库中通过包管理器安装swatch,如下所示。

基于Ubuntu/Debian系统

sudo apt install swatch

基于RHEL/CentOS系统

sudo yum install epel-release && sudo yum install swatch

Fedora 22+

sudo dnf install swatch

要安装swatchdog的最新版本,您可以在任何Linux发行版中使用以下命令从源代码编译它。

git clone https://github.com/ToddAtkins/swatchdog.git
cd swatchdog/
perl Makefile.PL
make
sudo make install
sudo make realclean

3. 如何使用swatch监控日志文件变化

安装了swatch之后,需要创建它的配置文件(默认位置是/home/$USER/.swatchdogrc或者.swatchrc)。以确定要查找的表达式模式的类型,以及在匹配模式时应该采取的操作类型。

touch /home/tecmint/.swatchdogrc

或者

touch /home/tecmint/.swatchrc

将正则表达式添加到此文件中,每行应该包含一个关键字和值(有时是可选的),以空格或等号(=)分隔。您需要指定关键字和匹配内容时要采取的操作。

我们将使用一个简单的配置文件,例如,您可以在swatchdog man页面中找到更多的选项。

watchfor  /sudo/
    echo red
    mail=admin@tecmint.com, subject="Sudo Command"

我们的正则表达式是一个文字字符串—sudo,意味着任何时候字符串sudo出现在日志文件,将以输出red到终端和邮件,这是指定要采取行动。

配置完成后,swatchdog将默认读取/var/log/syslog日志文件,如果该文件不存在,它将读取/var/log/messages。

基于RHEL/CentOS & Fedora

swatch

基于Ubuntu/Debian

swatchdog

可以使用-c选项指定一个不同的配置文件,如下面的示例所示。

首先创建一个swatch配置目录和一个文件。

mkdir swatch
touch swatch/secure.conf

接下来,在该文件中添加以下配置,以监控失败和成功的ssh登录尝试,日志文件位置在/var/log/secure。

watchfor /FAILED/
echo red
mail=admin@tecmint.com, subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
mail=admin@tecmint.com, subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
mail=admin@tecmint.com, subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
mail=admin@tecmint.com, subject="Successful SSH Root Login"

现在,通过使用-c指定配置文件并使用-t选项指定日志文件来运行swatch,如下所示。

swatchdog -c ~/swatch/secure.conf -t /var/log/secure

要在后台运行它,可以使用-daemon选项,它将在后台运行。

swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon

现在,要测试swatch配置,请尝试从不同的终端登录到服务器,您将看到以下输出

*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018

Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)

您还可以运行多个swatch进程来监控各种日志文件。

swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon  
swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon
swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemon

有关更多信息,请查看swatchdog man页面。

man swatchdog

4. 总结
swatchdog是一个简单的活动日志文件监控工具,适用于类unix系统,比如Linux。如果你有更好工具,请留言分享您的经验。



参考链接 :
Linux实时监控日志文件的变化程序之swatchdog

https://www.linuxrumen.com/cyml/1710.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值