PMM 3.0.0の一般提供
PMMのアーキテクチャを完全に見直した新しいメジャーバージョンである、PMM 3.0.0の一般提供を発表できることを嬉しく思います。
このマイルストーンでは、ルートレスデプロイメントによるセキュリティの大幅な改善、機密データの暗号化、コンテナ化されたアーキテクチャによる安定性の向上、柔軟な監視設定によるユーザーエクスペリエンスの向上が実現されています。主な変更点には、公式ARMサポート、MongoDB 8.0監視、合理化されたアップグレードプロセスなどがあります。
セキュリティ強化
ルートレスデプロイメントのサポート
アプリケーションでルートユーザーを使用すると、特に古いソフトウェアが環境にインストールされているか常駐している場合は、重大なセキュリティリスクが生じます。
PMMサーバーは、最新バージョンのPodman、Helm、Docker、Virtual Appliance、Amazon AWSなど、複数の方法でルートレスデプロイメントをサポートするようになりました。
このルートレスセットアップにより、コンテナーの作成、実行、管理にルート権限が不要になるため、セキュリティが強化されます。PMMサーバーを非ルートユーザーとして実行することによって、ホストシステムでルート権限を付与する必要がなくなり、潜在的な脆弱性やセキュリティ侵害に対する追加の保護層が提供されます。
ルートレスPMMのデプロイ手順については、Setting up PMM Serverトピックを参照してください。
PodmanインストールのUIベースアップグレード
Podmanで実行されているPMM Serverインストールを、UIのPMM Configuration > Updatesパネルから直接アップグレードできるようになりました。
この機能は、コンテナの自動更新のためにWatchtowerを統合し、新しい環境変数 (PMM_WATCHTOWER_HOST、PMM_WATCHTOWER_TOKEN) と関連するsystemdサービス設定の設定を必要とします。
詳細な設定手順については、Installation with UI updatesを参照してください。
機密データの暗号化
プレーンテキストのパスワードと資格情報は、OWASP (Open Web Application Security Project) によって特定された上位10のセキュリティリスクの1つです。
このリスクに対処するため、PMMはデータベースに保存されている全ての機密情報を暗号化するようになりました。これには、ユーザー名、パスワード、AWSキー、Azure資格情報、TLS/SSL証明書が含まれ、監視環境のセキュリティが大幅に強化されます。ユーザーアカウントの監視には最小限の権限を推奨していますが、機密データは保護されているので安心です。
デフォルトでは、PMMは暗号化キーを生成し、それを/srv/pmm-encryption.keyに保存します。または、新しい環境変数 PMM_ENCRYPTION_KEY_PATHを使用して、暗号化キーのカスタムパスを定義することもできます。
PMM3にアップグレードすると、暗号化されていない既存のPMM2データは全て自動的に暗号化されます。
詳細については、PMM data encryptionを参照してください。
GrafanaサービスアカウントによるAPI認証の強化
API認証の処理方法が大幅に強化されました。PMMは、PMMサーバーのコンポーネントとリソースへのアクセスを制御するための主な方法としてAPIキーに依存しなくなりました。代わりに、PMMはGrafanaサービスアカウントを活用します。これにより、APIキーと比較して、より安全で管理しやすい認証メカニズムが提供されます。
サービスアカウントは、全てのアクションの詳細な監査ログを維持しながら、きめ細かなアクセス制御によってセキュリティを強化します。これには、昇格された権限操作の包括的な追跡とアクセスパターンの可視性の向上が含まれます。これには、昇格された権限操作の包括的な追跡とアクセスパターンの可視性の向上が含まれ、APIキーで以前利用可能だったログ機能は引き続き提供されます。
APIキーからの移行
この変更により、APIキーは非推奨となり、サービスアカウントに自動的に変換されます。PMM2からPMM3にアップグレードすると、次のようになります:
- 既存のAPIキーは引き続き機能しますが、サービスアカウントに移動されます
- 変換は、Adminユーザーとして、またはCLI経由で最初にログインしたときに行われます
- 統合は同じAPIキー認証情報を使用して引き続き機能します (ハッシュ値は変更されません)
- キーは、Administration > Users and Access > Service Accountsに表示されます
詳細については、Migrate to PMM 2 to PMM 3およびService account authenticationを参照してください。
アーキテクチャの変更によりCVEが排除される
Integrated AlertingやDBaaSなどのレガシーコンポーネントの削除と、上記のセキュリティ強化を組み合わせることで、複数の潜在的な脆弱性とCVEが排除されます。これにより、PMM3はこれまでで最も安全なリリースになります。
安定性の向上
AMIおよびOVFデプロイメント用のコンテナ化されたPMMアーキテクチャ
以前は、PMMのAMIおよびOVFインスタンスは、主要なDockerベースのPMMバージョンのようにコンテナ化されるのではなく、スタンドアロンイメージとして作成されていました。
このアーキテクチャの違いにより、AMIおよびOVFインスタンスの修正と更新には追加の作業が必要となり、採用率が低いために遅延することもあったため、メンテナンスに課題が生じていました。
この更新により、PMMは全てのデプロイメント方法で統一されたコンテナ化されたアーキテクチャを使用するようになりました。AMIおよびOVF環境では、PMMコンポーネントはルートレスモードでPodman管理コンテナとして実行されるため、システム権限を昇格する必要がなくなります。
この移行により、AMIおよびOVFデプロイメントがPMMのコアコンテナ化モデルと整合されるだけでなく、セキュリティが向上し、トラブルシューティングが高速化され、更新とパッチ管理が効率化されます。
より安定した迅速なアップグレード
PMM3では、アップグレードシステムの大幅な見直しが導入され、内部パッケージ更新に基づく以前の方法が置き換えられました。以前の方法では、HomeダッシュボードのUpdateボタンから直接アップグレードできるという利便性がありましたが、接続の問題やパッケージの破損が発生しやすく、複雑なリカバリの課題につながることが多かったです。
新しいアップグレード方法では、RPM更新から専用のコンテナ更新に移行し、RPM関連の複雑さが解消されます。この合理化されたアプローチにより、Docker、Podman、OVF/AMIなど、全てのデプロイメントタイプで一貫したアップグレードエクスペリエンスが提供されます。
同時に、外部アップグレードツールであるWatchtowerを統合することによって、UIアップグレードオプションを維持しています。HomeダッシュボードのUpgrade Nowボタンをクリックすると、WatchtowerはPMMサーバーコンテナをシームレスに置き換え、新しいコンテナを既存のボリュームにリンクし、全てのデータと設定をそのまま保持します。
簡単に導入できるように、WatchtowerはEasy-Installスクリプトで事前設定されており、ワンステップのPMMセットアップが可能です。
PMMコンテナイメージサイズの縮小
PMM3コンテナイメージを3.1GBから2.6GBに最適化し、そのサイズを0.5GB削減しました。この削減により、ダウンロード速度が向上し、展開の信頼性が高まります。これは、ストレージ容量が限られている環境や帯域幅の制約がある環境で特に有益です。
ユーザーエクスペリエンスの向上
新しいアップグレードUI
新しいコンテナベースのアップグレードシステムをサポートするために、PMM Configurationの下に新しいUpdatesページを導入しました。この集中管理されたインターフェイスにより、PMMサーバーとクライアントの両方のバージョンと設定が明確に表示されるため、更新プロセスが簡素化されます。
この更新により、新しいバージョンがリリースされるたびにプロアクティブ通知が届き、利用可能なアップグレードを進める前に情報に基づいた決定を下すことができます。
柔軟な監視設定
PMMは、CLIベースの設定に加えて直感的なUI駆動型のアプローチを追加することによって、データベース監視のセットアッププロセスを拡張します。データベースサーバーにPMMクライアントをインストールすると、それ以降の全ての監視設定をPMMインターフェイスから直接管理できるため、複雑なコマンドライン操作は不要になります。
この簡素化されたワークフローは、PMMサーバーだけでなく任意のPMMクライアントノードでデータベースエクスポーターを実行するPMMの新しい機能と組み合わされています。このアプローチでは、監視負荷を複数のPMMクライアントに分散することによって、RDSインスタンスなどのリモートおよびクラウドでホストされる多数のデータベースをより効率的に監視できます。
PMM UIを介して新しいサービスを追加する時、どのPMMクライアントノードで監視エクスポーターを実行するかを指定できるようになりました。PMMサーバーはデフォルトのオプションのままですが、複数のインストールがあるノードで特定のクライアントを選択するなど、PMMクライアントがインストールされている任意のノードを選択できます。
この分散監視機能は、現在、新しいサービスの追加に使用できますが、既存のサービスの変更のサポートは将来のリリースで予定されています。
詳細については、Connect servicesを参照してください。
簡素化されたAWSインストールプロセス
AWSインストールを簡素化し、標準のDocker/Podmanワークフローに合わせました。インストール後、すぐにPMMログイン画面が表示されます。
ユーザー名としてadmin、パスワードとしてEC2 Instance IDを使用します (セキュリティ上の理由から、デフォルトのPMMパスワードは使用できません)。
Instance IDは、AWSコンソールで確認できます。詳細な手順については、Install PMM Server on AWS Marketplaceを参照してください。
PMMクライアントの公式ARMサポート
PMM 3は、ARMアーキテクチャを、PMM 2.43の試験的ステータスからアップグレードし、正式にサポートするようになりました。つまり、データセンターやクラウド環境でコスト効率の高いインフラストラクチャとエネルギー効率を活用して、ARMプラットフォーム上のデータベースを確実に監視できます。
インストールは標準のPMMクライアントプロセスに従い、ARMシステムに特別な要件はありません。
この機能を試して、PMMフォーラムで体験を共有してください!
Grafanaの最新リリースによるUXの改善
PMMにGrafana 11.1.8が統合されました。これにより、PMM 2での以前のGrafana 9.2.20統合以降に導入された全ての機能強化に加えて、次の重要な機能強化が提供されます。
このアップデートに含まれるGrafanaの変更点の完全なリストについては、Grafana’s 11.1.8 changelogとGrafana release highlightsを参照してください。
ナビゲーションの改善
PMMには、検索、パンくずリスト、および関連ツールをグループ化する再編成されたメニューを備えた、改良されたヘッダーが含まれるようになりました。これにより、PMMの機能間を移動して必要なものを簡単に見つけることができます。
アラートワークフローの改善
新しいGrafanaユーザーインターフェースの更新を活用して、Alert RulesとAlert Rule Templatesのページからアラートを作成するワークフローを改良しました。
様々な種類のアラートルールを作成するための個別の、よりわかりやすいオプションが用意されており、不要な手順が削減され、いろいろなアラートルール、テンプレート、設定の管理が容易になります。
専用メニューによる管理設定の簡素化
新しい管理メニューにより、管理設定の管理が簡単になりました。このメニューには、以前は一般的なConfigurationセクションに分散していたGrafana関連の全ての設定とアカウント管理オプションがまとめられています。この変更により、管理者はGrafana固有の設定をより効率的に見つけて管理できるようになります。
さらに、全てのPMM設定とインベントリオプションが新しいPMM Configurationメニューにグループ化されました。これにより、全てのPMM関連の設定へのアクセスが一元化され、ユーザーがPMMセットアップを簡単に処理できるようになります。
これらの改善により、ナビゲーションがより簡単かつ整理され、GrafanaとPMMの設定をすばやく見つけて調整できるようになります。
監視の改善
デフォルトのPostgreSQLデータベースの監視サポートを追加
PMMは、PostgreSQLインスタンスのデフォルトのpostgresデータベースの完全な監視サポートを提供するようになりました。メトリクスは、Query Analytics (QAN)全体に表示されます。
この機能強化により、アプリケーションがデフォルトのデータベースを使用した時にデータベースアクティビティが非表示になるという以前の可視性のギャップが解消されます。
アプリケーションにデフォルトのデータベースを使用することは推奨されませんが、PMM 3では包括的な可視性が確保されるため、チームはこの慣行を事前に特定して対処し、より優れたデータベース管理を維持できます。
MongoDBダッシュボードにOplog生成率パネルを追加
MongoDB Sharded Cluster SummaryダッシュボードとMongoDB ReplSet Summaryダッシュボードに、列形式で1時間あたりのoplog生成率を表示するOplog GB/Hourパネルが追加されました。
このパネルは、Replicationセクションにあり、他のレプリケーションメトリクスとともにoplog生成を監視して、データベースレプリケーションパターンの可視性を向上させるのに役立ちます。
MongoDB Router Summaryダッシュボードの一般提供
MongoDB Router Summaryは、当初PMM 2で試験的なダッシュボードとして導入されましたが、現在、PMM 3で一般提供されています。このダッシュボードは、シャードされたMongoDBクラスター内のMongoSルーターの包括的な監視を提供し、MongoSの可用性、バージョンの詳細、およびリソース使用率に関する洞察を提供します。
このダッシュボードには、MongoDB > High availability > Router summaryからアクセスできます。
[テクニカルプレビュー] PSMDBおよびCommunity MongoDB 8.0のサポート
最新バージョンのMongoDBとPercona Server for MongoDB 8.0には、数多くの改善と大幅なパフォーマンス強化が加えられています。このバージョンのPMMでは、MongoDB 8のサポートも追加されており、MongoDBユーザーは新しいバージョンを監視してパフォーマンスへの影響を観察できます。
これには、PSMDB 8.0の改訂されたメトリック構造と名前が変更されたメトリック (例: wiredTiger.concurrentTransactionsは、queues.executionに変更) に対応するためにmongodb_exporterが更新されることが含まれます。
これは、特にシャードクラスターのデプロイでの監視を強化し、PMM Agent バージョン 2.43.1以降を必要とします。
一部のダッシュボードメトリックでは、MongoDB 8.0の新しい形式を完全にサポートするためにさらなる更新が必要になる場合があることに注意してください。
QANの改善
QANでのMongoDBのクエリ長制限の増加
MongoDBクエリの場合、Query Analytics (QAN) のデフォルトの最大クエリ長が4096文字になりました (2048文字から増加)。これにより、長いクエリと集計パイプラインのサポートが向上し、切り捨てエラーが減少します。他のデータベースでは、2048文字制限が維持されます。
MySQL SlowLog クエリ識別の強化
クエリ IDの長さを16文字から32文字に拡張することによって、MySQL Slow Log クエリ識別が改善されました。これにより、IDの衝突の可能性が減り、より正確で信頼性の高いQAN結果が保証されます。
重大な変更と廃止
Oracle Enterprise Linux 9 イメージのみ
Enterprise Linux 7 (EL7) のサポート終了日が近づいているため、PMM 3では全てのPMMイメージのベースシステムとして Oracle Enterprise Linux 9 (EL9) のみを使用するようにしました。
CentOS 7からEL9への移行は最新のPMM 2リリースから開始しましたが、PMM 3ではEL7に基づくDockerコンテナ、AMI、OVFの構築はもう行いません。
EL9に移行することで、PMMが最新のライブラリバージョンに基づいて構築され、新しいテクノロジとの互換性が維持されます。さらに、EL9では、特にセキュリティに関する問題に対するアップストリームの対応が迅速化されるため、PMMセットアップは最新かつ安全な状態を維持できます。
この変更により、EL7を実行しているホストサーバーではPMM 3を起動できません。
Percona EverestへのDBaaS移行の完了
以前のPMMリリースでは、Database as a Service (DBaaS) 機能が徐々にPercona Everestに移行されてきました。Percona Everestは、パブリッククラウドDBaaSベンダーロックインの課題を解決するオープンソースのクラウドネイティブデータベース プラットフォームです。
Percona Everestを使用すると、管理するインフラストラクチャ (好みのクラウド環境またはオンプレミス) で高性能のデータベースクラスターをプロビジョニングおよび監視できるようになります。この機能強化により、データアクセス、データベース設定、クラウドベースのデータベース操作に関連するコストなどの重要な側面を再び制御できるようになります。
PMM 2.x バージョンでは引き続き既存のDBaaS機能がサポートされますが、PMM 3ではこの機能が完全に廃止され、DBaaSへの参照が全て削除されます。
既存のPMMユーザーでDBaaS機能に依存している場合は、Percona Everestを調べて、データベースの展開にその高度な機能を活用することをお勧めします。Percona EverestはPMMと統合して、データベースインフラストラクチャの監視機能も提供します。
Percona EverestとPMMの統合および監視エンドポイントの追加の詳細については、Add monitoring endpoints in the Everest documentationを参照してください。
統合アラートの廃止とAPIの削除の確定
このリリースでは、残りのコンポーネントとAPIを削除することによって、PMM 2.31.0で開始されたIntegrated Alertingの廃止を完了しました。
- /v1/Settings/TestEmailAlertingSettingsを含む、全てのIntegrated Alerting APIエンドポイントを削除しました
- PMM Settings API (email_alerting_settingsおよびslack_alerting_settings) からIntegrated Alerting関連のフィールドを削除しました
Percona Alertingに移行されていないアラートルールがまだある場合は、Integrated Alerting Migration Scriptを使用して移行してください。Percona Alertingは、Grafanaのアラートインフラストラクチャと事前設定されたアラートルールテンプレートを通じて拡張機能を提供します。
重大なAPIの変更
このリリースでは、重大なAPIの変更が導入されています。
- データベースレコード識別子はプレフィックス (/agent_id/ など) を使用しなくなり、プレーン UUIDとして表されるようになりました。
- 機能トグルは、2つのブール値から、enable_featureプロパティを持つ単一のブール値コントロールに簡素化されました。
- API応答は、デフォルト値またはゼロ値を持つフィールドを含む全てのフィールドを一貫して出力するようになりました。
- サービス、ノード、およびエージェントの管理は、リソースタイプがリクエストペイロードの最上位プロパティとして指定される統合エンドポイントによって合理化されました。
- 低レベルのInventory APIセクションは、インベントリ関連のタスク用のManagement APIを優先して、ドキュメントから削除されました。
これら全てのAPI変更と新しいエンドポイントの詳細については、PMM APIドキュメントを参照してください。
新しいアップグレード環境変数
PMM 2からPMM 3に移行する場合、新しい命名規則に合わせて環境変数を更新する必要があります。これは、PMM 3で一貫性と明確さを向上させるためにいくつかの重要な変更が導入されているためです。
- 環境変数で PMM_ プレフィックスが使用されるようになりました
- 一部のbooleanフラグが逆になっていた (例: DISABLE_ > ENABLE_)
- 非推奨の変数が削除されました
Migrationリファレンステーブルを確認するためには、Environment variables in PMMを参照してください。
Grafana Angularサポートの終了
Grafanaは、バージョン 12からAngularのサポートを終了します。これは、2025年に予定されています。これは、GraphパネルやTableパネルなどを含むがこれらに限定されない、多数のパネルとプラグインに影響します。
多くのプラグインを新しいテクノロジーに既に移行しており、残りのコンポーネントについても引き続き機能するように積極的に取り組んでいます。ダッシュボード内の全てのプラグインを確認し、必要に応じて新しいパネルタイプへの移行を計画することをお勧めします。
影響を受けるプラグインの完全なリストと移行に関するガイダンスについては、Angularの廃止とプラグインの移行に関するGrafanaの公式ドキュメントをご覧ください。
今後のリリースでは、この変更に備え、ダッシュボードを最新化できるよう、移行の進捗状況に関する最新情報を定期的に提供していきます。
コンポーネントのアップグレード
機能、セキュリティ、パフォーマンスを強化するため、次のPMMコンポーネントを最新の安定バージョンにアップグレードしました。
- Grafana 11.1.8: PMM 2での以前のバージョン 9.2.20統合に比べて大幅な改善が含まれています。
- Node Exporter 1.8.2: 最新の安定リリースでは、セキュリティの向上、カスタムダッシュボードの追加メトリック、および重大なバグ修正により、システムメトリックの収集が強化されています。このバージョンでは、アップストリームの改善を通じて重要なシステムレベルのメトリックを監視する機能が強化されています。
- ClickHouse Datasourceプラグイン: セキュリティの脆弱性に対処し、システムの整合性を維持するために更新されました。この更新により、ClickHouse関連のダッシュボードの信頼性の高い操作が継続されます。
- ClickHouse-goドライバー: QANをアップグレードしてドライバーのバージョン 2を使用するようにし、データベースの接続性とパフォーマンスが向上しました。
改善点
- PMM-13399 - PMM Clientパッケージ (DEB、RPM、および tarball) にNomadバイナリが含まれるようになり、将来のPMMリリースにおける機能拡張の基盤が整いました。
Nomadバイナリは、現在、PMM Clientエコシステム内に含まれ、適切に設定されていますが、将来のリリースではNomadエージェントの設定と実行機能が実装され、PMMのさらなる機能が解放されます。 - PMM-13315 - ノード登録の失敗を防ぐために、PMMは200文字を超えるサービスアカウント名を自動的に短縮するようになりました。このため、PMMは、{prefix}_{hash}という形式で短縮された名前を作成します:
- prefixは、元の名前の一部で、コンテキストを提供します
- hashは、名前の競合を避けるための一意の識別子です
例えば、次のような長いノード名:
- Copyvery_long_mysql_database_server_in_production_environment_with_specific_location_details_and_multiple_configuration_settings_for_east_coast_datacenter_primary_backup_replica_instance_2024
は、次のように短縮されます:
- Copyvery_long_mysql_database_server_in_prod_4a7b3f9d
- PMM-12940 - AMI/OVFデプロイメントの自動更新サポートを追加しました。新しい更新ページでは、Watchtowerコンテナの統合に続いて、AMIおよびOVFデプロイメントでUIから直接PMMサーバーを更新することもできます。
- PMM-11216 - 異なるバージョンタグ間でPMMサーバーをアップグレードする機能が追加され、Dockerベースのデプロイメントでより柔軟なバージョン管理が可能になりました。
修正された問題
- PMM-13122 - 異なるダッシュボードとメトリックビューを切り替える時に、選択されたサービス名と時間枠を適切に維持するために、ページ間のナビゲーションを修正しました。
- PMM-12013 - AWSアクセスキーごとに個別のRDSエクスポーターを実行することにより、大規模なデプロイメントでのRDSモニタリングに関する信頼性とメモリ使用量の問題を修正しました。これにより、メトリック収集の安定性が向上し、複数のRDSインスタンスをモニタリングする際のメモリ消費が削減されます。
- PMM-13360 - MongoDB ReplSet Summaryダッシュボードで、ダウン状態のノードがStatesパネルから消え、そのバージョン情報がMongoDB Versionsパネルから削除されることがある問題を修正しました。ダウン状態のノードは、最後に確認されたバージョン情報が保持された状態で引き続き表示されます。
- PMM-13584 - MongoDB ReplSet Summaryダッシュボードで、メトリッククエリ構文が正しくないために下部のグラフに“no data”と表示される問題を修正しました。
Percona Monitoring and Management (PMM) 3.0.0 リリース情報(Percona社ウェブサイト):
https://docs.percona.com/percona-monitoring-and-management/3/release-notes/3.0.0.html
Perconaサポート・コンサルティング
Perconaサポート・コンサルティングサービスはPercona Serverをご利用頂いているお客様が安心してお使い頂くために専門的なサポートを提供するサービスです。