ハイブリッドクラウドは、数年前から増加している最近の概念であり、現在、ディザスタリカバリプラン(DRP)の場合、またはシステムに冗長性を持たせるために、どの企業でも一般的なトポロジになっています。
ハイブリッドクラウド環境を稼働させたら、常に何が起こっているのかを知る必要があります。すべてが正常に機能していることを確認したい場合、または何かを変更する必要がある場合は、監視が必須です。データベーステクノロジごとに、監視することがいくつかあります。これらの一部は、データベースエンジン、ベンダー、または使用している特定のバージョンに固有のものです。
このブログでは、ハイブリッドクラウド環境で実行されているPostgreSQLデータベースで監視する必要があるものと、ClusterControlがこのタスクでどのように役立つかを説明します。
PostgreSQLで監視するもの
データベースクラスターまたはノードを監視する場合、考慮すべき主な事項が2つあります。オペレーティングシステムとデータベース自体です。両側から監視するメトリックとその方法を定義する必要があります。
メトリックの1つが影響を受けると、他のメトリックにも影響を与える可能性があり、問題のトラブルシューティングがより複雑になることに注意してください。このタスクをできるだけ簡単にするためには、優れた監視およびアラートシステムを用意することが重要です。
1つの重要なこと(すべてのデータベースエンジン、さらにはすべてのシステムに共通)は、オペレーティングシステムの動作を監視することです。ここで確認するポイントをいくつか見てみましょう。
通常の動作でない場合、CPU使用率の過剰な割合が問題になる可能性があります。この場合、この問題を引き起こしている1つまたは複数のプロセスを特定することが重要です。問題がデータベースプロセスにある場合は、データベース内で何が起こっているかを確認する必要があります。
RAMメモリまたはSWAPの使用量
このメトリックに高い値が表示されていて、システムに何も変更がない場合は、データベース構成を確認する必要があります。 shared_buffersやwork_memなどのパラメーターは、PostgreSQLデータベースに使用できるメモリの量を定義するため、これに直接影響を与える可能性があります。
PostgreSQLログファイルに多数のエラーが記録されたり、キャッシュ構成が正しくなかったりする可能性があるため、ディスクスペースの使用量の異常な増加やディスクアクセスの過剰な消費を監視することが重要です。クエリの処理にメモリを使用する代わりに、重要なディスクアクセスの消費を生成します。
アプリケーションがデータベースに接続できない(または失われたパッケージを接続できない)ため、ネットワークの問題がすべてのシステムに影響を与える可能性があるため、これは実際に監視する重要な指標です。遅延またはパケット損失を監視できます。主な問題は、ネットワークの飽和、ハードウェアの問題、または単にネットワーク構成の不良である可能性があります。
PostgreSQLデータベースを監視することは、問題が発生しているかどうかを確認するだけでなく、データベースのパフォーマンスを向上させるために何かを変更する必要があるかどうかを知ることも重要です。これはおそらく最も重要なことの1つです。データベースで監視します。これに重要ないくつかの指標を見てみましょう。
一般に、データベースはデフォルトで互換性と安定性を念頭に置いて構成されているため、クエリとそのパターンを理解し、トラフィックに応じてデータベースを構成する必要があります。ここでは、EXPLAINコマンドを使用して、特定のクエリのクエリプランを確認できます。また、各ノードのSELECT、INSERT、UPDATE、またはDELETEの量を監視することもできます。長いクエリまたは多数のクエリを同時に実行している場合、それはすべてのシステムで問題になる可能性があります。
別のクエリを待機しているクエリがある場合は、その別のクエリが通常のプロセスであるか、何か新しいものであるかを確認する必要があります。たとえば、誰かが大きなテーブルを更新している場合、このアクションはデータベースの通常の動作に影響を及ぼし、多数のロックを生成する可能性があります。
レプリケーションを監視するための主要なメトリックは、ラグとレプリケーションの状態です。最も一般的な問題は、ネットワーキングの問題、ハードウェアリソースの問題、または寸法の問題です。レプリケーションの問題に直面している場合は、高可用性環境を確保するために修正する必要があるため、このことをできるだけ早く知る必要があります。
データ損失の回避は基本的なDBAタスクの1つであるため、バックアップを取る必要があるだけでなく、バックアップが完了したかどうか、およびバックアップが使用可能かどうかを知る必要があります。通常、この最後の点は考慮されませんが、バックアッププロセスでおそらく最も重要なチェックです。
データベースログを監視して、エラー、認証の問題、さらには長時間実行されるクエリがないかどうかを確認する必要があります。ほとんどのエラーは、それらを修正するための詳細な有用な情報とともにログファイルに書き込まれます。
各問題に関する通知を受け取らなければ、システムを監視するだけでは不十分です。警告システムがない場合は、監視ツールにアクセスしてすべてが正常かどうかを確認する必要があります。何時間も前から大きな問題が発生している可能性があります。このアラートジョブは、電子メールアラート、テキストアラート、またはSlackなどの他のツールを使用して実行できます。
PostgreSQLに必要なすべてのメトリックを監視するツールを見つけることは非常に困難です。一般に、複数を使用する必要があり、スクリプトを作成する必要があります。監視とアラートのタスクを一元化する1つの方法は、ClusterControlを使用することです。これは、バックアップ管理、監視とアラート、展開とスケーリング、自動回復、およびデータベースの管理に役立つより重要な機能などの機能を提供します。同じシステム上のこれらすべての機能。
ここで重要な点の1つは、ClusterControlがクラウド、オンプレミス、またはその両方の組み合わせで機能することです。ここでの要件は、ノードへのSSHアクセスが必要であり、その後、ClusterControlがノードを処理します。
ClusterControlを使用したPostgreSQLデータベースの監視
ClusterControlは、使いやすいインターフェイスからデータベースを展開、管理、監視、および拡張するのに役立つ管理および監視システムです。最高のオープンソースデータベーステクノロジーをサポートしており、新しいノードの追加とスケーリング、バックアップと復元の実行など、定期的に実行する必要のあるデータベースタスクの多くを自動化できます。
ClusterControlを使用すると、事前定義されたダッシュボードのセットを使用してサーバーをリアルタイムで監視し、最も一般的なメトリックのいくつかを分析できます。
クラスターで使用可能なグラフをカスタマイズできます。また、エージェントベースの監視を有効にして、より詳細なダッシュボードを生成できます。
クラスター内のイベントを通知するアラートを作成したり、PagerDutyやSlackなどのさまざまなサービスと統合したりすることもできます。
クエリモニターセクションでは、上位のクエリ、実行中のクエリ、クエリの外れ値、およびデータベーストラフィックを監視するためのクエリ統計を確認できます。
これらの機能を使用すると、PostgreSQLデータベースの状態を確認できます。
バックアップ管理の場合、ClusterControlはデータを一元化して保護、保護、およびリカバリします。検証バックアップ機能を使用すると、バックアップが適切かどうかを確認できます。
この検証バックアップジョブは、バックアップを別のスタンドアロンホストに復元するため、バックアップが機能していることを確認できます。
最後に、ログを確認するためにデータベースノードにアクセスする必要はありません。すべてのデータベースログは、ClusterControlログセクションに一元的に表示されます。
ご覧のとおり、同じ集中型システムであるClusterControlから上記のすべてを処理できます。
ClusterControlコマンドラインを使用した監視
タスクのスクリプト作成と自動化、またはコマンドラインだけを使用する場合でも、ClusterControlにはs9sツールがあります。これは、データベースクラスターを管理または監視するためのコマンドラインツールです。
ClusterControl UIで利用可能なすべてのタスク(およびそれ以上)を実行でき、この機能をSlackなどの外部ツールと統合して、そこから管理できます。
ご覧のとおり、監視は、オンプレミス、クラウド、またはそれらの組み合わせで実行されているかどうかに関係なく、絶対に必要です。監視を行うための最善の方法は、インフラストラクチャとシステム自体によって異なります。このブログでは、PostgreSQL環境で監視するいくつかの重要なメトリック、ClusterControlを使用してジョブを実行する方法について説明しました。