Swatchdog (“ Simple WATCH DOG ”)是一个简单的Perl脚本,用于监视类Unix系统(如Linux)上的活动日志文件。 它根据您可以在配置文件中定义的正则表达式来监视日志。 您可以从命令行或后台运行它,使用守护程序模式选项从任何终端分离。
请注意,该程序最初称为swatch (“ 简单观察者 ”),但旧瑞士手表公司要求更改名称后,开发人员将其名称更改为swatchdog 。
另请参阅 : 4个适用于Linux的开源日志监控和管理工具
重要的是, swatchdog已经从用于监视Unix的syslog工具生成的日志的脚本发展而来,它可以监视任何类型的日志。
如何在Linux中安装Swatch
软件包swatchdog可以从主流Linux发行版的官方存储库中通过软件包管理器“ swatch ”安装,如图所示。
$ sudo apt install swatch [On Ubuntu/Debian] $ sudo yum install epel-release && sudo yum install swatch [On RHEL/CentOS] $ sudo dnf install swatch [On Fedora 22+]
要安装最新版本的swatchdog ,需要在任何Linux发行版中使用以下命令从源代码编译它。
$ git clone https://github.com/ToddAtkins/swatchdog.git $ cd swatchdog/ $ perl Makefile.PL $ make $ sudo make install $ sudo make realclean
安装样本后 ,需要创建其配置文件(默认位置为/home/$USER/.swatchdogrc或.swatchrc ),以确定要查找的表达式模式类型以及应采取的操作类型在模式匹配时采取。
$ touch /home/youcl/.swatchdogrc OR $ touch /home/youcl/.swatchrc
在此文件中添加正则表达式,每行应包含一个关键字和值(有时是可选的),用空格或等号(=)
分隔。 您需要指定模式以及匹配模式时要采取的操作。
我们将使用一个简单的配置文件,您可以在swatchdog手册页中找到更多选项。
watchfor /sudo/ echo red [email protected], subject="Sudo Command"
这里,我们的正则表达式是一个文字字符串 - “sudo” ,意思是任何时候字符串sudo出现在日志文件中,将以红色文本打印到终端并且邮件指定要采取的操作,这是回显匹配的终端上的模式,并接受地发送电子邮件到指定的地址。
配置完成后,swatchdog默认读取/ var / log / syslog日志文件,如果该文件不存在,则读取/ var / log / messages 。
$ swatch [On RHEL/CentOS & Fedora] $ swatchdog [On Ubuntu/Debian]
您可以使用-c
标志指定其他配置文件,如以下示例所示。
首先创建一个swatch配置目录和一个文件。
$ mkdir swatch $ touch swatch/secure.conf
接下来,在文件中添加以下配置,以监控失败的登录尝试,SSH登录尝试失败,从/ var / log / secure日志文件成功进行SSH登录。
watchfor /FAILED/ echo red [email protected], subject="Failed Login Attempt" watchfor /ROOT LOGIN/ echo red [email protected], subject="Successful Root Login" watchfor /ssh.*: Failed password/ echo red [email protected], subject="Failed SSH Login Attempt" watchfor /ssh.*: session opened for user root/ echo red [email protected], subject="Successful SSH Root Login"
现在通过使用-c
标志使用-c
和日志文件指定配置文件来运行Swatch,如图所示。
$ swatchdog -c ~/swatch/secure.conf -t /var/log/secure
要在后台运行它,请使用--daemon
标志; 在这种模式下,它与任何终端分离。
$ swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon
现在要测试样本配置,尝试从不同的终端登录到服务器,您会看到以下输出打印到运行Swatchdog的终端。
*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018 Jul 12 12:51:19 youcl sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2 Jul 12 12:51:19 youcl sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2 Jul 12 12:52:07 youcl sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0) Jul 12 12:52:07 youcl sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
实时监控Linux日志
您还可以运行多个样本进程来监视各种日志文件。
$ 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 swatchdog
Swatchdog SourceForge存储库: https ://sourceforge.net/projects/swatch/
以下是一些您会发现有用的其他日志监控指南:
- 如何使用Rsyslog创建集中式日志服务器
- 使用“Log.io”工具监控服务器实时登录
- lnav - 从Linux终端观察和分析Apache日志
- ngxtop - 在Linux中实时监控Nginx日志文件
Swatchdog是一个简单的活动日志文件监视工具,适用于类Unix系统,如Linux。 尝试一下,分享您的想法或在评论部分提出任何问题。