はじめに
Percona Monitoring and Management(以下PMM) ServerのパスワードはPMMのウェブインターフェースにログインするときや、PMM ClientをPMM Serverに登録するときに入力する必要があります。
本記事では、PMM Serverのパスワードについての変更方法や注意点を紹介していきます。
なお、本記事はPMM最新リリース2.25.0の情報をもとにしています。
パスワードの変更方法
PMM Serverの初期ユーザー名とパスワードはadmin/admin
です。パスワードはウェブインターフェースから変更が可能です。
特に初期パスワードの場合は、ログイン時にパスワードの変更画面が表示されます。
これはスキップすることも可能ですが、セキュリティ上初期パスワードはすぐに変更することを推奨します。
パスワードは左側のメニューからも変更可能です。
Server Admin -> 対象ユーザーを選択します。
PasswordのEdit
を選択すると変更が可能です。
PMM Serverがdockerで稼働している場合、CLIからパスワードリセットも可能です。
パスワードを忘れてしまいウェブインターフェースにログインできない場合や、pmm-serverコンテナを作成した後、そのままCLIでパスワードを変更したい場合などに有用です。
例えば、以下のようなファイルを作成します。
なお、PMM Serverのコンテナ名がpmm-server
であることが前提です。
1 2 3 4 5 |
# vi pmm_change.sh PMM_PASSWORD="mypassword" echo "Waiting for PMM to initialize to set password..." until [ "<code>docker inspect -f {{.State.Health.Status}} pmm-server</code>" = "healthy" ]; do sleep 1; done docker exec -t pmm-server bash -c "grafana-cli --homepath /usr/share/grafana admin reset-admin-password $PMM_PASSWORD" |
これを実行するとパスワードが変更されます。
最後にAdmin password changed successfully
と表示されたら成功です。
1 2 3 4 5 6 7 |
# . pmm_change.sh Waiting for PMM to initialize to set password... INFO[12-15|05:36:58] Connecting to DB logger=sqlstore dbtype=sqlite3 INFO[12-15|05:36:58] Starting DB migrations logger=migrator INFO[12-15|05:36:58] migrations completed logger=migrator performed=0 skipped=279 duration=13.880333ms Admin password changed successfully ✔ |
こちらのドキュメントを合わせてご参照ください。
特殊記号を含むパスワード
PMM ClientをPMM Serverに登録するときには以下のコマンドを使用します。
1 2 |
# pmm-admin config --server-insecure-tls \ --server-url=https://<PMM Serverユーザー名>:<PMM Serverパスワード>@<PMM ServerIPアドレス>:443 |
このときパスワードに記号が含まれていると登録がうまくいかないことがあります。
例えば、以下のようにパスワードをpass!word
とした場合は失敗します。
1 2 |
# pmm-admin config --server-insecure-tls --server-url=https://admin:pass!word@192.168.2.3:443 -bash: !word@192.168.2.3: event not found |
この場合\
でエスケープすることで、正常にコマンドを実行することができます。
1 2 3 4 5 6 7 8 9 10 |
# pmm-admin config -server-insecure-tls --server-url=https://admin:pass\!word@192.168.2.3:443 Checking local pmm-agent status... pmm-agent is running. Registering pmm-agent on PMM Server... Registered. Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated. Reloading pmm-agent configuration... Configuration reloaded. Checking local pmm-agent status... pmm-agent is running. |
その他にも&
や*
も同じように\
でエスケープが可能です。
また、以下のように変数を使用して登録することも可能です。
1 2 3 4 5 6 7 8 9 10 11 12 |
# read -s pmm_pass ←入力待ちとなるのでpass!wordと入力する # pmm-admin config --server-insecure-tls --server-url=https://admin:${pmm_pass}@192.168.2.3:443 Checking local pmm-agent status... pmm-agent is running. Registering pmm-agent on PMM Server... Registered. Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated. Reloading pmm-agent configuration... Configuration reloaded. Checking local pmm-agent status... pmm-agent is running. |
一部の記号はエスケープ(\
)を使用してもうまくいかない場合があります。
例えば、@
や#
はエスケープを使用した場合も失敗します。
1 2 3 4 5 6 |
# pmm-admin config --server-insecure-tls --server-url=https://admin:pass\@word@192.168.2.3:443 Checking local pmm-agent status... pmm-agent is running. Registering pmm-agent on PMM Server... Failed to register pmm-agent on PMM Server: invalid username or password Please check username and password. |
このような場合は、エスケープシーケンスに置き換えます。
例えば、Chromeのメニューアイコンからその他のツール -> デベロッパー ツールを選択し、console
タブを開きencodeURIComponent()
を使用することで簡単に置き換えが可能です。
エスケープシーケンスに置き換えられたパスワードを使用して登録を行います。
1 2 3 4 5 6 7 8 9 10 |
# pmm-admin config --server-insecure-tls --server-url=https://admin:pass%40word@192.168.2.3:443 Checking local pmm-agent status... pmm-agent is running. Registering pmm-agent on PMM Server... Registered. Configuration file /usr/local/percona/pmm2/config/pmm-agent.yaml updated. Reloading pmm-agent configuration... Configuration reloaded. Checking local pmm-agent status... pmm-agent is running. |
こちらのドキュメントを合わせてご参照ください。
PMM Serverのパスワードを変更したときの影響
PMM Clientを登録した後に、PMM Serverのパスワードを変更すると、データの収集が失敗するようになります。
PMM Serverのパスワードを変更してからダッシュボートを確認すると、データが収集できず、途中でグラフが途切れてしまっていることがわかります。
PMM Clientのログを確認すると以下のように無効なusername,passwordによるエラーメッセージが確認できます。
1 2 3 |
Dec 15 12:48:49 localhost pmm-agent: #033[36mINFO#033[0m[2021-12-15T12:48:49.077+09:00] 2021-12-15T03:48:49.076Z#011error#011VictoriaMetrics/app/vmagent/remotewrite/client.go:308#011unexpected status code received after sending a block with size 21402 bytes to "1:secret-url" during retry #9: 401; response body="{\"code\":16,\"error\":\"invalid username or password\",\"message\":\"invalid username or password\"}\n"; re-sending the block in 60.000 seconds #033[36magentID#033[0m=/agent_id/4fec7e5d-8dbf-4b1e-85de-d3c66dd6d548 #033[36mcomponent#033[0m=agent-process #033[36mtype#033[0m=vm_agent |
※見やすいように改行を入れています。
また、pmm-admin list
などpmm-admin
コマンドは失敗するようになります。
1 2 |
# pmm-admin list invalid username or password. Please check username and password. |
データの収集を再開させるためには、再度新しいパスワードでPMM Client登録を行います。
その際、古い登録情報を上書きするために--force
オプションも合わせて使用します。
1 |
# pmm-admin config --force --server-insecure-tls --server-url=https://admin:newpassword@192.168.2.3:443 |
まとめ
PMM Serverのパスワードに関して確認しました。
PMM Serverのパスワードを変更したときの影響で説明したようにPMM Serverのパスワードを変更すると、再度PMM Clientの登録が必要となるため、新規に構築する場合は、 PMM Serverのパスワード変更してからPMM Clientのセットアップをするといいでしょう。