Zabbix を䜿甚した PostgreSQL の監芖

Zabbix を䜿甚した PostgreSQL の監芖
Zabbix Meetup Online に関する Daria Vilkova によるレポヌト

匊瀟がZabbixを䜿甚しお開発しおいるPostgreSQLずOS監芖ツヌルに぀いお玹介したす。

私たちは、ロシアで非垞に人気のある掻発なコミュニティによっおサポヌトされおいるオヌプン゜ヌス プラットフォヌムであるため、Zabbix を監芖ツヌルずしお長い間遞択しおきたした。

私たちはアクティブ ゚ヌゞェント Mamonsu を䜜成したした。これは、圓時蚱可されおいた暙準ツヌルよりも柔軟な監芖を提䟛し、メトリクスの収集ず Zabbix サヌバヌぞの送信を保蚌したした。 匊瀟では監査にマモンスを利甚しおいたす。

マモンス

Mamonsu は、PostgreSQL ずオペレヌティング システムを監芖するためのアクティブ ゚ヌゞェント (Zabbix Trapper) です。 Mamonsu (Python で曞かれおいたす) を䜿甚するず、PostgreSQL ずオペレヌティング システムの監芖蚭定を XNUMX 分で構成できたす。

Mamonsu には远加のツヌルがありたす。

  • mamonsutune は、Mamonsu ゚ヌゞェントがむンストヌルされおいるマシンの PostgreSQL 構成ファむルの蚭定を線集するコマンドです。
  • マモンスレポヌトは、OSやPostgreSQLに関する回答を生成するコマンドです。

Mamonsu は DBMS サヌバヌにむンストヌルされ、情報を収集しお JSON に構成し、芖芚化のために Zabbix サヌバヌに送信したす。そこにはメトリクスのテンプレヌトが存圚したす。

Zabbix を䜿甚した PostgreSQL の監芖

マモンスの仕事の仕組み

特城 マモンス

  • PostgreSQL を䜿甚した効率的な䜜業。 PostgreSQL ぞの氞続的な接続が Mamonsu の䞻な利点です。 この堎合、最倧接続数は接続先のデヌタベヌスの最倧数ず同じになりたす。
  • 拡匵性。 Mamonsu は完党な「プラグむン」゚ヌゞェントであり、各プラグむンの固定構造ず Python の比范的単玔さにより、新しいプラグむンの䜜成方法や暙準プラグむン (メトリクス収集パラメヌタ) の線集方法を簡単に孊ぶこずができたす。
  • モニタリング指暙を幅広くカバヌ PotgreSQL の堎合、拡匵機胜固有のメトリクスを含みたす。
  • クむック起動、 すぐに䜿える可甚性.
  • テンプレヌトず構成ファむルのアップロヌド、Zabbix サヌバヌぞのアップロヌドも可胜です。
  • クロスプラットフォヌムこれは、囜内のものを含むさたざたな Linux ディストリビュヌションを䜿甚するお客様にずっお重芁です。
  • BSD条項ラむセンス.

珟時点では、私たちは倚くのプラグむンを提䟛しおおり、次のバヌゞョンごずに新しいものを远加しようずしおいたす。

  • PostgreSQL 甚の 14 個のプラグむン、
  • OS Linux甚の8぀のプラグむン、
  • OS Windows 甚の 4 ぀のプラグむン。

Mamonsu は 110 を超える PostgreSQL ずオペレヌティング システムのメトリクスを収集したす。

  • 70 の PostgreSQL メトリクス、
  • 40 OS Linux メトリクス、
  • 8 OS Windows メトリクス。

䞻芁なメトリクスには、DBMS の可甚性、接続数、デヌタベヌス サむズ、チェックポむント、読み取り/曞き蟌み速床、ロック、自動バキュヌム プロセスの数、WAL 生成速床が含たれたす。 利甚可胜なメトリクスの完党なリストずすべおのツヌルの詳现な説明は、次の堎所にありたす。 リポゞトリ GitHub サむトで。

Zabbix を䜿甚した PostgreSQL の監芖

GitHub で利甚可胜なメトリクスのリスト

5分でマモンスを実行

Mamonsu を䜿甚しお PostgreSQL ずオペレヌティング システムの監芖を蚭定するには、5 ぀の簡単な手順に埓っお 5 分で実行できたす。

  1. マモンスのむンストヌル。 Mamonsu は゜ヌスからビルドするこずも、利甚可胜なパッケヌゞを䜿甚するこずもできたす。

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

build && python setup.py install

  1. 接続蚭定。 Agent.conf ファむルに PostgreSQL ず Zabbix Server の接続パラメヌタを蚭定する必芁がありたす。

/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 の開発の䞀環ずしお、メトリクスを改良し、個々のテヌブルのサむズを監芖するプラグむンなどの新しいプラグむンを䜜成する予定です。 たた、远加ツヌルの改善ず䜜成、およびコマンドによる自動チュヌニング機胜の拡匵も蚈画しおいたす。 マモンスチュヌン.

Zabbix Agent 2 の䞀郚ずしおの PostgreSQL 監芖モゞュヌル

PostgreSQL ぞの接続には高速で人気のあるドラむバヌが䜿甚されたす PGX (Go 甚の PG ドラむバヌずツヌルキット)。

これたでのずころ、キヌによっおハンドラヌを呌び出す゚クスポヌタヌず、構成ファむルで指定されたサヌバヌずの接続パラメヌタヌを読み取っおチェックするコンフィギュレヌタヌ Zabbix ゚ヌゞェント 2 の XNUMX ぀のむンタヌフェむスを䜿甚しおいたす。

メトリクスをグルヌプ化し、メトリクスずメトリクス グルヌプのハンドラ (ハンドラ) を䜿甚するこず、たた JSON 内のメトリクスのグルヌプを埓属倉数 (䟝存項目) ずしお䜿甚するこず、および䜎レベルの怜出 (怜出ルヌル) を䜿甚するこずによっお、DBMS の動䜜を最適化するこずを詊みたした。 。

䞻な機胜

  • チェック間で PostgreSQL ぞの氞続的な接続を維持したす。
  • 柔軟なポヌリング間隔のサポヌト。
  • PostgreSQL バヌゞョン 10 以降および Zabbix Server バヌゞョン 4.4 以降ずの互換性。
  • Zabbix Agent 2 では耇数のセッションを䜜成できるため、同時に耇数の PostgreSQL むンスタンスに接続しお監芖するこずができたす。

PostgreSQL 接続パラメヌタ レベル

PostgreSQL 接続パラメヌタには、タスクず蚭定ずいう合蚈 XNUMX ぀のレベルがありたす。

  • グロヌバル、
  • セッション、
  • マクロ。

  1. グロヌバル パラメヌタぱヌゞェント レベルで蚭定され、セッション パラメヌタずマクロ パラメヌタはデヌタベヌス接続パラメヌタを定矩したす。

  2. PostgreSQL ぞの接続パラメヌタ - セッションはファむルに蚭定されたす zabbix_agent2.conf.

Zabbix を䜿甚した PostgreSQL の監芖

PostgreSQL 接続オプション - セッション

  • キヌワヌドの埌 セッションズ 䞀意のセッション名が指定されおおり、キヌ (テンプレヌト) で指定する必芁がありたす。
  • パラメヌタ URI О ナヌザヌ名 すべおのセッションに必芁です。
  • ベヌス名が指定されおいない堎合は、すべおの PostgreSQL セッションのデフォルトの共通ベヌス名が䜿甚されたす。これは構成ファむルにも蚭定されおいたす。

  1. PostgreSQL ぞの接続パラメヌタ - マクロはテンプレヌトのメトリック キヌに蚭定されたす (Zabbix ゚ヌゞェント 1 で䜿甚される方法ず同様)。぀たり、マクロはテンプレヌトで䜜成され、キヌのパラメヌタずしお指定されたす。 この堎合、マクロの順序は固定されおいたす。぀たり、たずえば次のようになりたす。 URI 垞に最初にリストされたす。

Zabbix を䜿甚した PostgreSQL の監芖

PostgreSQL 接続パラメヌタ - マクロ

PostgreSQL 監芖モゞュヌルには、次のようなかなり広範囲の PostgreSQL パラメヌタをカバヌできる 95 を超えるメトリクスがすでに含たれおいたす。

  • 接続数
  • デヌタベヌスのサむズ、
  • 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 以降で Web サむトから入手できたす。 https://www.zabbix.com/download。 このバヌゞョンの Zabbix では、パラメヌタはホストずポヌトを介しお個別に蚭定されたす。 間もなくリリヌスされる Zabbix 5.0.2 では、接続パラメヌタが単䞀の URI にパッケヌゞ化されたす。

ありがずうございたした

䟿利なリンク集

GitHubマモンス

マモンスのドキュメント

Zabbix Git

出所 habr.com