ตรวจสอบ PostgreSQL โดยใช้ Zabbix

ตรวจสอบ PostgreSQL โดยใช้ Zabbix
รายงานโดย Daria Vilkova สำหรับ Zabbix Meetup Online

ฉันต้องการแนะนำให้คุณรู้จักกับ PostgreSQL และเครื่องมือตรวจสอบระบบปฏิบัติการ ซึ่งบริษัทของเรากำลังพัฒนาโดยใช้ Zabbix

เราเลือก Zabbix เป็นเครื่องมือตรวจสอบของเรามาเป็นเวลานานเนื่องจากเป็นแพลตฟอร์มโอเพ่นซอร์สที่สนับสนุนโดยชุมชนที่ใช้งานอยู่ซึ่งเป็นที่นิยมอย่างมากในรัสเซีย

เราสร้างตัวแทนที่ใช้งานอยู่ - Mamonsu ซึ่งให้การตรวจสอบที่ยืดหยุ่นมากกว่าเครื่องมือมาตรฐานที่อนุญาตในเวลานั้น และรับประกันการรวบรวมเมตริกและส่งไปยังเซิร์ฟเวอร์ Zabbix ในบริษัทของเรา ใช้ Mamonsu ในการตรวจสอบ

มามอนซู

Mamonsu เป็นตัวแทนที่ใช้งาน (Zabbix Trapper) สำหรับการตรวจสอบ PostgreSQL และระบบปฏิบัติการ Mamonsu (เขียนด้วย Python) ช่วยให้คุณกำหนดค่า PostgreSQL และการตั้งค่าการตรวจสอบระบบปฏิบัติการได้ภายในห้านาที

Mamonsu มีเครื่องมือเพิ่มเติม:

  • mamonsu tune เป็นคำสั่งที่ใช้แก้ไขการตั้งค่าในไฟล์คอนฟิกูเรชัน PostgreSQL สำหรับเครื่องที่ติดตั้งตัวแทน Mamonsu
  • รายงาน mamonsu เป็นคำสั่งที่สร้างคำตอบเกี่ยวกับระบบปฏิบัติการและ PostgreSQL

Mamonsu ได้รับการติดตั้งบนเซิร์ฟเวอร์ DBMS รวบรวมข้อมูล เรียบเรียงเป็น JSON ซึ่งส่งไปยังเซิร์ฟเวอร์ Zabbix เพื่อสร้างภาพ ซึ่งควรมีเทมเพลตสำหรับเมตริก

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

รูปแบบการทำงานของ Mamonsu

คุณสมบัติมามอนสุ

  • ทำงานอย่างมีประสิทธิภาพด้วย PostgreSQL. การเชื่อมต่อกับ PostgreSQL อย่างต่อเนื่องเป็นข้อได้เปรียบหลักของ Mamonsu ในกรณีนี้ จำนวนการเชื่อมต่อสูงสุดจะเท่ากับจำนวนฐานข้อมูลสูงสุดที่เชื่อมต่อ
  • ความสามารถในการขยาย. Mamonsu เป็นตัวแทน "ปลั๊กอิน" เต็มรูปแบบ และเนื่องจากโครงสร้างคงที่ของปลั๊กอินแต่ละตัวและความเรียบง่ายสัมพัทธ์ของ Python เราสามารถเรียนรู้วิธีเขียนใหม่หรือแก้ไขปลั๊กอินมาตรฐานได้อย่างง่ายดาย เช่น พารามิเตอร์การรวบรวมเมตริก
  • ครอบคลุมเมตริกการตรวจสอบอย่างกว้างขวาง สำหรับ PotgreSQL รวมถึงเมตริกเฉพาะส่วนขยาย
  • เปิดตัวอย่างรวดเร็ว ความพร้อมใช้งานออกจากกล่อง.
  • การอัปโหลดเทมเพลตและไฟล์การกำหนดค่าเช่นเดียวกับการอัปโหลดไปยังเซิร์ฟเวอร์ Zabbix
  • ข้ามแพลตฟอร์มซึ่งเป็นสิ่งสำคัญสำหรับลูกค้าของเราที่ใช้ลีนุกซ์รุ่นต่างๆ รวมถึงในประเทศด้วย
  • ใบอนุญาตข้อ BSD.

ในขณะนี้ เรามีปลั๊กอินจำนวนมาก และในแต่ละเวอร์ชันถัดไป เราจะพยายามเพิ่มสิ่งใหม่ๆ

  • 14 ปลั๊กอินสำหรับ PostgreSQL
  • 8 ปลั๊กอินสำหรับ OS Linux,
  • 4 ปลั๊กอินสำหรับระบบปฏิบัติการ Windows

Mamonsu รวบรวม PostgreSQL และตัวชี้วัดระบบปฏิบัติการกว่า 110 รายการ:

  • 70 เมตริก PostgreSQL
  • 40 OS Linux เมตริก
  • 8 เมตริก OS Windows

เมตริกหลัก ได้แก่ ความพร้อมใช้งานของ DBMS จำนวนการเชื่อมต่อ ขนาดฐานข้อมูล จุดตรวจสอบ ความเร็วในการอ่าน/เขียน การล็อก จำนวนกระบวนการดูดฝุ่นอัตโนมัติ และความเร็วการสร้าง WAL รายการเมตริกที่มีอยู่ทั้งหมด ตลอดจนคำอธิบายโดยละเอียดของเครื่องมือทั้งหมดมีอยู่ใน ที่เก็บ บนเว็บไซต์ GitHub

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

รายการเมตริกที่มีอยู่บน GitHub

วิ่ง Mamonsu ใน 5 นาที

หากต้องการตั้งค่าการตรวจสอบ PostgreSQL และระบบปฏิบัติการโดยใช้ Mamonsu คุณสามารถทำได้ภายใน 5 นาทีโดยทำตามขั้นตอนง่ายๆ 5 ขั้นตอน

  1. การติดตั้ง Mamonsu. Mamonsu สามารถสร้างจากแหล่งที่มาหรือใช้แพ็คเกจที่มีอยู่

$ git clone ... && cd mamonsu && python setup.py

build && python setup.py install

  1. การตั้งค่าการเชื่อมต่อ. จำเป็นต้องตั้งค่าพารามิเตอร์การเชื่อมต่อสำหรับ PostgreSQL และ Zabbix Server ในไฟล์ agent.conf

/etc/mamonsu/agent.conf

  1. ส่งออกเทมเพลตไปยังเซิร์ฟเวอร์ Zabbix.

$ mamonsu zabbix template export

/usr/share/mamonsu/example.xml

  1. การเพิ่มโฮสต์ไปยังเซิร์ฟเวอร์ Zabbix. เทมเพลตที่ส่งออกจะเชื่อมต่อกับโฮสต์ใหม่บนเซิร์ฟเวอร์ Zabbix โดยอัตโนมัติ

$ mamonsu zabbix host create mamonsu-demo

  1. ยิง.

$ service mamonsu start

ทิศทางการพัฒนา Mamonsu

ในฐานะส่วนหนึ่งของการพัฒนา Mamonsu เราวางแผนที่จะปรับแต่งเมตริกและสร้างปลั๊กอินใหม่ เช่น ปลั๊กอินสำหรับตรวจสอบขนาดของแต่ละตาราง นอกจากนี้ เรายังวางแผนที่จะปรับปรุงและสร้างเครื่องมือเพิ่มเติม รวมถึงขยายความสามารถในการปรับแต่งอัตโนมัติผ่านคำสั่ง เพลงมามอนซู.

โมดูลการตรวจสอบ PostgreSQL เป็นส่วนหนึ่งของ Zabbix Agent 2

ไดรเวอร์ที่รวดเร็วและเป็นที่นิยมใช้เพื่อเชื่อมต่อกับ PostgreSQL พีจีเอ็กซ์ (ไดรเวอร์ PG และชุดเครื่องมือสำหรับ Go)

จนถึงตอนนี้ เราใช้สองอินเทอร์เฟซ: Exporter ซึ่งเรียกใช้ตัวจัดการด้วยคีย์ และ Configurator Zabbix Agent 2 ซึ่งอ่านและตรวจสอบพารามิเตอร์การเชื่อมต่อกับเซิร์ฟเวอร์ที่ระบุในไฟล์การกำหนดค่า

เราพยายามเพิ่มประสิทธิภาพการทำงานของ DBMS โดยการจัดกลุ่มเมตริกและใช้ตัวจัดการ (ตัวจัดการ) สำหรับเมตริกและกลุ่มเมตริก รวมทั้งใช้กลุ่มของเมตริกใน JSON เป็นตัวแปรตาม (รายการอ้างอิง) และการค้นพบระดับต่ำ (กฎการค้นพบ ).

คุณสมบัติหลัก

  • รักษาการเชื่อมต่อกับ PostgreSQL อย่างต่อเนื่องระหว่างการตรวจสอบ
  • การสนับสนุนช่วงเวลาการสำรวจที่ยืดหยุ่น
  • ความเข้ากันได้กับเวอร์ชัน PostgreSQL ที่เริ่มต้นจาก 10 และเซิร์ฟเวอร์ Zabbix ที่เริ่มต้นจากเวอร์ชัน 4.4;
  • ความสามารถในการเชื่อมต่อและตรวจสอบอินสแตนซ์ PostgreSQL หลายรายการพร้อมกันเนื่องจาก Zabbix Agent 2 ช่วยให้คุณสร้างหลายเซสชันได้

ระดับพารามิเตอร์การเชื่อมต่อ PostgreSQL

โดยรวมแล้ว มีพารามิเตอร์การเชื่อมต่อ PostgreSQL สามระดับ ได้แก่ งานและการตั้งค่า:

  • ทั่วโลก
  • เซสชั่น
  • มาโคร

  1. พารามิเตอร์ Global ถูกตั้งค่าที่ระดับเอเจนต์ พารามิเตอร์ Session และ Macros กำหนดพารามิเตอร์การเชื่อมต่อฐานข้อมูล

  2. พารามิเตอร์การเชื่อมต่อกับ PostgreSQL - เซสชันถูกตั้งค่าในไฟล์ zabbix_agent2.conf.

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

ตัวเลือกการเชื่อมต่อ PostgreSQL - เซสชัน

  • หลังจากคำหลัก การประชุม มีการระบุชื่อเซสชันที่ไม่ซ้ำกันซึ่งต้องระบุในคีย์ (เทมเพลต)
  • พารามิเตอร์ URI и ชื่อผู้ใช้ จำเป็นสำหรับทุกเซสชัน
  • หากไม่ได้ระบุชื่อฐาน ระบบจะใช้ชื่อฐานทั่วไปเริ่มต้นสำหรับเซสชัน PostgreSQL ทั้งหมด ซึ่งตั้งค่าไว้ในไฟล์การกำหนดค่าด้วย

  1. พารามิเตอร์การเชื่อมต่อกับ PostgreSQL - มาโครถูกตั้งค่าในคีย์เมตริกในเทมเพลต (คล้ายกับวิธีการที่ใช้ใน Zabbix Agent 1) เช่น พวกมันถูกสร้างขึ้นในเทมเพลต จากนั้นระบุเป็นพารามิเตอร์ในคีย์ ในกรณีนี้ ลำดับของมาโครจะคงที่ เช่น URI อยู่ในรายการก่อนเสมอ

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

พารามิเตอร์การเชื่อมต่อ PostgreSQL - มาโคร

โมดูลการตรวจสอบ PostgreSQL มีเมตริกมากกว่า 95 รายการอยู่แล้ว ซึ่งช่วยให้คุณครอบคลุมพารามิเตอร์ PostgreSQL ที่ค่อนข้างหลากหลาย รวมถึง:

  • จำนวนการเชื่อมต่อ
  • ขนาดฐานข้อมูล
  • การเก็บถาวรไฟล์ wal
  • จุดตรวจ,
  • จำนวนตาราง "ป่อง"
  • สถานะการจำลองแบบ
  • ความล่าช้าของแบบจำลอง

เมตริก PostgreSQL จะไม่ให้ข้อมูลหากไม่มีพารามิเตอร์ของระบบปฏิบัติการ แต่ Zabbix Agent 2 รู้วิธีรวบรวมพารามิเตอร์ของระบบปฏิบัติการอยู่แล้ว ดังนั้นเพื่อให้ได้ภาพรวม เราเพียงเชื่อมต่อเทมเพลตที่จำเป็นกับโฮสต์

แฮนด์เลอร์

ตัวจัดการเป็นหน่วยหลักของโมดูลที่ดำเนินการตามคำขอและอนุญาตให้คุณรับเมตริก

วิธีรับเมตริกอย่างง่าย:

  1. สร้างไฟล์เพื่อรับเมตริกใหม่:

zabbix/src/go/plugins/postgres/handler_uptime.go

  1. เราเชื่อมต่อแพ็คเกจและระบุคีย์เฉพาะ (คีย์) ของเมตริก:

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

  1. เราสร้างตัวจัดการ (ตัวจัดการ) ด้วยคำขอ เช่น เราเริ่มต้นตัวแปรที่จะประกอบด้วยผลลัพธ์:

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

  1. เราดำเนินการตามคำขอ:

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

จำเป็นต้องตรวจสอบคำขอสำหรับข้อผิดพลาด หลังจากนั้นกระบวนการ Zabbix Agent 2 จะเลือกผลลัพธ์

  1. ลงทะเบียนคีย์เมตริกใหม่:

ตรวจสอบ PostgreSQL โดยใช้ Zabbix

หลังจากลงทะเบียนเมทริกแล้ว คุณสามารถสร้างเอเจนต์ใหม่ด้วยเมทริกใหม่ได้

โมดูลพร้อมใช้งานตั้งแต่ Zabbix 5.0 บนไซต์ https://www.zabbix.com/download. ใน Zabbix เวอร์ชันนี้ พารามิเตอร์จะถูกตั้งค่าแยกกันผ่านโฮสต์และพอร์ต ใน Zabbix 5.0.2 ซึ่งจะออกเร็วๆ นี้ พารามิเตอร์การเชื่อมต่อจะถูกรวมเป็น URI เดียว

ขอบคุณ!

ลิงค์ที่มีประโยชน์

GitHub มามอนซู

เอกสาร Mamonsu

Zabbix Git

ที่มา: will.com

เพิ่มความคิดเห็น