Swatchdog - Yano nga Log File Watcher sa Real-Time sa Linux


Ang Swatchdog (ang \Simple WATCH DOG) usa ka yano nga Perl script para sa pagmonitor sa mga aktibong log files sa Unix-like system sama sa Linux. Gibantayan niini ang imong mga log base sa regular nga mga ekspresyon nga mahimo nimong ipasabot sa configuration file. Mahimo nimo kining ipadagan gikan sa command line o sa background, nahimulag sa bisan unsang terminal gamit ang opsyon sa daemon mode.

Timan-i nga ang programa orihinal nga gitawag nga swatch (ang \Simple Watcher) apan ang usa ka hangyo sa karaan nga Swiss watch company alang sa usa ka pagbag-o sa ngalan nakakita sa developer nga nag-ilis sa iyang ngalan ngadto sa swatchdog.

Mahinungdanon, ang swatchdog mitubo gikan sa usa ka script alang sa pagtan-aw sa mga troso nga gihimo sa pasilidad sa syslog sa Unix, ug kini maka-monitor sa bisan unsang klase sa mga troso.

Giunsa ang Pag-install sa Swatch sa Linux

Ang package swatchdog magamit aron ma-install gikan sa opisyal nga mga repositoryo sa mainstream nga mga distribusyon sa Linux ingon usa ka package nga swatch pinaagi sa usa ka manager sa package sama sa gipakita.

$ 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+]

Aron ma-install ang pinakabag-o nga bersyon sa swatchdog, kinahanglan nimo nga i-compile kini gikan sa gigikanan gamit ang pagsunod sa mga mando sa bisan unsang pag-apod-apod sa Linux.

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

Kung na-install na nimo ang swatch, kinahanglan nimo nga buhaton ang configuration file niini (ang default nga lokasyon mao ang /home/$USER/.swatchdogrc o .swatchrc), aron mahibal-an kung unsang mga matang sa mga pattern sa ekspresyon ang pangitaon ug kung unsang klase sa (mga) aksyon ang kinahanglan. pagakuhaon kung ang usa ka sumbanan gipares.

$ touch /home/tecmint/.swatchdogrc
OR
$ touch /home/tecmint/.swatchrc

Idugang ang imong regular nga ekspresyon niini nga file ug ang matag linya kinahanglan adunay usa ka keyword ug bili (usahay opsyonal), gibulag sa usa ka luna o usa ka parehas nga (=) nga timaan. Kinahanglan nimong ipiho ang usa ka pattern ug usa ka (mga) aksyon nga buhaton kung ang usa ka sumbanan gipares.

Maggamit kami usa ka yano nga file sa pag-configure, makit-an nimo ang daghang mga kapilian sa panid sa tawo nga swatchdog, pananglitan.

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

Dinhi, ang among regular nga ekspresyon usa ka literal nga hilo - sudo, nagpasabut sa bisan unsang oras nga ang string sudo makita sa log file, i-imprinta sa terminal sa pula nga teksto ug mailhan ang aksyon nga himuon, nga mao ang pagpalanog sa gipares. pattern sa terminal ug ipadala ang usa ka e-mail sa piho nga adres, nga madawaton.

Human nimo ma-configure kini, basahon sa swatchdog ang /var/log/syslog log file nga default, kung wala kini nga file, mabasa kini /var/log/messages.

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

Mahimo nimong itakda ang lain nga configuration file gamit ang -c nga bandila sama sa gipakita sa mosunod nga pananglitan.

Una paghimo og swatch configuration directory ug file.

$ mkdir swatch
$ touch swatch/secure.conf

Sunod, idugang ang mosunud nga pag-configure sa file aron ma-monitor ang napakyas nga mga pagsulay sa pag-login, napakyas nga pagsulay sa pag-login sa SSH, malampuson nga pag-login sa SSH gikan sa /var/log/secure log file.

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"

Karon padagana ang Swatch pinaagi sa pagpiho sa configuration file gamit ang -c ug log file gamit ang -t flag sama sa gipakita.

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

Sa pagpadagan niini sa luyo, gamita ang --daemon nga bandera; sa niini nga mode, kini gibulag gikan sa bisan unsa nga terminal.

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

Karon aron sulayan ang swatch configuration, sulayi ang pag-login sa server gikan sa lain-laing terminal, imong makita ang mosunod nga output nga giimprinta sa terminal diin ang Swatchdog nagdagan.

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

Mahimo ka usab nga magpadagan sa daghang mga proseso sa swatch aron ma-monitor ang lainlaing mga file sa log.

$ 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

Para sa dugang nga impormasyon, tan-awa ang swatchdog man page.

$ man swatchdog

Swatchdog SourceForge Repository: https://sourceforge.net/projects/swatch/

Ang mosunod mao ang pipila ka dugang nga mga giya sa pagmonitor sa log nga imong makita nga mapuslanon:

  1. 4 Mga Paagi sa Pagtan-aw o Pag-monitor sa mga Log File sa Tinuod nga Oras
  2. Unsaon Paghimo ug Centralized Log Server gamit ang Rsyslog
  3. Monitor Server Logs in Real-Time gamit ang \Log.io” Tool
  4. lnav – Tan-awa ug Analisaha ang Apache Logs gikan sa Linux Terminal
  5. ngxtop – Pag-monitor sa Nginx Log Files sa Real Time sa Linux

Ang Swatchdog usa ka yano nga aktibo nga himan sa pagmonitor sa log file alang sa mga sistema nga sama sa Unix sama sa Linux. Sulayi kini ug ipaambit ang imong mga hunahuna o pangutana sa bisan unsang mga pangutana sa seksyon sa mga komento.