具体的な内容については、各コマンドの詳細な説明が記載されている公式ドキュメントを参照してください: https://arthas.aliyun.com/doc/ この記事では、arthas の使い方については紹介しません。ここでお話ししたいのは、docker コンテナで arthas を使用する方法です。 arthas を docker コンテナ内で使用するのはかなり面倒で、コンテナ ID を見つけて arthas ディレクトリ全体をコンテナにコピーし、コンテナに入り、対象サービスのユーザーに切り替えて arthas を起動する必要があります。これらの手順は、Linux コマンドや docker コマンドに慣れていない多くの学生にとって使いやすいものではありません。 そこで、上記の手順を直接置き換えることができるスクリプトを作成しました。その効果は下の図に示されています。 スクリプトの後に完全なサービス名(ここではコンテナの IMAGE 名)を入力するだけで使用できます。シンプルで便利です。 使用方法: まず、Linux サーバーで arhas-bin.zip を解凍する必要があります。解凍されたバージョンが arthas ソフトウェアです。マシンにDockerがインストールされていることを確認してください arhas-bin.zip ダウンロードディレクトリ: https://github.com/alibaba/arthas/releases arthasDocker.sh スクリプトを、解凍した arthas ディレクトリに配置し、スクリプトを開いて arthasDocker.sh スクリプトの内容: #!/bin/bash # # 著者: dijia478 # 日付: 2020-8-20 18:14:38 # desc: このスクリプトは arthas ディレクトリに配置し、ディレクトリ全体とともに docker コンテナにコピーする必要があります。主な目的は、コンテナ内の対象サービスのユーザーを切り替えてarthasを起動することです echo "対象サービスのプロセス ID とユーザーの照会を開始します..." PID=`ps -eo pid、user=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -o args | grep java | grep -v grep | awk '{print $1}'` echo "対象サービスのプロセス ID は ${PID} です" USER=`ps -eo pid,user=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -o args | grep java | grep -v grep | awk '{print $2}'` echo "対象サービスのユーザーは ${USER} です" if [[ ! -d "/home/${USER}" ]] それから mkdir -p /home/${USER} echo "ディレクトリ /home/${USER} を作成します" フィ chmod 777 /home/${USER} echo "ユーザーの切り替えと arthas の起動を開始します..." # 次の arthas パスは変更する必要があり、startArthas.sh スクリプト ARTHAS_PATH="/opt/arthas" と一致する必要があります。 su ${USER} -c "java -jar ${ARTHAS_PATH}/arthas-client.jar 127.0.0.1 3658 -c 'stop'" su ${USER} -c "java -jar ${ARTHAS_PATH}/arthas-boot.jar ${PID}" startArthas.sh スクリプトを Linux サーバーに配置します。~ ディレクトリに配置し、スクリプトを開いて、 startArthas.sh スクリプトの内容: #!/bin/bash # # 著者: dijia478 # 日付: 2020-9-18 10:36:27 # desc: このスクリプトの主な目的は、arthas 診断ツールを起動して docker 内の Java サービスを診断することです if [[ ${1} == '' ]] それから echo "サービスを選択してください:" sudo docker ps | awk 'NR>1 {print $2}' 終了 0 フィ echo "サービス ${1} のコンテナーの検索を開始しています..." DOCKER_LIST=`sudo docker ps | awk 'NR>1 {print $2}'` フラグ=0 ${DOCKER_LIST[@]}内のiに対して する [[ ${i} == ${1} ]]の場合 それから フラグ=1 壊す フィ 終わり [[ ${FLAG} == 0 ]]の場合 それから DOCKER_NAME=`sudo docker ps | awk 'NR>1 {print $2}' | grep ${1}` [[ ${DOCKER_NAME} == '' ]]の場合 それから echo "このサービスのコンテナが見つかりませんでした。サービスを再選択してください:" sudo docker ps | awk 'NR>1 {print $2}' それ以外 echo "サービスのフルネームを入力してください:" sudo docker ps | awk 'NR>1 {print $2}' | grep ${1} フィ それ以外 ID=`sudo docker ps --filter ancestor=${1} | awk '{print $1}' | sed -n '2p'` echo "コンテナ ${ID} が見つかりました" echo "arthas をコンテナにコピーし始めます..." # 次の arthas パスは変更する必要があり、arthasDocker.sh スクリプト ARTHAS_PATH="/opt/arthas" と一致している必要があります。 sudo docker exec -it ${ID} /bin/bash -c "rm -rf ${ARTHAS_PATH}" sudo docker cp ${ARTHAS_PATH} ${ID}:${ARTHAS_PATH} echo "コピーが完了しました" echo "コンテナに入ろうとしています..." sudo docker exec -it ${ID} /bin/bash -c "bash ${ARTHAS_PATH}/arthasDocker.sh" フィ 最後に、startArthas.shスクリプトを実行します。 © 著作権声明 記事の著作権は著者に帰属します。転載は歓迎しますが、元のリンクを必ず提供してください。そうでない場合は法的責任を追及する権利があります。終わり Docker コンテナで Arthas を使用する方法については、これで終わりです。Docker で Arthas を使用する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS スタイルの読み込みの優先順位に関する経験の共有
>>: HTML でスクロールバーを非表示にしたり削除したりする方法
このチュートリアルでは、インストールに最新の MySQL コミュニティ グリーン バージョンである ...
インデックス作成は大学図書館の書誌インデックスの構築に似ており、データ検索の効率を向上させ、データベ...
CentOS 8をインストールした後、ネットワークを再起動すると次のエラーが表示されますエラーメッセ...
Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...
目次1. ページレイアウト2. 画像のアップロードと表示3. キャンバスを初期化する4. テンプレー...
1. pipとは何かpip は、Python パッケージの検索、ダウンロード、インストール、アンイ...
1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...
XMLファイルは、可能な限りutf-8でエンコードする必要があります。gb2312には、?など、保存...
1. サーバーを購入するこの例では、購入したサーバーはAlibaba Cloudです。大学生はAli...
背景アプリケーション システムの数が増え続けると、当初はアラームを発していなかったアクティブ スレッ...
目次導入Homebrewをインストールするnvmをインストールするノードをインストールするインストー...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
まず、サーバーのハードウェアが現在のトラフィックをサポートするのに十分かどうかを確認します。通常の ...
HTML5 では、ヘッダー、フッター、ナビゲーションなどのセマンティック タグが追加されているため...
目次1. docker環境が正常かどうかを確認する2. miniIOイメージをダウンロードする3. ...