Phân tích Log của VPS từ cơ bản đến nâng cao

Chú ý: Demo được thực hiện trên CentMinMod những VPS khác thì thay được dẫn File log nhé

Tham khảo thêm: Các dòng lệnh bỏ túi trong Linux

Lệnh tail để liệt kê các dòng cuối cùng trong file, ở đây ví dụ là 10 bạn có thể thay đổi thành 100, 1000… tùy theo muốn xem nhiều hay ít.

log

I. Đơn giản

Check log chung của Server

tail -10 /usr/local/nginx/logs/access.log
tail -10 /usr/local/nginx/logs/error.log

Check log từng Domain:

tail -10 /home/nginx/domains/domainname.com/log/access.log
tail -10 /home/nginx/domains/domainname.com/log/error.log

Kiểm tra trong /var/log

ls -lhrt /var/log

Check PHP-FPM

tail -10 /var/log/php-fpm/www-error.log
/var/log/php-fpm/www-php.error.log

Kiểm tra log trong cơ sơ dữ liệu MySQL / MariaDB

tail -10 /var/log/mysqld.log

Kiểm tra log trong CSF firewall

tail -10 /var/log/lfd.log

Kiểm tra log trong Mail

tail -10 /var/log/maillog

For Cron job

tail -10 /var/log/cron

II. Nâng cao

Lấy tất cả các log trong 1 ngày

Ví dụ mình lấy các log trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy log trong nhiều ngày bất kỳ

Lấy tất cả các log trong ngày 5/12/2015 ngày 4/12/2015

grep -w '05/Dec/2015\|04/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy tất cả IP trong file log

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /home/nginx/domains/domain.com/log/access.log

Lấy log trong ngày được và chuyển hướng google

Chỉ lấy các dòng có chuổi là “05/Dec/2015”  “google” (Được hiểu là Log của ngày 5/12/2015 và được chuyển hướng từ google)

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra log trong ngày và điều kiện “hoặc”

Chỉ lấy các dòng có chuổi là “05/Dec/2015” và “google”  HOẶC có chuổi là “04/Dec/2015” và “google”

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra tất cả IP với điều kiện

Xuất tất cả các IP được chuyển hướng từ Google được ghi nhận từ ngày 4 và 5/12/2015

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

Xuất số kết nối của IP đến server trong ngày

Đếm xem số lần kết nối của một IP được chuyển hướng từ Google trong ngày 5/12/2015

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | soft | uniq -cd | sort -nr

Xuất ra tất cả các IP có >10 kết nối trong ngày

Kiểm tra tất cả các IP có > 10 kết nối trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq -cd | sort -nr | grep -v '^ *[1-9] '

Xem toàn bộ chuyển hướng từ google trong 1 tháng

Xuất ra màn hình toàn bộ log được chuyển hướng từ google tháng 12/2015 nhưng không chứa bot.html

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html'

Xem link có nhiều lượt truy cập nhất trong tháng

Link có nhiều lượt truy cập nhất từ google trong tháng 12/2015, không tính bot

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html' | grep -oP '(?<=GET ).*/ ' | sort | uniq -cd | sort -nr | grep -v '^ *1 '
Updated: 28/07/2016 — 9:47 chiều
Dương Triều Blog © 2016