0Pricing
SQL Academy · บทเรียน

pgBadger สำหรับวิเคราะห์บันทึก

เรียกใช้ pgBadger กับบันทึกของ Postgres เพื่อสร้างรายงาน HTML เกี่ยวกับคำสั่งค้นหาที่ช้า การรอล็อก และรูปแบบการเชื่อมต่อ

pgBadger สำหรับวิเคราะห์บันทึก เป็นบทเรียน SQL Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน SQL Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

pgBadger คืออะไร

เครื่องมือวิเคราะห์บันทึก PostgreSQL ที่สร้างด้วย Perl ซึ่งสร้างรายงาน HTML ที่อ่านง่ายเกี่ยวกับคิวรีที่ช้า การรอล็อก ข้อผิดพลาด และรูปแบบการเชื่อมต่อ ควรเรียกใช้กับบันทึกของคุณเป็นระยะ

ตั้งค่าการบันทึก

postgresql.conf:

log_destination = 'csvlog'
logging_collector = on
log_directory = 'pg_log'
log_min_duration_statement = '500ms'
log_lock_waits = on
log_temp_files = 0
log_checkpoints = on
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '

เรียกใช้ pgBadger

สร้างรายงาน:

pgbadger /var/log/postgresql/postgresql-2024-03-15.csv \
  -o report.html

# Multiple files:
pgbadger /var/log/postgresql/*.csv -o report.html

สิ่งที่มีอยู่ในรายงาน

  • คิวรีที่ช้าที่สุดพร้อมตัวอย่าง
  • คิวรีที่เรียกใช้บ่อยที่สุด
  • คิวรีที่ใช้เวลามากที่สุด
  • การรอล็อก
  • ข้อผิดพลาด
  • รูปแบบการเชื่อมต่อตามช่วงเวลา
  • การใช้ไฟล์ชั่วคราว
  • กิจกรรมจุดตรวจสอบและการกวาดล้าง

โหมดเพิ่มข้อมูลต่อเนื่อง

สำหรับการวิเคราะห์บันทึกอย่างต่อเนื่อง ให้สร้างรายงานประจำวัน:

pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/*.csv
# Updates an HTML dashboard incrementally.

เรียกใช้อัตโนมัติผ่านตัวกำหนดเวลาของระบบ

งานที่ทำทุกคืน:

0 1 * * * pgbadger -I -O /var/www/pgbadger/ /var/log/postgresql/postgresql-`date +%F`.csv

เทียบกับ pg_stat_statements

pg_stat_statements: ค่าชี้วัดแบบรวมอยู่ภายในฐานข้อมูล
pgBadger: แยกวิเคราะห์บันทึกดิบ และค้นหารูปแบบที่ข้อมูลรวมอาจมองไม่เห็น เช่น การรอล็อก ข้อผิดพลาด และการเชื่อมต่อที่ถาโถม

ค้นหารูปแบบการรอล็อก

pgBadger สรุปการรอล็อกให้ว่า คิวรีใดบล็อกคิวรีใด และบล็อกนานเท่าใด เหมาะอย่างยิ่งสำหรับวิเคราะห์ปัญหาการติดตายและการแย่งใช้ทรัพยากร

ส่วนข้อผิดพลาด

จำนวนครั้งของรหัสข้อผิดพลาดทุกตัว "23505 การละเมิดค่าที่ไม่ซ้ำกัน: 12,000 ครั้ง" เป็นสัญญาณเตือนว่าแอปพลิเคชันกำลังลองแทรกข้อมูลที่ซ้ำอีกครั้ง

ไฟล์ชั่วคราว

คิวรีที่ต้องเขียนข้อมูลชั่วคราวลงดิสก์ เนื่องจากการเรียงลำดับหรือแฮชมีขนาดใหญ่เกินกว่า work_mem:

log_temp_files = 0     -- log all temp file usage
-- pgBadger summarises queries that created temp files.

ทางเลือกบนคลาวด์

RDS Performance Insights, Cloud SQL Query Insights และเครื่องมืออื่น ๆ ทำการวิเคราะห์แบบเดียวกันในสภาพแวดล้อมที่มีการจัดการ โดยปกติสร้างอยู่บนแหล่งสถิติเดียวกัน

สรุปทบทวน

pgBadger เปลี่ยนบันทึกของ PostgreSQL ให้เป็นแดชบอร์ด

  • ตั้งค่า log_min_duration_statement
  • สร้างรายงาน HTML เป็นระยะ
  • ค้นหาการรอล็อก ไฟล์ชั่วคราว และรูปแบบข้อผิดพลาด
  • ทำงานเสริมกับ pg_stat_statements

ตรวจสอบอย่างรวดเร็ว

คุณเห็นว่าแอปพลิเคชันกำลังลองใช้คำสั่งแทรกข้อมูลหลายครั้ง การตั้งค่าบันทึกของ PostgreSQL ใดช่วยยืนยันเรื่องนี้ได้

คำถามที่พบบ่อย

บทเรียน “pgBadger สำหรับวิเคราะห์บันทึก” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “pgBadger สำหรับวิเคราะห์บันทึก” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส SQL Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส SQL Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “pgBadger สำหรับวิเคราะห์บันทึก”

เรียกใช้ pgBadger กับบันทึกของ Postgres เพื่อสร้างรายงาน HTML เกี่ยวกับคำสั่งค้นหาที่ช้า การรอล็อก และรูปแบบการเชื่อมต่อ คุณปฏิบัติ SQL Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน SQL Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน SQL Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “pgBadger สำหรับวิเคราะห์บันทึก” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน SQL Academy นี้ได้ไหม

ได้ บทเรียน SQL Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. pg_stat_statements: คำสั่งค้นหายอดนิยม
  2. pgBadger สำหรับวิเคราะห์บันทึก
  3. การรวมการเชื่อมต่อ: PgBouncer
  4. การวางแผนความจุและการตรวจสอบข้อมูลบวม
← กลับไปที่ SQL Academy