# Chapter 2. Install

## Dependency

* [Go](https://go.dev/doc/install) >= 1.21

## 설치 스크립트

arcus-hubble-v3 설치 스크립트 사용 시, 두 가지 경로를 지정할 수 있습니다.

* `INSTALL_DIR`: arcus-hubble-v3가 설치될 경로입니다.
* `DATA_DIR`: 설정 파일, 로그 및 metric data 등 사용자 데이터가 위치할 경로입니다. 설정하지 않으면 `INSTALL_DIR`에 사용자 데이터를 함께 관리합니다.
  * 메트릭이나 로그가 대량 기록되는 상황을 대비하여 분리된 디스크 공간에 `DATA_DIR`을 지정할 수 있습니다.
  * 버전 업그레이드 등의 운영 작업 시 사용자 데이터를 보존하기 용이합니다.

### 개별 설치

* arcus-hubble-v3의 일부 구성 요소만 설치합니다.
* `scripts/{module}/install.sh INSTALL_DIR [DATA_DIR]` 명령을 실행합니다.
* 구성 요소 목록
  * `alertmanager`
  * `arcus_exporter`
  * `grafana`
  * `orbiter`
  * `promxy`
  * `victoriametrics`
  * `vmalert`
  * `zookeeper-exporter`
* `node_exporter`는 아래와 같은 방법으로 설치할 수 있습니다.
  * `config.sh` 수정

```sh
#############################
# NODE EXPORTER
#############################
NODE_EXPORTER_VERSION=1.4.0
NODE_EXPORTER_INSTALL_DIR=$INSTALL_DIR/node_exporter
```

* `download.sh`, `install.sh` 순서대로 실행

```sh
scripts/node_exporter/download.sh
scripts/node_exporter/install.sh
```

### 통합 설치

* arcus-hubble-v3의 모든 구성 요소를 일괄 설치합니다.
* `scripts/config.sh` 파일에서 `INSTALL_DIR`과 `DATA_DIR`을 지정합니다.

```sh
INSTALL_DIR=/home/arcus/app
# DATA_DIR=$INSTALL_DIR/data  # (optional)
```

* `scripts/install.sh` 실행합니다.
  * 각 구성 요소에 대해 `./{module}/install.sh INSTALL_DIR/{module} [DATA_DIR/{module}]` 명령이 실행됩니다.
