Phân tích log với pgbadger

   Giới thiệu

 

(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  Sử dụng pg_stat_statements để giám sát câu lệnh trên PostgreSQL
Đọc thêm  PostgreSQL - Làm sao để xem hiệu năng trong quá khứ của câu lệnh

 

Sau đây tôi sẽ hướng dẫn các bạn các bước để cài đặt pgbadger trên Postgres


   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;

 

Như vậy là tôi đã cài đặt xong pgbadger trên Postgres rồi đó.


   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ơ 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

 

Chúc các bạn thành công

 

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

 

Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database, tôi sẽ để thông tin ở đây, để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.

 

    KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN  Xem ngay!

 

   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é.

 

Đặng Xuân Duy
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận