昨日に続き、Advent Calendarにエントリさせていただきます、カワノです!よろしくお願いします。
そんなわけで、この記事はInstana Observability Advent Calendar 2024 5日目のエントリになります。
はじめに
皆さん、エージェントのインストールってどう実施しました?やっぱりかんたんなのは linuxへのワンライナーインストールですよね。え?あのワンライナーなにやってくれるのかよくわからないから触るの怖い…?
そんな構えないでも大丈夫!本当に簡単にインストールできるんですよ。一度お試しあれ。
しかし、あのワンライナーは内部で何やってるんでしょうね?わざわざコードを読み込む方は少ないと思いますので、ここでざっと解析してみようと思います。
ちなみに、今回使うワンライナーコードは 2024年11月26日にダウンロードしたものです。最新では更新されている可能性があります。ご了承ください。
最近は ChatGPTでソースコード解析できちゃうんですよね。便利な世の中です。
ちなみにIBMにもWatsonx Code Assistantというソースコード解析や各種支援ができるツールがあるのですが、シェルスクリプトはまだサポートされていないようです。
Javaなどは強力に支援してくれますので、ぜひお試しください。詳細は下記をご覧ください。
ワンライナースクリプト(ソースコード)のダウンロード
スクリプト自体はインターネット上で公開されていますので、ダウンロードして名前をつけて保存します。
curl -o setup_agent.sh https://setup.instana.io/agent
ワンライナースクリプトをsetup_agent.shというファイルとして保存しました。
これを解析します。
スクリプトの説明
では早速スクリプトを説明します。
このスクリプトは、環境の検出と適切な構成を自動的に行い、ユーザーが複雑な環境を考慮した上で 手順に沿ったインストール作業を行わなくても良い 作りになっています。
1. 指定可能な引数
スクリプトで指定可能な引数は以下の通りです。
-
-a
:エージェントキー -
-d
:ダウンロードキー -
-e
:エージェントのエンドポイント -
-l
:リージョン(非推奨) -
-m
:モード(apm
,infra
,aws
) - その他、Gitリポジトリの設定や動作に関する引数
モードについては以下のドキュメントを参照してください。
2. システム環境の確認
引数チェック後、以下の確認を行います。
- スクリプトがrootユーザーで実行されているかチェック
- 対応するOSとアーキテクチャかどうか確認
- 非対応の場合(macOS, AIX, Solarisなど)は終了
3. システムの環境検出
続けて、環境チェックを行います。
- システムのアーキテクチャを検出(
x86_64
,aarch64
,ppc64le
) - パッケージ管理システムを検出(
apt
,yum
,dnf
,zypper
) -
systemd
、upstart
を検出
4. 事前条件の確認
インストールに必要なソフトウェアが導入済みか確認します。
-
curl
またはwget
が利用可能か確認 -
gpg
がインストールされていない場合、ユーザーに継続確認を求める(InstanaリポジトリからAgentをダウンロードするために GPG keyを利用するため)
5. エージェントのセットアップ
エージェントリポジトリを設定しダウンロード・インストールします。
- システムに応じたパッケージリポジトリを設定
-
apt
(Debian/Ubuntu) -
yum
(CentOS/Red Hat) -
dnf
(Fedora) -
zypper
(SUSE)
-
- エージェントのダウンロードキーや認証情報を設定
- 必要に応じて内部パッケージリポジトリを有効化
- エージェントのダウンロードとインストール
6. モードの設定
エージェントの動作モードを以下のいずれかに設定します。
-
apm
:アプリケーションパフォーマンスモニタリング -
infra
:インフラモード -
aws
:AWS統合用モード
7. サービスの開始
Instana Agentをサービスとして登録し有効化します。
- 環境変数を構成
-
systemd
やupstart
を使用してエージェントを起動、サービスの有効化
最後に
ざっと記載しましたが、linuxの多くのDistroに対応していることがお分かりいただけたかな、と思います。
ワンライナーを利用の際、導入環境に対応してるかどうか確認する際はぜひこちらご参考にされてください。