ค้นหาเว็บไซต์

Swatchdog - เครื่องมือเฝ้าดูไฟล์บันทึกอย่างง่ายแบบเรียลไทม์ใน Linux


Swatchdog (“Simple WATCH DOG ”) เป็นสคริปต์ Perl อย่างง่ายสำหรับการตรวจสอบไฟล์บันทึกที่ใช้งานอยู่บนระบบที่คล้ายกับ Unix เช่น Linux โดยจะเฝ้าดูบันทึกของคุณตามนิพจน์ทั่วไปที่คุณสามารถกำหนดในไฟล์การกำหนดค่า คุณสามารถรันได้จากบรรทัดคำสั่งหรือในเบื้องหลัง โดยแยกออกจากเทอร์มินัลใดๆ โดยใช้ตัวเลือกโหมด daemon

โปรดทราบว่าเดิมทีโปรแกรมนี้เรียกว่า swatch ("Simple Watcher ") แต่บริษัทนาฬิกาสวิสเก่าร้องขอให้เปลี่ยนชื่อ นักพัฒนาจึงเปลี่ยนชื่อเป็น กลุ่มตัวอย่าง

อ่านเพิ่มเติม: 4 เครื่องมือตรวจสอบและจัดการบันทึกโอเพ่นซอร์สที่ดีสำหรับ Linux

ที่สำคัญ swatchdog ได้เติบโตจากสคริปต์สำหรับการดูบันทึกที่สร้างโดยระบบ syslog ของ Unix และสามารถตรวจสอบบันทึกได้ทุกประเภท

วิธีการติดตั้ง Swatch ใน 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

เมื่อคุณติดตั้ง swatch แล้ว คุณจะต้องสร้างไฟล์การกำหนดค่า (ตำแหน่งเริ่มต้นคือ /home/$USER/.swatchdogrc หรือ .swatchrc ) เพื่อกำหนดประเภทของรูปแบบนิพจน์ที่ต้องการค้นหา และประเภทการดำเนินการที่ควรดำเนินการเมื่อจับคู่รูปแบบ


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

เพิ่มนิพจน์ทั่วไปของคุณในไฟล์นี้ และแต่ละบรรทัดควรมีคำหลักและค่า (บางครั้งอาจเป็นทางเลือก) คั่นด้วยเครื่องหมาย ช่องว่าง หรือเครื่องหมาย (=) เท่ากับ คุณต้องระบุรูปแบบและการดำเนินการที่จะดำเนินการเมื่อรูปแบบตรงกัน

เราจะใช้ไฟล์การกำหนดค่าง่ายๆ คุณสามารถค้นหาตัวเลือกเพิ่มเติมได้ในหน้าคู่มือ swatchdog เป็นต้น

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

ในที่นี้ นิพจน์ทั่วไปของเราคือสตริงตามตัวอักษร – “sudo” หมายถึงเมื่อใดก็ตามที่สตริง sudo ปรากฏในไฟล์บันทึก จะถูกพิมพ์ไปที่เทอร์มินัลด้วยข้อความสีแดง และ เมล ระบุการดำเนินการที่จะดำเนินการ ซึ่งสะท้อนรูปแบบที่ตรงกันบนเทอร์มินัลและส่งอีเมลไปยังที่อยู่ที่ระบุอย่างตอบรับ

หลังจากที่คุณกำหนดค่าแล้ว 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"

ตอนนี้ให้รัน Swatch โดยการระบุไฟล์การกำหนดค่าโดยใช้ -c และไฟล์บันทึกโดยใช้แฟล็ก -t ตามที่แสดง

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

หากต้องการรันในพื้นหลัง ให้ใช้แฟล็ก --daemon ในโหมดนี้จะถูกแยกออกจากเทอร์มินัลใด ๆ

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

ตอนนี้เพื่อทดสอบการกำหนดค่า swatch ให้ลองเข้าสู่ระบบเซิร์ฟเวอร์จากเทอร์มินัลอื่น คุณจะเห็นเอาต์พุตต่อไปนี้พิมพ์ไปยังเทอร์มินัลที่ 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

man swatchdog

พื้นที่เก็บข้อมูล Swatchdog SourceForge: https://sourceforge.net/projects/swatch/

ต่อไปนี้คือคำแนะนำในการตรวจสอบบันทึกเพิ่มเติมที่คุณจะพบว่ามีประโยชน์:

  1. 4 วิธีในการดูหรือตรวจสอบไฟล์บันทึกแบบเรียลไทม์
  2. วิธีสร้างเซิร์ฟเวอร์บันทึกส่วนกลางด้วย Rsyslog
  3. ตรวจสอบบันทึกเซิร์ฟเวอร์แบบเรียลไทม์ด้วยเครื่องมือ “Log.io”
  4. lnav – ดูและวิเคราะห์บันทึก Apache จาก Linux Terminal
  5. ngxtop – ตรวจสอบไฟล์บันทึก Nginx แบบเรียลไทม์ใน Linux

Swatchdog เป็นเครื่องมือตรวจสอบไฟล์บันทึกที่ใช้งานได้ง่ายสำหรับระบบที่คล้ายกับ Unix เช่น Linux ลองใช้และแบ่งปันความคิดของคุณหรือถามคำถามในส่วนความคิดเห็น