dockerinstaller를활용한_설치
v3.0.23.4バージョンからdocker installerを通じたインストール方法をサポートします。
1. 概要
exem-kafka-agent_docker.binはexemOne Kafka AgentのDockerコンテナインストール及びアップデートを実行するセルフエクストラクティングインストールファイルです。- 内部にDockerイメージ(tar.gz)、設定テンプレート、start/stopスクリプトが含まれています。
- 別途のJavaインストールなしにDockerのみインストールされていれば動作します。
- コンテナ名:
exemone-kafka-agent/ イメージ:maxgauge/exemone-kafka-agent
2. 作業種類
2.1. 対話モードメニュー
| 番号 | 作業 | 説明 |
|---|---|---|
| 1 | install(patch) | 新規インストールまたは既存インストール検知時のパッチを実行(デフォルト値) |
| 2 | unpack | 現在のパスにパッケージを解凍した後終了 |
| 3 | exit | 終了 |
2.2. 設定ファイルモード (Silent mode)
- 設定ファイルを引数として渡すことでユーザー入力なしに自動インストール/パッチを実行します。
- 設定ファイルモードでは常に
install(patch)モードで実行されます。 - 詳細は3.2. 設定ファイルモードを参照
2.3. Legacy環境検知
$EXEMONE_HOME環境変数が設定されており$EXEMONE_HOME/containers/exemone-kafka-agentディレクトリが存在すればLegacy(exemone-package)環境として検知します。- Legacy環境では
KAFKA_HOMEが$EXEMONE_HOME/containers/exemone-kafka-agentに自動設定されます。 - 対話モードではLegacy環境検知時に確認プロンプトが表示され、
n入力時にstandaloneモードに切り替わります。
3. 実行方法
3.1. 対話モード (Interactive)
./exem-kafka-agent_docker.bin
- binファイルを実行するとメニューが表示され、各項目を入力します。
3.1.1. install(patch) インストール過程
- binファイル実行
- モード選択 - install(patch)
- (Legacy環境検知時) Legacyインストール可否確認
- インストールディレクトリ指定(EXEM_HOME) — Legacy環境は自動設定、省略
- エージェント必須入力値指定(RECEIVER_IP、RECEIVER_PORT、EXEM_AGENT_NAME)
- 入力データ確認 → Y入力時インストール進行、n入力時再入力
- Dockerイメージロード
- インストール完了
3.1.2. unpack インストール過程
- binファイル実行
- モード選択 - unpack
- 解凍完了 — 現在のパス(bin実行位置)にパッケージ解凍後終了
3.2. 設定ファイルモード (Silent mode)
- 設定ファイルを引数として渡すと、ユーザー入力なしに自動でインストール/パッチが実行されます。
- 設定ファイルのファイル名は自由であり、絶対パス/相対パスどちらも使用可能です。
KEY=VALUE形式で1行に1つずつ記述します。#で始まる行はコメントとして無視されます。
vi kafka-docker-install-file
INSTALL_DIR=/home/exem
RECEIVER_IP=10.20.30.40
RECEIVER_PORT=9009
EXEM_AGENT_NAME=kafka-agent
:wq!
- 設定ファイルのキー
| パラメータ | 必須 | デフォルト値 | 説明 |
|---|---|---|---|
| INSTALL_DIR | 任意 | {実行パス}/exem | エージェントインストールパス (standaloneモード) |
| RECEIVER_IP | 必須 | - | exemOne Receiver IPアドレス |
| RECEIVER_PORT | 任意 | 9009 | exemOne Receiverポート |
| EXEM_AGENT_NAME | 任意 | kafka-agent | エージェント識別名 |
| KAFKA_HOME | 任意 | - | インストールパスを直接指定する場合に使用 |
- 実行
./exem-kafka-agent_docker.bin kafka-docker-install-file
4. install動作詳細
4.1. インストールディレクトリ設定
- デフォルト値: 実行位置下位の
exem/ディレクトリ - 入力パスが
/exemで終わらない場合、自動的に/exemが追加されます。 - Kafka Agentは
{INSTALL_DIR}/kafka/にインストールされます。
예시) INSTALL_DIR = /home/exem → KAFKA_HOME = /home/exem/kafka
- Legacy環境:
KAFKA_HOME = $EXEMONE_HOME/containers/exemone-kafka-agent(自動設定)
4.2. 新規インストール vs パッチの自動判別
{KAFKA_HOME}ディレクトリの存在有無で判別します。
| 条件 | 動作 |
|---|---|
| KAFKA_HOMEなし | 新規インストール |
| KAFKA_HOMEあり | パッチ(既存設定維持、イメージ置換、cfg/.env・cfgファイル・スクリプトアップデート) |
4.3. バージョン表記形式
- パッケージバージョンは
{バイナリバージョン}-{パッケージインデックス}形式で表記されます。 - バイナリ(エージェントjar)が同一であっても、installer、設定ファイルなどパッケージ構成が変更されるとインデックスのみ増加します。
예시) 3.0.23.3-4
agent : 3.0.23.3 (바이너리 버전)
package : 3.0.23.3-4 (패키지 버전)
5. 新規インストール
5.1. インストール完了後のファイル構造
exem/
└── kafka/
├── lib/
│ └── exemone-kafka-agent-v{PKG_VERSION}.tar.gz ← Dockerイメージファイル
├── cfg/
│ ├── .env ← エージェント設定(バージョン、受信機アドレスなど)
│ ├── kafka.conf ← エージェント動作設定
│ └── cfg.reload ← 設定リロードファイル
├── log/
├── pkg_version.sh
├── start.sh
└── stop.sh
5.2. cfg/.env 構成
KAFKA_AGENT_VERSION=3.0.23.3-4
KAFKA_AGENT_NAME="kafka-agent"
KAFKA_AGENT_RECEIVER_ADDR="10.20.30.40:9009"
KAFKA_AGENT_RUN_PATH="/home/exem/kafka"
EXEM_RUN_ON_CONTAINER=true
5.3. インストール完了出力
AGENT_VERSION=3.0.23.3
PKG_VERSION=3.0.23.3-4
INSTALL_DIR=/home/exem/kafka
RECEIVER_ADDR=10.20.30.40:9009
IMAGE=maxgauge/exemone-kafka-agent:v3.0.23.3-4
To start: /home/exem/kafka/start.sh
xmSuccess(0): installation completed
6. パッチ
- 既存インストールが検知されると自動的にパッチモードに移行します。
- パッチ時に実行中のコンテナを自動的に停止しません。パッチ完了後、案内に従い手動で再起動する必要があります。
6.1. パッチ動作
- 既存
cfg/.envを読み込んで既存設定値をデフォルト値として表示 - 変更する設定値を入力(RECEIVER_IP、RECEIVER_PORT、EXEM_AGENT_NAME)
- Dockerイメージロード(新規イメージ → 既存イメージ削除)
cfg/.envアップデートcfg/cfg.reloadアップデートcfg/kafka.confはユーザー設定保存のために上書きしない(Legacy環境)- standalone環境:
cfg/kafka.confもアップデート
start.sh、stop.sh、lib/、pkg_version.shアップデート- Legacy環境の追加動作: イメージをv prefixなしのタグでre-tagging、
$EXEMONE_HOME/.envアップデート
参考
パッチ完了後、エージェントは自動的に再起動されません。
Legacy環境: cd $EXEMONE_HOME && ./scripts/restart.sh kafka-agent
standalone環境: stop.sh && start.sh
6.2. パッチバージョン出力
Existing installation found. Running patch...
Existing version:
agent : 3.0.23.0
package : 3.0.23.0-1
New version:
agent : 3.0.23.3
package : 3.0.23.3-4
6.3. パッチ完了出力
KAFKA_HOME=/home/exem/kafka
OLD_AGENT_VERSION=3.0.23.0
OLD_PKG_VERSION=3.0.23.0-1
NEW_AGENT_VERSION=3.0.23.3
NEW_PKG_VERSION=3.0.23.3-4
IMAGE=maxgauge/exemone-kafka-agent:v3.0.23.3-4
To start: /home/exem/kafka/start.sh
xmSuccess(0): patch completed
7. unpack
- パッケージ内容物を現在のディレクトリに解凍のみ行い終了します。
실행 위치/
└── exem/
└── kafka/
├── lib/
├── cfg/
├── start.sh
├── stop.sh
└── ...
- 完了時出力:
UNPACK_DIR={실행경로}/exem/kafka
xmSuccess(0): unpack completed
8. cfg/.env ファイル
- installモードでインストール時
{KAFKA_HOME}/cfg/.envに保存され、以降パッチ時に既存設定を読み込むのに使用されます。 - コンテナが起動する際にこのファイルをマウントして設定を読み込む。
KAFKA_AGENT_VERSION=3.0.23.3-4
KAFKA_AGENT_NAME="kafka-agent"
KAFKA_AGENT_RECEIVER_ADDR="10.20.30.40:9009"
KAFKA_AGENT_RUN_PATH="/home/exem/kafka"
EXEM_RUN_ON_CONTAINER=true
- 値の変更が必要な場合は
cfg/.envを直接修正した後stop.sh && start.shで再起動すればよいです。
9. エージェント開始/停止
- 開始
sh {KAFKA_HOME}/start.sh
start.sh動作:- コンテナが実行中であれば → "already running"出力後終了
- コンテナが停止状態であれば → 既存コンテナ削除後、新イメージで再生成(パッチ後も新バージョンで起動される)
- コンテナがなければ → 新規生成後起動
停止
sh {KAFKA_HOME}/stop.sh
stop.sh動作:- コンテナが実行中であれば → 停止
- コンテナがない、または既に停止状態であれば → "not running"出力後正常終了
10. エラーコード
| コード | 発生状況 |
|---|---|
| xmError(500) | 不正なメニュー番号選択 |
| xmError(501) | Dockerがインストールされていない |
| xmError(502) | Docker daemonが実行中でない |
| xmError(503) | パッケージ内バージョン情報なし |
| xmError(504) | Dockerイメージファイルなし、またはロード失敗 |
| xmError(505) | RECEIVER_IP欠落/形式エラー、RECEIVER_PORT範囲エラー、ディレクトリ作成失敗、ファイルコピー失敗 |
| xmError(506) | パッケージ解凍失敗 |
| xmError(509) | ユーザーが終了を選択 |
| xmError(103) | コンテナ削除失敗 (start.sh) |
| xmError(106) | コンテナ生成失敗 (start.sh) |
| xmError(200) | コンテナ停止失敗 (stop.sh) |