Zabbix ашиглан PostgreSQL-г хянах

Zabbix ашиглан PostgreSQL-г хянах
Zabbix Meetup Online-д зориулсан Дарья Вилковагийн илтгэл

Та бүхэнд манай компанийн Zabbix ашиглан хөгжүүлдэг PostgreSQL болон үйлдлийн системийн хяналтын хэрэгслийг танилцуулахыг хүсч байна.

Бид Zabbix-ийг олон жилийн өмнө хяналтын хэрэгслээр сонгосон, учир нь энэ нь Орос улсад маш их алдартай идэвхтэй нийгэмлэгийн дэмжлэгтэй нээлттэй эхийн платформ юм.

Бид идэвхтэй агент болох Mamonsu-г үүсгэсэн бөгөөд энэ нь тухайн үед зөвшөөрөгдсөн стандарт хэрэглүүрээс илүү уян хатан хяналт тавьж, хэмжигдэхүүнүүдийг цуглуулж, Zabbix сервер рүү илгээх боломжийг хангасан. Манай компанид Мамонсуг аудит хийхдээ ашигладаг.

Мамонсу

Мамонсу бол PostgreSQL болон үйлдлийн системийг хянах идэвхтэй агент (Zabbix Trapper) юм. Mamonsu (Python хэл дээр бичигдсэн) нь PostgreSQL болон үйлдлийн системийн хяналтын тохиргоог таван минутын дотор тохируулах боломжийг танд олгоно.

Мамонсу нэмэлт хэрэгсэлтэй:

  • mamonsu tune нь Mamonsu агент суулгасан машины PostgreSQL тохиргооны файлын тохиргоог засварлах тушаал юм.
  • mamonsu тайлан нь үйлдлийн систем болон PostgreSQL-ийн талаар хариулт үүсгэдэг тушаал юм.

Mamonsu нь DBMS сервер дээр суурилагдсан бөгөөд мэдээлэл цуглуулж, JSON-д хөрвүүлдэг бөгөөд үүнийг Zabbix сервер рүү харуулахаар илгээдэг бөгөөд энд түүний хэмжүүрийн загвар байх ёстой.

Zabbix ашиглан PostgreSQL-г хянах

Мамонсугийн үйл ажиллагааны схем

Мамонсугийн онцлог

  • PostgreSQL-тэй үр дүнтэй ажиллах. PostgreSQL-тэй байнгын холболт нь Мамонсугийн гол давуу тал юм. Энэ тохиолдолд холболтын хамгийн их тоо нь түүний холбогдсон мэдээллийн сангийн хамгийн их тоотой тэнцүү байна.
  • Өргөтгөх чадвар. Mamonsu бол бүрэн залгах хэрэгсэл бөгөөд залгаас бүрийн тогтсон бүтэц, Python-ын харьцангуй энгийн байдлын ачаар та стандарт залгаасууд, жишээ нь хэмжүүр цуглуулах параметрүүдийг хэрхэн яаж шинээр бичих, засварлах талаар хялбархан сурах боломжтой.
  • Хяналтын хэмжүүрийн өргөн хүрээг хамарсан PotgreSQL-д зориулагдсан, үүнд тодорхой өргөтгөлийн хэмжүүр орно.
  • Хурдан эхлэх, Хайрцагнаас гарах боломжтой.
  • Загвар болон тохиргооны файлуудыг байршуулж байна, түүнчлэн Zabbix серверт байршуулах.
  • Хөндлөн платформ, энэ нь төрөл бүрийн Линукс, тэр дундаа дотоодын түгээлтийг ашигладаг манай үйлчлүүлэгчдэд чухал ач холбогдолтой юм.
  • BSD заалтын лиценз.

Одоогоор бид олон залгаасуудыг санал болгож байгаа бөгөөд дараагийн хувилбар бүрт шинэ зүйл нэмэхийг хичээдэг.

  • PostgreSQL-д зориулсан 14 залгаас,
  • OS Linux-д зориулсан 8 залгаас,
  • Windows үйлдлийн системд зориулсан 4 залгаас.

Мамонсу 110 гаруй PostgreSQL болон үйлдлийн системийн хэмжүүрүүдийг цуглуулдаг:

  • 70 PostgreSQL хэмжигдэхүүн,
  • 40 үйлдлийн системийн Linux хэмжигдэхүүн,
  • 8 үйлдлийн систем Windows хэмжигдэхүүн.

Гол хэмжүүрүүд нь DBMS-ийн хүртээмж, холболтын тоо, өгөгдлийн сангийн хэмжээ, хяналтын цэгүүд, унших/бичих хурд, түгжээ, автомат вакуум процессын тоо, WAL үүсгэх хурд зэрэг орно. Боломжтой хэмжүүрүүдийн бүрэн жагсаалт, мөн бүх хэрэгслийн дэлгэрэнгүй тайлбарыг эндээс авах боломжтой агуулахууд GitHub вэбсайт дээр.

Zabbix ашиглан PostgreSQL-г хянах

GitHub дээрх боломжтой хэмжүүрүүдийн жагсаалт

Mamonsu-г 5 минутын дотор ажиллуул

Та PostgreSQL болон үйлдлийн системийн хяналтыг Mamonsu ашиглан 5 энгийн алхмыг дагаж 5 минутын дотор тохируулах боломжтой.

  1. Mamonsu суулгаж байна. Мамонсуг эх сурвалжаас эсвэл боломжтой багцуудыг ашиглан барьж болно.

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

build && python setup.py install

  1. Холболтуудыг тохируулж байна. PostgreSQL болон Zabbix серверийн холболтын параметрүүдийг 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-г хөгжүүлэх ажлын хүрээнд бид хэмжигдэхүүнүүдийг боловсронгуй болгож, шинэ залгаасуудыг үүсгэхээр төлөвлөж байна, жишээлбэл, хүснэгтийн хэмжээг хянах нэмэлт өргөтгөл. Бид мөн нэмэлт хэрэгслийг сайжруулж, бий болгох, мөн командаар дамжуулан автоматаар тааруулах чадварыг өргөжүүлэхээр төлөвлөж байна мамонсу ая.

PostgreSQL хяналтын модулийг Zabbix Agent 2-т оруулсан болно

PostgreSQL-тэй холбогдохын тулд хурдан бөгөөд түгээмэл драйвер ашигладаг pgx (Go-д зориулсан PG драйвер болон багаж хэрэгсэл).

Одоогоор бид хоёр интерфэйсийг ашиглаж байна: зохицуулагчийг түлхүүрээр дууддаг Экспортлогч ба тохиргооны файлд заасан серверийн холболтын параметрүүдийг уншиж шалгадаг Configurator Zabbix Agent 2.

Бид хэмжигдэхүүнүүдийг бүлэглэж, хэмжигдэхүүн болон хэмжигдэхүүнүүдийн бүлгүүдэд зохицуулагч ашиглах, түүнчлэн JSON дахь хэмжигдэхүүнийг хамааралтай хувьсагч (хамааралтай зүйлс), доод түвшний нээлт (нээх дүрэм) болгон ашиглах замаар DBMS-ийн гүйцэтгэлийг оновчтой болгохыг оролдсон.

Гол онцлог

  • шалгалтын хооронд PostgreSQL-тэй байнгын холболтыг хадгалах;
  • санал хураалтын уян хатан интервалыг дэмжих;
  • 10-аас эхлэн PostgreSQL хувилбарууд болон 4.4-ээс эхлэн Zabbix Server-тэй нийцдэг;
  • Zabbix Agent 2 нь олон сесс үүсгэх боломжийг олгодог тул хэд хэдэн PostgreSQL инстанцуудыг нэгэн зэрэг холбож, хянах чадвар.

PostgreSQL холболтын параметрийн түвшин

Нийтдээ PostgreSQL-ийн гурван түвшний холболтын параметрүүд байдаг, тухайлбал даалгавар, тохиргоо:

  • Глобал,
  • Хурал
  • Макро.

  1. Глобал параметрүүдийг агентын түвшинд тохируулсан, Session болон Макро параметрүүд нь мэдээллийн сангийн холболтын параметрүүдийг тодорхойлдог.

  2. PostgreSQL-ийн холболтын параметрүүд - Сешнүүдийг файлд тохируулсан zabbix_agent2.conf.

Zabbix ашиглан PostgreSQL-г хянах

PostgreSQL холболтын параметрүүд - Sessions

  • Түлхүүр үгийн дараа Сеанс Түлхүүр (загвар) -д заасан байх ёстой сессийн өвөрмөц нэрийг зааж өгсөн болно.
  • параметрүүд URI и Хэрэглэгчийн нэр сесс бүрт шаардлагатай.
  • Хэрэв өгөгдлийн сангийн нэрийг заагаагүй бол бүх PostgreSQL сешнүүдийн үндсэн нийтлэг өгөгдлийн сангийн нэрийг ашиглах бөгөөд үүнийг тохиргооны файлд мөн зааж өгсөн болно.

  1. PostgreSQL-ийн холболтын параметрүүд - Макрос нь загвар дахь хэмжүүрийн түлхүүрт тодорхойлогддог (Zabbix Agent 1-д ашигласан аргатай адил), өөрөөр хэлбэл тэдгээрийг загварт үүсгээд дараа нь түлхүүрийн параметр болгон зааж өгсөн болно. Энэ тохиолдолд макроны дараалал тогтмол байна, жишээлбэл, URI үргэлж нэгдүгээрт бичигддэг.

Zabbix ашиглан PostgreSQL-г хянах

PostgreSQL холболтын параметрүүд - Макро

PostgreSQL хяналтын модуль нь аль хэдийн 95 гаруй хэмжигдэхүүнийг агуулдаг бөгөөд энэ нь танд PostgreSQL-ийн нэлээд өргөн хүрээний параметрүүдийг хамрах боломжийг олгодог, үүнд:

  • холболтын тоо,
  • мэдээллийн сангийн хэмжээ,
  • wal файлуудыг архивлах,
  • хяналтын цэгүүд,
  • "Газарсан" хүснэгтүүдийн тоо,
  • хуулбарлах байдал,
  • хуулбарын хоцрогдол.

PostgreSQL хэмжигдэхүүнүүд нь үйлдлийн системийн параметрүүдгүйгээр мэдээлэл биш юм. Гэхдээ Zabbix Agent 2 нь үйлдлийн системийн параметрүүдийг хэрхэн цуглуулахаа аль хэдийн мэддэг тул бүрэн дүр зургийг авахын тулд шаардлагатай загваруудыг сүлжээний зангилаа руу холбоно.

Ажиллагч

Харагч нь хүсэлтийг өөрөө гүйцэтгэдэг модулийн үндсэн нэгж бөгөөд хэмжигдэхүүнийг олж авах боломжийг олгодог.

Энгийн хэмжүүр авахын тулд:

  1. Шинэ хэмжигдэхүүн хүлээн авахын тулд файл үүсгэнэ үү:

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

  1. Бид багцыг холбож, өвөрмөц хэмжигдэхүүнүүдийг зааж өгдөг:

Zabbix ашиглан PostgreSQL-г хянах

  1. Бид хүсэлтээр зохицуулагч үүсгэдэг, өөрөөр хэлбэл үр дүнг агуулсан хувьсагчийг эхлүүлдэг:

Zabbix ашиглан PostgreSQL-г хянах

  1. Бид хүсэлтийг биелүүлдэг:

Zabbix ашиглан PostgreSQL-г хянах

Хүсэлтийг алдаа байгаа эсэхийг шалгах шаардлагатай бөгөөд үүний дараа үр дүнг Zabbix Agent 2 процессоор авах болно.

  1. Шинэ хэмжигдэхүүнийг бүртгүүлэх:

Zabbix ашиглан PostgreSQL-г хянах

Хэмжигдэхүүнийг бүртгүүлсний дараа та агентийг шинэ хэмжигдэхүүнээр дахин бүтээх боломжтой.

Уг модулийг Zabbix 5.0-аас эхлэн вэбсайтаас авах боломжтой https://www.zabbix.com/download. Zabbix-ийн энэ хувилбарт параметрүүдийг хост болон портоор тусад нь тохируулдаг. Удахгүй гарах Zabbix 5.0.2 дээр холболтын параметрүүдийг нэг URI болгон нэгтгэх болно.

Таны анхаарлын төвд баярлалаа!

Ашигтай холбоосууд

GitHub Mamonsu

Мамонсугийн баримт бичиг

Заббис Гит

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх