Percona Monitoring and Management 2のアップグレード手順と注意点について

目次

Percona Monitoring and Management 2とは

Percona Monitoring and Management 2(以下PMM)とは、MySQL、PostgreSQL、MongoDB、
およびそれらが実行されるサーバーで使用するオープンソース データベースの可観測性、監視、および管理ツールです。

スマートスタイル TECH BLOGにてPMMについて取り上げた記事がいくつかございますので、そちらも是非あわせてご確認いただければと思います。

スマートスタイル TECH BLOG Percona Monitoring and Management Tagged

現在も活発に開発が行われており、頻繁(1~3ヶ月に一度) に新バージョンがリリースされています。詳細や新しいバージョンで追加される機能についてはRelease Noteよりご確認ください。
 

実際に公式ナレッジを見ながらアップグレードを試してみたのですが、必要な手順がナレッジの様々な項目に点在している等、少々分かりづらい箇所があったため、今回はブログにまとめてみたいと思います。

なお、PMM は様々なプラットフォーム向けに提供されておりますが、今回のアップグレード手順は最も一般的な利用形態と考えられる Docker版 PMM Server を前提としています。

Percona Monitoring and Management 2 のアップグレード

早速ですが、 PMM をアップグレードしていきたいと思います。

今回の検証に利用した環境情報は以下のとおりです。

種別 OS Version comment
PMM Server CentOS 7.8 2.37.0 Docker(25.0.3) ホストマシン
PMM Client RHEL 8.8 2.37.0 MySQL Server 8.0.36を監視

 

PMM Server 2.38.0 以降のDocker ImageのOSの更新による影響について

先に、私が経験した問題について紹介したいと思います。

ドキュメントの方式に従い、古い PMM Server をアップグレードしたのですが、
アップグレード後にpmm-serverのステータスがunhealthyになってしまう問題に遭遇しました。

改めて 公式のダウンロードページを見ると、 pmm-server-[version]-el7.docker というイメージが追加されていることに気付きました。
 
調べていくと、PMM 2.38.0 以降でDocker ImageのOSが CentOS 7 から Oracle Linux 9 に変更されている影響で、 Docker ホストOSとDocker コンテナOSの互換性が保証されない組み合わせ になってしまうことの対応として
PMM 2.40.0 以降では、Oracle Linux 9版 と、 CentOS 7版 の2種類のDocker Imageが提供されるようになったということでした。
 
詳細は以下のIssueをご確認ください。

これにより、私のパターンでは予期しない動作となっていたようです。
 
既存ホストを使い回す場合、DockerホストOSが CentOS(などのRHEL系OS) 7 であることはまだしばらくはあるかと思いますので、その際は el7 がついている方のイメージを使用するようご注意ください。

今回の検証には CentOS 7を使っていますので、 el7 付きのイメージを使用しています。

なお、利用イメージが異なる箇所以外のアップグレード手順は他のOSと同じです。
 

その他のアップグレード前の注意点

本番で実施する場合は、以下の点に注意してください。

  • PMM 2.38.0 以降の場合は(今後アップグレードする場合は常にそうなりますが)、CPU (および使用している仮想化レイヤー) がx86-64-v2をサポートしていることを確認してください。

  • ダウングレードはできないため、旧バージョンへの切り戻しが必要な場合アップグレード前にバックアップを取得する必要があります。

検証1:CUIでのアップグレード

それでは実施していきましょう。
ここでは、CUIでのアップグレード検証時点での最新バージョンPMM2.41.1へのアップグレード手順をまとめていきます。

PMM Server側アップグレードの実施

以下公式ナレッジに記載のある通り、推奨手順は画面上のアップグレードパネルからのアップグレードです。
そちらの手順については後述いたします。
Update the Server

The preferred and simplest way to update PMM Server is with the PMM Upgrade panel on the Home page.
(PMM サーバーを更新するための最も簡単な推奨方法は、ホームページのPMM アップグレードパネルを使用することです。)

アップグレードは以下の手順をベースに行いました。
 
バックアップ
Backup
アップグレード
Upgrade

 
大枠としては以下の流れで実施します。

  1. PMM Server⽤のイメージの取得、ロード
  2. コンテナのバックアップ、データのバックアップ
  3. pmm-dataコンテナの作成、バックアップデータのコピー
  4. pmm-serverコンテナの作成
  5. WEBブラウザからバージョンアップされたことを確認
     

1. PMM Server⽤のイメージの取得、ロード

イメージをダウンロード後Dockerにロードし、docker imagesでロードされたイメージを確認します。

ちなみに今回直接ダウンロードしましたが、 docker pull でも可能です。

2. コンテナのバックアップ、データのバックアップ

現行のPMM Serverコンテナを停止、リネームしてロールバック用に保持しておきます。
コンテナ名は任意ですが、ここではpmm-server-oldとしています。

データ領域をDockerホストのディレクトリにコピーします。

3. pmm-dataコンテナの作成、バックアップデータのコピー

pmm-dataコンテナをバージョンアップします。

新バージョンのpmm-dataコンテナに バックアップデータをコピーします。

4. pmm-serverコンテナの作成

pmm-serverコンテナを作成し、起動します。

pmm-serverSTATUSが起動直後startingとなっている場合は起動中、unhealthyから移行しない場合、起動中または起動に失敗しています。数回 docker ps コマンドを実行して、healthyに遷移すれば問題ありません。
 
また、dockerログからも起動を確認することが可能です。
正常に起動された場合、以下のようなログが残ります。

5. WEBブラウザからバージョンアップされたことを確認

以下の画面より、バージョンが更新されたことを確認します。

以上でPMM Serverのアップグレードは完了ですが、PMM クライアント側のアップグレードもあわせて実施するのが望ましいでしょう。

PMM ServerのバージョンとエージェントであるPMM クライアントのバージョンに大きな差が出ると、データ収集の一部が機能しないなどの影響が発生する場合があるためです。

留意点として、PMM クライアントのバージョンがPMM Serverのバージョンより新しくなると以下の通り構成に問題が発生するため、PMM クライアント側のアップグレードは必ずPMM Server側のアップグレード後に実施してください。

Upgrade

Make sure to upgrade the PMM Server before you upgrade the PMM Client.
Ensure that the PMM Server version is higher than or equal to the PMM Client version. Otherwise, there might be configuration issues, thus leading to failure in the client-server communication as PMM Server might not be able to identify all the parameters in the configuration.
(PMM クライアントをアップグレードする前に、必ず PMM サーバーをアップグレードしてください。
PMM サーバーのバージョンが PMM クライアントのバージョン以上であることを確認してください。 そうしないと、構成に問題が発生し、PMM サーバーが構成内のすべてのパラメーターを識別できない可能性があるため、クライアントとサーバーの通信が失敗する可能性があります。)
 

PMMクライアント側アップグレードの実施

PMMクライアント(=監視対象サーバ側)の作業は以下手順を参考に実施します。
 
アップグレード概要
Updating a PMM-Agent
tarball(バイナリパッケージ)の取得と展開
Binary package
 

tarballの準備

tarballを取得します。

チェックサムファイルを取得します。

チェックサムファイルとはファイルの同一性を確認するためのものです。

ダウンロードしたファイルに問題がないことを確認します。

pmm2-client-2.41.1.tar.gz: OKであればtarballは正常に取得できています。

ファイルを展開し、その配下に移動します。

アップグレード

-uオプションを指定し、インストールを実行します。

-uオプションを指定することにより、現在の構成ファイルを維持したままアップグレードすることが可能です。

バージョンが意図したものに置き換わっていることを確認します。

連携の確認

WEBブラウザ画面上より、対象クライアントのデータが収集されていることを確認します。

検証2:WEBブラウザからのアップグレード

最後に、WEBブラウザ上のアップグレードパネルを利用する方法について紹介します。
アップグレードパネルを利用する場合、任意のバージョンは指定できず、最新バージョンのみへのアップグレードとなります。
そのため、今回は検証時点での最新バージョン2.41.2へアップグレードしていきます。

アップグレードパネルを利用する方法は公式ナレッジでも推奨されており、非常に簡単に実施できるためおすすめです。
アップグレードは以下の手順を参考に実施します。(とはいえ手順としては画面上の更新ボタンをクリックするだけです)

サーバーのアップグレード
Update the Server

画面右下のアップグレードパネルより、アップグレード可能なバージョンがあるかを確認します。アップグレードパネルには以下の情報が記載されています。

  • 現在のサーバーのバージョンとリリース日
  • サーバーが最新かどうか
  • 最後に更新のチェックが行われた時刻

Upgrade to X.XX.Xをクリックすると自動アップグレードが開始されます。

アップグレード中は進捗状況や警告などが表示され、それらはクリップボードにコピーすることも可能です。

PMM has been successfully upgraded to version X.XX.Xが表示されれば完了です。

CUIでは以下のコマンドにて実際のバージョン確認が可能です。

アップグレードパネルを利用した場合、IMAGEは置き換わらないため、以下コマンドにてdockerコンテナをリネームし、現在のバージョンに合わせておくと管理がしやすいと感じました。

現在のコンテナ名を確認します。

NAMESがコンテナ名です。
dockerコンテナをリネームします。

上記の場合、dockerコンテナ名がpmm-serverからpmm-server_2.41.2へ変更されました。

リネームされたことを確認します。

NAMESpmm-server_2.41.2になっていることがわかります。

なお、こちらの方法ではPMMクライアント側のバージョンは上がらないため、別途PMMクライアント側アップグレードの実施を実施し、バージョンを揃えるとよいですね。

まとめ

今回アップグレードを検証してみましたが、ナレッジを見るだけではわからなかった躓きがありましたので、本記事が少しでも参考になると嬉しいです。

PMMは更新頻度も高く、様々な機能がどんどんリリースされておりますので、是非今回の手順を参考にアップグレードを計画してみてください!!

スマートスタイルTECHブログについて

スマートスタイルTECHブログでは、日頃オープンソースデータベースのサポート業務に従事している有資格者で構成された技術サポートチームがPerconaに関する技術情報を発信しています。データベースのお困りごとはお気軽にご相談下さい。

よかったらシェアしてね!
  • URLをコピーしました!
目次