Swatchdog - Linux 中的简单实时日志文件观察器Swatchdog - Linux 中的简单实时日志文件观察器Swatchdog - Linux 中的简单实时日志文件观察器Swatchdog - Linux 中的简单实时日志文件观察器
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Swatchdog - Linux 中的简单实时日志文件观察器

发表 admin at 2025年2月28日
类别
  • 未分类
标签

Swatchdog(“简单看门狗”)是一个简单的 Perl 脚本,用于监视类 Unix 系统(例如 Linux)上的活动日志文件。它根据您可以在配置文件中定义的正则表达式监视您的日志。您可以从命令行或在后台运行它,使用守护程序模式选项与任何终端分离。

请注意,该程序最初名为 swatch(“Simple Watcher”),但由于这家老牌瑞士手表公司要求更改名称,开发人员将其名称更改为样本狗。

另请阅读:4 个优秀的 Linux 开源日志监控和管理工具

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

如何在 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/tecmint/.swatchdogrc
OR
touch /home/tecmint/.swatchrc

在此文件中添加正则表达式,每行应包含一个关键字和值(有时是可选的),并用空格或等号(=)分隔。您需要指定模式以及模式匹配时要执行的操作。

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

watchfor  /sudo/
	echo red
	[email , subject="Sudo Command"

在这里,我们的正则表达式是一个文字字符串 - “sudo”,意味着任何时候字符串 sudo 出现在日志文件中,都会以红色文本打印到终端,并且mail 指定要执行的操作,即在终端上回显匹配的模式并向指定地址发送电子邮件。

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


swatch     [On RHEL/CentOS & Fedora]
swatchdog  [On Ubuntu/Debian]

您可以使用 -c 标志指定不同的配置文件,如以下示例所示。

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

mkdir swatch
touch swatch/secure.conf

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

watchfor /FAILED/
echo red
[email , subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
[email , subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
[email , subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
[email , subject="Successful SSH Root Login"

现在,通过使用 -c 指定配置文件并使用 -t 标志指定日志文件来运行样本,如图所示。

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 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)

您还可以运行多个样本进程来监视各种日志文件。

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/

以下是一些您会发现有用的附加日志监控指南:

  1. 实时观察或监控日志文件的 4 种方法
  2. 如何使用 Rsyslog 创建集中式日志服务器
  3. 使用“Log.io”工具实时监控服务器登录
  4. lnav – 从 Linux 终端观察和分析 Apache 日志
  5. ngxtop – 在 Linux 中实时监控 Nginx 日志文件

Swatchdog 是一个简单的活动日志文件监控工具,适用于 Linux 等类 Unix 系统。尝试一下并分享您的想法或在评论部分提出任何问题。

©2015-2025 Norria support@norria.com