Lệnh swatch trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh swatch, một công cụ mạnh mẽ để theo dõi các tệp nhật ký và thiết lập các cảnh báo tùy chỉnh trong Linux. Lab bao gồm tìm hiểu lệnh swatch, theo dõi các tệp nhật ký bằng swatch và cấu hình swatch cho các cảnh báo cụ thể.

Lệnh swatch (System Wide Analyzer and Tracker) được sử dụng để theo dõi các tệp nhật ký hệ thống và kích hoạt các hành động dựa trên các mẫu hoặc sự kiện cụ thể. Nó có thể được cấu hình để theo dõi các mục nhật ký cụ thể và thực hiện các hành động khác nhau, chẳng hạn như gửi thông báo, thực thi các script hoặc chuyển tiếp các mục nhật ký đến các hệ thống khác. Lab bắt đầu bằng cách cài đặt gói swatch, có thể yêu cầu các dependency bổ sung. Sau đó, lab hướng dẫn bạn tạo một tệp cấu hình đơn giản để theo dõi từ "error" trong các tệp nhật ký và thực thi một lệnh khi tìm thấy kết quả phù hợp.

Tìm hiểu lệnh swatch

Trong bước này, bạn sẽ tìm hiểu về lệnh swatch, một công cụ mạnh mẽ để theo dõi các tệp nhật ký và thiết lập các cảnh báo tùy chỉnh trong Linux.

Lệnh swatch (System Wide Analyzer and Tracker) được sử dụng để theo dõi các tệp nhật ký hệ thống và kích hoạt các hành động dựa trên các mẫu hoặc sự kiện cụ thể. Nó có thể được cấu hình để theo dõi các mục nhật ký cụ thể và thực hiện các hành động khác nhau, chẳng hạn như gửi thông báo, thực thi các script hoặc chuyển tiếp các mục nhật ký đến các hệ thống khác.

Hãy bắt đầu bằng cách cài đặt gói swatch:

sudo apt-get update
sudo apt-get install -y swatch

Ví dụ đầu ra:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libconfig-inifiles-perl libconfig-tiny-perl libfile-tail-perl libio-socket-ssl-perl libnet-dns-perl libnet-ip-perl libnet-ssleay-perl libsys-syslog-perl
Suggested packages:
  libconfig-auto-perl
The following NEW packages will be installed:
  libconfig-inifiles-perl libconfig-tiny-perl libfile-tail-perl libio-socket-ssl-perl libnet-dns-perl libnet-ip-perl libnet-ssleay-perl libsys-syslog-perl swatch
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Need to get 223 kB of archives.
After this operation, 1,031 kB of additional disk space will be used.
Do you want to continue? [Y/n]

Lệnh swatch đọc các tệp nhật ký và kiểm tra từng dòng theo các mẫu được chỉ định trong tệp cấu hình. Khi tìm thấy kết quả phù hợp, swatch có thể thực hiện các hành động khác nhau, chẳng hạn như gửi email, thực thi script hoặc ghi nhật ký sự kiện.

Để hiểu cách sử dụng cơ bản của swatch, hãy tạo một tệp cấu hình đơn giản:

nano ~/project/swatch.config

Thêm nội dung sau vào tệp:

## swatch.config
watchfor /error/
actions = echo "Error found: $_"

Tệp cấu hình này yêu cầu swatch theo dõi từ "error" trong các tệp nhật ký và khi tìm thấy, hãy thực thi lệnh echo để in một thông báo.

Bây giờ, hãy chạy swatch để theo dõi tệp nhật ký hệ thống:

swatch --config-file ~/project/swatch.config --tail /var/log/syslog

Tùy chọn --tail yêu cầu swatch liên tục theo dõi tệp nhật ký và theo dõi các mục mới.

Ví dụ đầu ra:

Error found: Apr 12 10:15:32 ubuntu sshd[1234]: error: could not open log file

Trong ví dụ này, swatch đã phát hiện từ "error" trong tệp /var/log/syslog và thực thi hành động đã cấu hình để in một thông báo.

Lệnh swatch cung cấp một loạt các tùy chọn và cài đặt cấu hình để tùy chỉnh hành vi theo dõi và cảnh báo. Trong các bước tiếp theo, bạn sẽ học cách cấu hình swatch cho các trường hợp sử dụng nâng cao hơn.

Theo dõi các tệp nhật ký bằng swatch

Trong bước này, bạn sẽ học cách sử dụng swatch để theo dõi các tệp nhật ký cụ thể và thiết lập các cảnh báo tùy chỉnh.

Đầu tiên, hãy tạo một tệp nhật ký mẫu mà chúng ta có thể sử dụng để theo dõi:

touch ~/project/sample.log

Bây giờ, hãy cập nhật tệp cấu hình swatch để theo dõi tệp nhật ký mẫu:

nano ~/project/swatch.config

Thêm nội dung sau vào tệp:

## swatch.config
watchfor /error/
actions = echo "Error found in sample.log: $_"
logfile = ~/project/sample.log

Cấu hình này yêu cầu swatch theo dõi tệp ~/project/sample.log và tìm từ "error". Khi phát hiện thấy lỗi, swatch sẽ thực thi lệnh echo để in một thông báo.

Để bắt đầu theo dõi tệp nhật ký, hãy chạy lệnh sau:

swatch --config-file ~/project/swatch.config --tail ~/project/sample.log

Tùy chọn --tail yêu cầu swatch liên tục theo dõi tệp nhật ký và theo dõi các mục mới.

Bây giờ, hãy mô phỏng một lỗi trong tệp nhật ký:

echo "This is an error message" >> ~/project/sample.log

Bạn sẽ thấy đầu ra sau trong terminal swatch:

Error found in sample.log: This is an error message

Swatch đã phát hiện từ khóa "error" trong tệp nhật ký và thực thi hành động đã cấu hình.

Bạn có thể tùy chỉnh cấu hình swatch để theo dõi các tệp nhật ký khác nhau, theo dõi các mẫu cụ thể và thực hiện các hành động khác nhau, chẳng hạn như gửi thông báo email, thực thi script hoặc chuyển tiếp các mục nhật ký đến các hệ thống khác.

Cấu hình swatch cho các cảnh báo cụ thể

Trong bước này, bạn sẽ học cách cấu hình swatch để theo dõi các mục nhật ký cụ thể và thiết lập các cảnh báo tùy chỉnh.

Hãy bắt đầu bằng cách tạo một tệp cấu hình mới cho swatch:

nano ~/project/swatch_alerts.config

Thêm nội dung sau vào tệp:

## swatch_alerts.config
watchfor /failed login/
actions = exec /home/labex/project/alert_script.sh
logfile = /var/log/auth.log

watchfor /CRON/
actions = exec /home/labex/project/cron_alert.sh
logfile = /var/log/syslog

Trong cấu hình này:

  • Quy tắc đầu tiên theo dõi cụm từ "failed login" trong tệp /var/log/auth.log và thực thi script alert_script.sh khi tìm thấy kết quả phù hợp.
  • Quy tắc thứ hai theo dõi từ "CRON" trong tệp /var/log/syslog và thực thi script cron_alert.sh khi tìm thấy kết quả phù hợp.

Bây giờ, hãy tạo các script cảnh báo:

nano ~/project/alert_script.sh

Thêm nội dung sau vào tệp:

#!/bin/bash
echo "Security alert: Failed login attempt detected!" | mail -s "Security Alert" [email protected]

Script này gửi email đến địa chỉ [email protected] khi phát hiện thấy một nỗ lực đăng nhập không thành công.

nano ~/project/cron_alert.sh

Thêm nội dung sau vào tệp:

#!/bin/bash
echo "Cron alert: Cron job executed" | mail -s "Cron Alert" [email protected]

Script này gửi email đến địa chỉ [email protected] khi một cron job được thực thi.

Làm cho các script có thể thực thi:

chmod +x ~/project/alert_script.sh ~/project/cron_alert.sh

Bây giờ, hãy khởi động swatch để theo dõi các tệp nhật ký và kích hoạt các cảnh báo đã cấu hình:

swatch --config-file ~/project/swatch_alerts.config --tail /var/log/auth.log /var/log/syslog

Tùy chọn --tail yêu cầu swatch liên tục theo dõi các tệp nhật ký và theo dõi các mục mới.

Để kiểm tra các cảnh báo, bạn có thể mô phỏng một nỗ lực đăng nhập không thành công hoặc kích hoạt một cron job. Swatch sẽ phát hiện các sự kiện và thực thi các script cảnh báo tương ứng.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về lệnh swatch, một công cụ mạnh mẽ để theo dõi các tệp nhật ký và thiết lập các cảnh báo tùy chỉnh trong Linux. Bạn bắt đầu bằng cách cài đặt gói swatch và sau đó tạo một tệp cấu hình đơn giản để theo dõi từ "error" trong các tệp nhật ký và thực thi một lệnh khi tìm thấy kết quả phù hợp. Bạn cũng đã học cách theo dõi các tệp nhật ký bằng swatch và cấu hình nó cho các cảnh báo cụ thể, chẳng hạn như gửi thông báo hoặc thực thi script dựa trên các sự kiện nhật ký.

400+ câu lệnh phổ biến trong Linux