ウェブサイト検索

Swatchdog - Linux でのリアルタイムのシンプルなログ ファイル ウォッチャー


Swatchdog (「Simple WATCH DOG 」) は、Linux などの Unix 系システム上のアクティブなログ ファイルを監視するための単純な Perl スクリプトです。構成ファイルで定義できる正規表現に基づいてログを監視します。コマンド ラインから実行することも、デーモン モード オプションを使用して端末から切り離してバックグラウンドで実行することもできます。

このプログラムは元々は swatch (Simple Watcher ) と呼ばれていましたが、スイスの古い時計会社からの名前変更の要求により、開発者はその名前を < に変更したことに注意してください。strong>見張り犬です。

こちらもお読みください: Linux 用の 4 つの優れたオープンソース ログ監視および管理ツール

重要なのは、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/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

次に、次の設定をファイルに追加して、失敗したログイン試行、失敗した SSH ログイン試行、成功した SSH ログインを /var/log/secure ログ ファイルから監視します。

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 系システム用のシンプルなアクティブ ログ ファイル監視ツールです。試してみて、感想を共有したり、コメント欄で質問したりしてください。