รายงานโดย 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 เพื่อสร้างภาพ ซึ่งควรมีเทมเพลตสำหรับเมตริก
รูปแบบการทำงานของ 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
วิ่ง Mamonsu ใน 5 นาที
หากต้องการตั้งค่าการตรวจสอบ PostgreSQL และระบบปฏิบัติการโดยใช้ Mamonsu คุณสามารถทำได้ภายใน 5 นาทีโดยทำตามขั้นตอนง่ายๆ 5 ขั้นตอน
- การติดตั้ง Mamonsu. Mamonsu สามารถสร้างจากแหล่งที่มาหรือใช้แพ็คเกจที่มีอยู่
$ git clone ... && cd mamonsu && python setup.py
build && python setup.py install
- การตั้งค่าการเชื่อมต่อ. จำเป็นต้องตั้งค่าพารามิเตอร์การเชื่อมต่อสำหรับ PostgreSQL และ Zabbix Server ในไฟล์ agent.conf
/etc/mamonsu/agent.conf
- ส่งออกเทมเพลตไปยังเซิร์ฟเวอร์ Zabbix.
$ mamonsu zabbix template export
/usr/share/mamonsu/example.xml
- การเพิ่มโฮสต์ไปยังเซิร์ฟเวอร์ Zabbix. เทมเพลตที่ส่งออกจะเชื่อมต่อกับโฮสต์ใหม่บนเซิร์ฟเวอร์ Zabbix โดยอัตโนมัติ
$ mamonsu zabbix host create mamonsu-demo
- ยิง.
$ service mamonsu start
ทิศทางการพัฒนา Mamonsu
ในฐานะส่วนหนึ่งของการพัฒนา Mamonsu เราวางแผนที่จะปรับแต่งเมตริกและสร้างปลั๊กอินใหม่ เช่น ปลั๊กอินสำหรับตรวจสอบขนาดของแต่ละตาราง นอกจากนี้ เรายังวางแผนที่จะปรับปรุงและสร้างเครื่องมือเพิ่มเติม รวมถึงขยายความสามารถในการปรับแต่งอัตโนมัติผ่านคำสั่ง เพลงมามอนซู.
โมดูลการตรวจสอบ PostgreSQL เป็นส่วนหนึ่งของ Zabbix Agent 2
ไดรเวอร์ที่รวดเร็วและเป็นที่นิยมใช้เพื่อเชื่อมต่อกับ PostgreSQL
จนถึงตอนนี้ เราใช้สองอินเทอร์เฟซ: Exporter ซึ่งเรียกใช้ตัวจัดการด้วยคีย์ และ Configurator Zabbix Agent 2 ซึ่งอ่านและตรวจสอบพารามิเตอร์การเชื่อมต่อกับเซิร์ฟเวอร์ที่ระบุในไฟล์การกำหนดค่า
เราพยายามเพิ่มประสิทธิภาพการทำงานของ DBMS โดยการจัดกลุ่มเมตริกและใช้ตัวจัดการ (ตัวจัดการ) สำหรับเมตริกและกลุ่มเมตริก รวมทั้งใช้กลุ่มของเมตริกใน JSON เป็นตัวแปรตาม (รายการอ้างอิง) และการค้นพบระดับต่ำ (กฎการค้นพบ ).
คุณสมบัติหลัก
- รักษาการเชื่อมต่อกับ PostgreSQL อย่างต่อเนื่องระหว่างการตรวจสอบ
- การสนับสนุนช่วงเวลาการสำรวจที่ยืดหยุ่น
- ความเข้ากันได้กับเวอร์ชัน PostgreSQL ที่เริ่มต้นจาก 10 และเซิร์ฟเวอร์ Zabbix ที่เริ่มต้นจากเวอร์ชัน 4.4;
- ความสามารถในการเชื่อมต่อและตรวจสอบอินสแตนซ์ PostgreSQL หลายรายการพร้อมกันเนื่องจาก Zabbix Agent 2 ช่วยให้คุณสร้างหลายเซสชันได้
ระดับพารามิเตอร์การเชื่อมต่อ PostgreSQL
โดยรวมแล้ว มีพารามิเตอร์การเชื่อมต่อ PostgreSQL สามระดับ ได้แก่ งานและการตั้งค่า:
- ทั่วโลก
- เซสชั่น
- มาโคร
-
พารามิเตอร์ Global ถูกตั้งค่าที่ระดับเอเจนต์ พารามิเตอร์ Session และ Macros กำหนดพารามิเตอร์การเชื่อมต่อฐานข้อมูล
-
พารามิเตอร์การเชื่อมต่อกับ PostgreSQL - เซสชันถูกตั้งค่าในไฟล์ zabbix_agent2.conf.
ตัวเลือกการเชื่อมต่อ PostgreSQL - เซสชัน
- หลังจากคำหลัก การประชุม มีการระบุชื่อเซสชันที่ไม่ซ้ำกันซึ่งต้องระบุในคีย์ (เทมเพลต)
- พารามิเตอร์ URI и ชื่อผู้ใช้ จำเป็นสำหรับทุกเซสชัน
- หากไม่ได้ระบุชื่อฐาน ระบบจะใช้ชื่อฐานทั่วไปเริ่มต้นสำหรับเซสชัน PostgreSQL ทั้งหมด ซึ่งตั้งค่าไว้ในไฟล์การกำหนดค่าด้วย
- พารามิเตอร์การเชื่อมต่อกับ PostgreSQL - มาโครถูกตั้งค่าในคีย์เมตริกในเทมเพลต (คล้ายกับวิธีการที่ใช้ใน Zabbix Agent 1) เช่น พวกมันถูกสร้างขึ้นในเทมเพลต จากนั้นระบุเป็นพารามิเตอร์ในคีย์ ในกรณีนี้ ลำดับของมาโครจะคงที่ เช่น URI อยู่ในรายการก่อนเสมอ
พารามิเตอร์การเชื่อมต่อ PostgreSQL - มาโคร
โมดูลการตรวจสอบ PostgreSQL มีเมตริกมากกว่า 95 รายการอยู่แล้ว ซึ่งช่วยให้คุณครอบคลุมพารามิเตอร์ PostgreSQL ที่ค่อนข้างหลากหลาย รวมถึง:
- จำนวนการเชื่อมต่อ
- ขนาดฐานข้อมูล
- การเก็บถาวรไฟล์ wal
- จุดตรวจ,
- จำนวนตาราง "ป่อง"
- สถานะการจำลองแบบ
- ความล่าช้าของแบบจำลอง
เมตริก PostgreSQL จะไม่ให้ข้อมูลหากไม่มีพารามิเตอร์ของระบบปฏิบัติการ แต่ Zabbix Agent 2 รู้วิธีรวบรวมพารามิเตอร์ของระบบปฏิบัติการอยู่แล้ว ดังนั้นเพื่อให้ได้ภาพรวม เราเพียงเชื่อมต่อเทมเพลตที่จำเป็นกับโฮสต์
แฮนด์เลอร์
ตัวจัดการเป็นหน่วยหลักของโมดูลที่ดำเนินการตามคำขอและอนุญาตให้คุณรับเมตริก
วิธีรับเมตริกอย่างง่าย:
- สร้างไฟล์เพื่อรับเมตริกใหม่:
zabbix/src/go/plugins/postgres/handler_uptime.go
- เราเชื่อมต่อแพ็คเกจและระบุคีย์เฉพาะ (คีย์) ของเมตริก:
- เราสร้างตัวจัดการ (ตัวจัดการ) ด้วยคำขอ เช่น เราเริ่มต้นตัวแปรที่จะประกอบด้วยผลลัพธ์:
- เราดำเนินการตามคำขอ:
จำเป็นต้องตรวจสอบคำขอสำหรับข้อผิดพลาด หลังจากนั้นกระบวนการ Zabbix Agent 2 จะเลือกผลลัพธ์
- ลงทะเบียนคีย์เมตริกใหม่:
หลังจากลงทะเบียนเมทริกแล้ว คุณสามารถสร้างเอเจนต์ใหม่ด้วยเมทริกใหม่ได้
โมดูลพร้อมใช้งานตั้งแต่ Zabbix 5.0 บนไซต์
ขอบคุณ!
ลิงค์ที่มีประโยชน์
ที่มา: will.com