Phân tích log với pgbadger

(Công cụ này do bạn Lê Công trong group “Kho tài liệu kiến thức Database” có gợi ý tôi sử dụng)
Bây giờ tôi sẽ thử làm 1 bài hướng dẫn công cụ này cho anh em nhé:

pgBadger là 1 công cụ mã nguồn mở, dùng để phân tích log của PostgreSQL.

Mà các bạn biết rồi đó, log của PostgreSQL có rất nhiều thông tin quan trọng, mỗi khi cần monitor, giám sát, hay sửa lỗi, chúng ta đều cần đến nó còn gì. Tuy nhiên nó lại chỉ có định dạng text thôi, nên khá khó đọc và bất tiện. pgBadger sẽ giúp bạn đọc nó 1 cách tối ưu hơn.

Tham khảo về pgBadger ngay trên trang chính thức của PostgreSQL

https://www.postgresql.org/about/news/pgbadger-v114-released-2120/

Một số đặc điểm chính của pgBadger như sau:

   Cách sử dụng rất đơn giản, bạn chỉ cần chỉ ra cho pgBadger file log, nó sẽ phân tích và xuất ra báo cáo cho bạn.
   Báo cáo của nó có định dạng HTML5 và có nhiều thông tin, chart (biểu đồ) trực quan.
   pgBadger tự động phát hiện định dạng file log của PostgreSQL (syslog, stderr, csvlog hay jsonlog), thậm chí cả log của pgbouncer

Đọc thêm  Oracle 12c - Hướng dẫn thêm service name cho PDB

   Download pgBadger

Trang chủ: https://pgbadger.darold.net/

Trang Github: https://github.com/darold/pgbadger/releases

File bạn tải về là file mã nguồn, bạn cần phải biên dịch nó trước khi sử dụng.

# tar -xvf pgbadger-11.5.tar.gz
# cd pgbadger-11.5/
# perl Makefile.PL

Chú ý: Nếu ở bước perl Makefile.PL bị lỗi, có thể bạn chưa cài đặt gói perl-devel. Bạn cài đặt gói này bằng lệnh sau:

# yum install perl-devel

Kết quả khi makefile thành công sẽ như sau:

# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for pgBadger

Sau đó, bạn gõ tiêp lệnh makemake install để compile và cài đặt

# make
# make install

Các bước cài đặt như vậy là đã xong


   Cấu hình tham số trong PostgreSQL

Bây giờ tôi sẽ cấu hình 1 số tham số trong PostgreSQL để phục vụ cho hoạt động của pgBadger

   Ghi vào log file

Đầu tiên là các tham số để PostgreSQL ghi lại nhiều thông tin hơn vào log file

alter system set log_line_prefix = '%t [%p]: user=%u,db=%d,app=%a,client=%h ';
alter system set log_min_duration_statement = 0;
alter system set log_checkpoints = on;
alter system set log_connections = on;
alter system set log_disconnections = on;
alter system set log_lock_waits = on;
alter system set log_temp_files = 0;
alter system set log_autovacuum_min_duration = 0;
alter system set log_error_verbosity = default;

   Ghi lại câu lệnh đầy đủ

Mặc định, với giá trị log_min_duration_statement = -1, bạn chỉ có thể xem báo cáo thống kê câu lệnh với thời gian chạy và số lần chạy.
Nếu bạn muốn báo cáo thống kê câu lệnh có câu lệnh đầy đủ, bạn phải set log_min_duration_statement >= 0. Tham số này cũng thêm vào report các câu lệnh chậm nhất.

alter system set log_min_duration_statement = 0;

   Hướng dẫn sử dụng:

   Phân tích bằng cách chỉ định file log cụ thể

pgbadger /var/lib/pgsql/13/data/log/postgresql-Sat.log
LOG: Ok, generating html report... 6163 bytes of 6163 (100.00%), queries: 0, events: 27

Sau khi phân tích xong, nó sẽ tạo ra 1 file báo cáo có tên là out.html

Đọc thêm  Oracle 12c - Kết nối với CDB và PDB

Đó, cơ chế đơn giản chỉ có như vậy. Nếu các bạn muốn tùy biến nhiều hơn nữa có thể tham khảo các option hay gặp sau:

   Chỉ định đường dẫn và tên file lưu báo cáo

pgbadger /var/lib/pgsql/13/data/log/postgresql-Sat.log -O /var/lib/pgsql

   Chỉ lấy ra các thông tin trong khoảng thời gian nhất định

pgbadger -b "2021-06-25 10:56:11" -e "2021-06-25 10:59:11" /var/lib/pgsql/13/data/log/postgresql-Sat.log

   Phân tích nhiều log file 1 lúc

pgbadger /var/lib/pgsql/13/data/log/postgresql-*.log

   Incremental report

pgBadger cho phép tạo các báo cáo tích lũy với option -I hay –incremental.
Khi chạy ở option này, pgBadger sẽ sinh ra 1 báo cáo 1 ngày và 1 báo cáo tổng hợp mỗi tuần. Để làm được điều này bạn cần cho pgBadger chạy định kỳ hàng ngày bằng crontab.

0 4 * * * /usr/local/bin/pgbadger -I -q /var/lib/pgsql/13/data/log/postgresql-*.log -O /var/www/pg_reports/

   Một mẫu báo cáo pgBadger

Xin lỗi anh em là server test của mình thì ko có tải gì, nên báo cáo pgBadger chả có thông tin gì. Mình lấy 1 báo cáo mẫu trên mạng cho anh em dễ hình dung vậy

pgbadger1

pgbadger2

pgbadger3

pgbadger5

pgbadger 6

Nguồn: https://dangxuanduy.com/

   Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.

Xin cho tôi được biết, bạn cảm thấy bài viết này như thế nào? Ý kiến của bạn sẽ giúp tôi nâng cao chất lượng bài viết của mình.

    Hãy chia sẻ bài viết này nếu bạn thấy có ích nhé
    0 0 votes
    Article Rating
    Subscribe
    Notify of
    guest
    0 Comments
    Inline Feedbacks
    View all comments