Pigsty v2.2 リリース - モニタリング システムのメジャー アップグレード

Pigsty v2.2 がリリースされ、壮大なメジャー アップグレードが開始され、Grafana v10 の完全なリメイクに基づいて、PG の可観測性が新たな段階に引き上げられ、新たなユーザー エクスペリエンスがもたらされます。デモ: http://demo.pigsty.cc

さらに、Pigsty v2.2 は、42ノードの実稼働シミュレーション環境サンドボックス テンプレートも提供し、Citus 12、PG 16beta2 をサポートし、KVM 仮想マシンを使用した vagrant テンプレートを提供し、分散型/オフウォール RPM パッケージ ソース用の専用 Pigsty Yum を提供します。 、国内の新荘オペレーティング システム Tongxin UOS20 をサポートします。

監視システムのリワーク: 視覚的なカラーマッチング

Pigsty v2.2 では、監視パネルが完全に作り直され、Grafana v10 の新機能を最大限に活用して、ユーザーに新鮮な視覚体験を提供します

最も直感的な変更は色です。Pigsty v2.2では新しいカラー スキームが採用されており、PGSQL 概要パネルを例にとると、新しいカラー スキームにより彩度が低減され、全体的なビジュアル エクスペリエンスが古いバージョンよりも調和して美しくなりました。 

Pigsty v2.0 は Grafana のデフォルトの高彩度カラースキームを使用します

Pigsty v2.2: 失敗したインスタンスは黒でマークされます。クリックすると障害サイトに直接移動します

 Pigsty v2.2 の監視パネルでは、 PG、Nginx 緑、は赤、Python黄、Grafana オレンジなどの色がベンチマークとして使用されます。この配色はこの記事からインスピレーションを得ています: SCI ですが、「天気の子」 ~SCI論文のイラストがXin Haichengの天気の息子のカラーマッチングと出会うとき https://zhuanlan.zhihu.com/p/619556088。 

監視システムのリワーク: Swarm Navigation

もちろん、カラーマッチングに加えて、v2.2 ではコンテンツの配置とレイアウトも再設計されていますたとえば、多数の表形式のナビゲーションが Stats カラー ブロック統計置き換えられ問題のあるサービスが最初の画面で一目でわかるようになりました。異常なカラーブロックをクリックすると、障害箇所に直接移動します。

もちろん、昔ながらのナビゲーション テーブルはより豊富な情報を提供できます。このテーブルは削除されず、専用の [インスタンス/メンバー] 列に移動されました。最も一般的に使用される PGSQL Cluster パネルを例として挙げてみましょう。

最初の画面は、カラー ブロック ベースのグラフィック要素のナビゲーションに基づいており、クラスター コンポーネントの生存ステータスとサービスの可用性、コア インジケーター、負荷レベル、およびアラーム イベントの図を表示します。また、クラスターの内部リソース (インスタンス、接続プール、ロード バランサー、サービス、データベース) への素早いナビゲーションを提供します。

PGSQL クラスターの表形式ナビゲーション

監視システムのリメイク: 例

PGSQL インスタンスには、インスタンスの詳細な状態が表示されます。これも v2.2 で改良されました。最も基本的な設計原則は、注意が必要なのは青/緑の状態ではないということです。このように、カラービジュアルコーディングを通じて、ユーザーは事故分析中にデータベースインスタンス障害の根本原因を迅速に特定できます。

特定のクラスター リソース テーブルの詳細は 2 番目の列にあります。背面のインジケーター列とログ列と連携して、PostgreSQL データベース クラスターのコア ステータスを完全に表現します。

他のインスタンス、ホストノード、ETCD、MinIO、Redisも同様のデザインを使用しています。たとえば、ノードインスタンスの最初の画面は次のようになります。

ノード インスタンスのメトリクス セクションはほとんど同じままですが、スクロールせずに見える範囲の概要セクションが作り直されました。MinIO の概要についても同様です。

etcd 概要は、State Timeline を使用して、DCS サービスの可用性ステータスを視覚化します。たとえば、次の図は、シミュレートされた etcd 障害シーンを示しています: 5 ノードの etcd クラスターでは、各インスタンスが順番にシャットダウンされます。クラスターは 2 つのノードの障害を許容できますが、3 つのノードの障害により、etcd サービス全体が使用できなくなります。 (黄色のバーが濃い青に変わります。これは、ETCD サービス全体が利用できないことを意味します)。

DCS に障害が発生すると、高可用性を実現するために ETCD に依存する PostgreSQL クラスターは、デフォルトで FailSafeMode を有効にします。DCS 自体の障害ではなく、すべてのクラスター メンバーが到達可能であることを確認することを前提として、メイン ライブラリの劣化による障害を回避できます。 。そしてこれはPGのモニタリングにも反映されます。

監視システムリメイク:サービス

もう 1 つの再設計された部分はサービスとプロキシです。[サービス] パネルには、サービスに関する重要な情報が追加されました: SLI。ストリップ ステートタイムラインを通じて、ユーザーはサービスの中断を視覚的に確認し、サービス可用性インジケーターを取得し、ロード バランサーとバックエンドの実データベース サーバーのステータスを理解できます。

この例では、pg-test クラスターの 4 つの HAProxy がドレインされ、メンテナンス状態の操作が設定され、バックエンド データベース サーバーがシャットダウンされます。クラスターのすべてのインスタンスがオフラインの場合にのみ、読み取り専用サービス pg-test-replica は使用不可状態になります。

これは、pg-test クラスター内の HAProxy ロード バランサー 1 番のモニタリング パネルで、これによってホストされている各サービスがリストされ、バックエンド サーバーのステータスが表示され、SLI が計算されます。HAProxy 自体のステータスと監視は、Node Haproxy 監視パネルに表示されます。

グローバル概要では、Pigsty のすべてのデータベース サービスの全体的なステータス タイムラインと SLI インジケーターを確認できます。

監視システムの再構築: データベース統計

Pigsty では、データベース サーバーの監視に加えて、データベース サーバーが保持する論理オブジェクト (データベース、テーブル、クエリ、インデックス、その他のロジック) も監視します。

PGSQL データベースには、クラスターレベルのデータベース統計が表示されます。たとえば、pg-test クラスターには 4 つのデータベース インスタンスとデータベース テストがあり、これら 4 つのインスタンスのデータベース インジケーターのレベルの比較を次に示します。

ユーザーは、単一データベース インスタンスの内部統計、つまり PGSQL データベース パネルにさらにドリルダウンできます。このパネルには、データベースと接続プールに関する重要なメトリクスがいくつか表示されますが、最も重要なのは、PGSQL データベース パネルがデータベース内で最もアクティブなテーブルとクエリのインデックスを提供することです。これらは、ライブラリ オブジェクトの 2 つの最も重要なタイプです。

監視システムリメイク:システムカタログ

Pigstyでは、pgexporterで収集したインデックスデータに加え、オプションの重要補足データであるシステムカタログを使用します。これは、PGCAT シリーズのダッシュボードでも行われます。PGCAT インスタンスは、データベース システム カタログに直接アクセスし (最大 8 つの監視読み取り専用接続を使用)、必要な情報を取得して表示します。

たとえば、データベースの現在実行中のアクティビティを取得し、さまざまな指標に従って、データベース内の遅いクエリ、無駄なインデックス、およびフル テーブル スキャンを特定して分析できます。データベースの役割、セッション、レプリケーションのステータス、構成の変更ステータス、メモリ使用量の詳細、バックアップと永続性の詳細を確認します。

PGCAT インスタンスがデータベース サーバー自体に焦点を当てている場合、PGCAT データベースは単一データベース内のオブジェクトの詳細 (スキーマ、テーブル、インデックス、拡張、上位 SQL、上位テーブルなど) にさらに注意を払います。

各スキーマ、テーブル、インデックスをクリックしてドリルダウンし、より詳細な専用パネルに入ることができます。たとえば、PGCAT スキーマは、建築モデル内のオブジェクトの詳細をさらに明らかにします。

データベース内のクエリも実行計画に従って集約されるため、ユーザーは問題のある SQL を見つけたり、遅いクエリの問題を迅速に特定したりするのに便利です

システムのリワークの監視: テーブルとクエリ

Pigsty では、テーブルのあらゆる側面を検索できます。PGCAT テーブル パネルでは、テーブルのメタデータ、そのインデックス、各列の統計、および関連するクエリを表示できます。

もちろん、PGSQL テーブル パネルを使用して、インジケーターのディメンションから任意の履歴期間におけるテーブルのキー インジケーターを表示することもできます。テーブル名をクリックすると、2 つの視点を簡単に切り替えることができます。

同様に、同じクラスの SQL (同じ実行プラン)の詳細情報も取得できます。

Pigsty には、特定のトピックに関するダッシュボードも多数あります。紙面の都合上、ここでは監視システムの紹介とさせていただきます。これを体験する最も直感的な方法は、Pigsty が提供する公開デモ (http://demo.pigsty.cc) にアクセスして、自分でプレイすることです。これは 4 台の 1C 仮想マシンの単純な環境にすぎませんが、Pigsty の最も基本的な監視システム機能を実証するには十分です。

大規模なシミュレーション環境

Pigsty は、ラップトップ/Mac 上で実行できる Vagrant と Virtualbox に基づいたサンドボックス環境を提供します。デモンストレーションと学習用に 1 ノードの最小バージョンと 4 ノードのフル バージョンがあり、現在 v2.2 には 42 ノードが追加されています   -ノード本番シミュレーションサンドボックス。

運用サンドボックスの詳細はすべて、500 行未満の構成ファイル prod.yml で記述されており、通常のサーバー物理マシン上で簡単に実行でき、プルアップのプロセスは 4 つのノードと同じです: make prodインストールすれば完了です。

Pigsty v2.2 では、libvirt ベースの Vagrantfile テンプレートが提供されており、上記の構成でマシン リストを調整するだけで、ワンクリックで必要な仮想マシンを作成できます。Dell R730 48C 256G 物理マシンではすべてが簡単に実行でき  、中古価格は 3,000 元未満です。もちろん、Pigsty Terraform テンプレートを使用して、ワンクリックでクラウド プロバイダー上に仮想マシンを起動することもできます。

インストール完了後の環境は、マスター 1 台とバックアップ 1 台の 2 ノードの監視インフラストラクチャを含めて次のようになります。5 ノードの専用 etcd クラスター、PG バックアップを保存するオブジェクト ストレージ サービスを提供する 3 ノードのサンプル MinIO クラスター、およびデータベース サービスのロード バランシングを均一に提供できる 2 ノードの専用 HAProxy クラスターです。

これに加えて、さまざまな仕様の3 セットの Redis データベース クラスターと10 セットの PostgreSQL データベース クラスターがあり、これには、すぐに使える 5 シャードの Citus 12 分散 PostgreSQL クラスターのセットが含まれます。

この構成は、中規模および大規模企業が大規模なデータベース クラスターを実行および管理するための参考例であり、単一の物理サーバーでのワンクリック起動を 30 分で完了できます。

よりスムーズなビルドプロセス

Pigsty に必要なソフトウェアをインターネットから直接ダウンロードすることを選択すると、Kungfu.com の煩わしさに遭遇する可能性があります。たとえば、デフォルトの Grafana/Prometheus Yum ソースのダウンロードは非常に遅いです。さらに、repotrack RPM ではなく Web URL を通じてダウンロードする必要がある RPM パッケージがいくつか散在しています。

Pigsty v2.2 では、この問題は解決されています。Pigsty は公式の yum ソース http://get.pigsty.cc を提供しており、デフォルトのアップストリーム ソースの 1 つとして設定されています。分散した RPM と壁を越える必要がある RPM はすべてその中に配置されるため、オンラインでのインストール/構築を効果的に高速化できます。

さらに、Pigsty は、一部の特別な顧客の特別なニーズを満たすために、新荘オペレーティング システムである Tongxin UOS 1050e uel20 (v2.2) のサポートも提供しています。Pigsty は、必要な顧客にサポートを提供するために、これらのシステム用に PG 関連の RPM パッケージを再コンパイルしました。

インストール

v2.2 以降、Pigsty のインストール コマンドは次のようになります。

bash -c "$(curl -fsSL http://get.pigsty.cc/latest)"

Pigsty は 1 行のコマンドで新しいマシンに完全にインストールできます。ベータ版を試したい場合は、latest を beta に置き換えるだけです。インターネットにアクセスできない特殊な環境の場合は、以下のリンクを使用して Pigsty をダウンロードしたり、すべてのソフトウェアにパッケージ化されたオフライン インストーラーをダウンロードしたりすることもできます。

  • http://get.pigsty.cc/v2.2.0/pigsty-v2.2.0.tgz
  • http://get.pigsty.cc/v2.2.0/pigsty-pkg-v2.2.0.el7.x86_64.tgz
  • http://get.pigsty.cc/v2.2.0/pigsty-pkg-v2.2.0.el8.x86_64.tgz
  • http://get.pigsty.cc/v2.2.0/pigsty-pkg-v2.2.0.el9.x86_64.tgz

以上が Pigsty v2.2 による変更点です。詳細については、Pigsty 公式ドキュメントおよびGithub リリースノートを参照してください。

おすすめ

転載: www.oschina.net/news/252434/pigsty-v2-2-released