웹사이트 검색

Swatchdog - Linux에서 실시간으로 간단한 로그 파일 감시자


Swatchdog('Simple WATCH DOG ')은 Linux와 같은 Unix 계열 시스템에서 활성 로그 파일을 모니터링하기 위한 간단한 Perl 스크립트입니다. 구성 파일에 정의할 수 있는 정규식을 기반으로 로그를 감시합니다. 명령줄이나 백그라운드에서 실행하고 데몬 모드 옵션을 사용하여 터미널에서 분리할 수 있습니다.

이 프로그램은 원래 swatch('Simple Watcher')라고 불렸지만 옛 스위스 시계 회사의 이름 변경 요청에 따라 개발자가 이름을 <로 변경했습니다. Strong>견본.

참고 자료: Linux용 좋은 오픈 소스 로그 모니터링 및 관리 도구 4가지

중요한 점은 swatchdog이 Unix의 syslog 기능에서 생성된 로그를 관찰하기 위한 스크립트에서 발전했으며 거의 모든 종류의 로그를 모니터링할 수 있다는 것입니다.

Linux에 견본을 설치하는 방법

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 계열 시스템을 위한 간단한 활성 로그 파일 모니터링 도구입니다. 사용해 보시고 의견을 공유하거나 댓글 섹션에 질문을 남겨주세요.