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/
ต่อไปนี้คือคำแนะนำในการตรวจสอบบันทึกเพิ่มเติมที่คุณจะพบว่ามีประโยชน์:
- 4 วิธีในการดูหรือตรวจสอบไฟล์บันทึกแบบเรียลไทม์
- วิธีสร้างเซิร์ฟเวอร์บันทึกส่วนกลางด้วย Rsyslog
- ตรวจสอบบันทึกเซิร์ฟเวอร์แบบเรียลไทม์ด้วยเครื่องมือ “Log.io”
- lnav – ดูและวิเคราะห์บันทึก Apache จาก Linux Terminal
- ngxtop – ตรวจสอบไฟล์บันทึก Nginx แบบเรียลไทม์ใน Linux
Swatchdog เป็นเครื่องมือตรวจสอบไฟล์บันทึกที่ใช้งานได้ง่ายสำหรับระบบที่คล้ายกับ Unix เช่น Linux ลองใช้และแบ่งปันความคิดของคุณหรือถามคำถามในส่วนความคิดเห็น