MySQL監視 · 1 min read · Jan 29, 2026
リモートMySQLパフォーマンスとクエリモニタリング
リモートMySQLパフォーマンスとクエリモニタリング
リモートでMySQLサーバーを監視する必要がある状況があるかもしれません。ローカルでパフォーマンスとクエリを監視するためのLinuxツールはいくつかあり、これらのツールはリモート監視にも使用できますが、暗号化されていない場合のみです!また、MySQLはループバックインターフェースでのみリッスンしていることが多いため、ネット越しにリモートでアクセスできないこともあります(これはセキュリティの観点から非常に良いことです)。しかし、Linuxの世界には簡単な解決策があります。
前提条件 + 免責事項
以下の記事では、私がソフトウェアをインストールして使用した方法を説明します。同じ方法があなたに適用されるという保証はありません。シェルで作業するための基本的な知識が必要です。
SSH
かつてSSHは貧乏人のVPNと呼ばれていましたが、非常に多用途で便利な機能がたくさんあり、設定も非常に簡単です。Linuxボックスを管理している場合、すでに使用している可能性が高いです。では、リモートMySQLデータベースを管理するタスクの際に、それを利用しない手はありません!
MySQLツール
mysqlreport
mysqlreportは、Howtoforgeの「Getting MySQL Status Values With mysqlreport」という記事で紹介され、またこのレポートを理解するためのガイドであるmysqlreportguideも言及されました。
mysqlreportは、以下のようなコマンドラインパラメータを使用してリモートサイトに接続するために使用できます。
mysqlreport --host 127.0.0.1 --port 3306 --user root --password ...リモートMySQLサーバーに接続するためですが、暗号化されていません。
mytop
mytopは、数秒ごとにさまざまなステータスページを提供するtopのようなアプリケーションです。基本的なリモート機能もありますが、暗号化されていません。コマンドラインパラメータを使用して、以下のようにします。
mytop --host 127.0.0.1 --port 3306 --user root --password ...innotop
innotopは、MySQLのInno-DBエンジンに焦点を当てたツールです。mytopと同様にtopのような動作をし、以下のようなスタイルで基本的なネットワーキング機能も持っています。
innotop -u root -p ... -h 127.0.0.1これらのツールについては、可能性に関する深い知識を得るためにmanページを確認する必要があります。
SSH
これらのツールは、基本的なネットワーク機能を持つMySQL管理および監視用の他のツールと簡単に組み合わせることができ、SSHの力を利用してリモートサイトへの接続をリアルタイムで暗号化し、パスワードなどの貴重な情報を盗聴から守ります。SSHトンネルは、localhostでのみリッスンしているサービスに安全に接続する方法でもあります。
- サーバー上でSSHデーモンが実行されている必要があります。
- できれば、パスワードなしでログインするために公開鍵をサーバーにエクスポートしておくと良いでしょう。
- SSHを使用してサーバーに安全で暗号化されたトンネルを確立する必要があります。以下のようにします。
ssh -v -L33066:localhost:3306 -N [email protected]ローカルポートフォワーディングを実行します。これを確認するには、以下を実行します。
netstat -an | grep 33066出力は以下のようになります。
tcp 0 0 127.0.0.1:33066 0.0.0.0:* LISTEN
tcp6 0 0 ::1:33066 :::* LISTENこの場合、リッスンしているポートが2つあります。1つはIPv4、もう1つはIPv6ですが、::1はIPv6のlocalhostであり、127.0.0.1はIPv4のlocalhostです。
- その後、暗号化されたトンネルを介してMySQLターゲットにローカルにインストールされたクライアントソフトウェアで安全に接続できます。以下のようにします。
mysqlreport --host 127.0.0.1 --port 33066 --user root --password ...または
innotop -u root -p ... -h 127.0.0.1:33066または
mytop --host 127.0.0.1 --port 33066 --user root --password ...この種の接続は、著名なPuTTYや他のSSHクライアント、またはリモート管理を許可する他のMySQL管理ツールでも確立できると確信しています。
さらなる読み物
私は、情報源を正しく引用せずに博士号を剥奪されたドイツの元大臣および元医師のフォン・グッテンベルクではありません。ここに私の情報源、つまり脚注(彼がつまずいたところ)があります :) :
- Getting MySQL Status Values With mysqlreport
- mysqlreportguide
- Password-less logins with OpenSSH
そして、再度「フォン・グッテンベルク」の件に関して、上記は論文ではなく、単なる技術的なハウツーまたは料理レシピです。明確にするために。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。