Chapter 2. Install

Dependency

  • Go >= 1.17

설치 스크립트

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

    • prometheus

    • zookeeper-exporter

  • node_exporter는 아래와 같은 방법으로 설치할 수 있습니다.

    • config.sh 수정

#############################
# NODE EXPORTER
#############################
NODE_EXPORTER_VERSION=1.4.0
NODE_EXPORTER_INSTALL_DIR=$INSTALL_DIR/node_exporter
  • download.sh, install.sh 순서대로 실행

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

통합 설치

  • arcus-hubble-v3의 모든 구성 요소를 일괄 설치합니다.

  • scripts/config.sh 파일에서 INSTALL_DIRDATA_DIR을 지정합니다.

INSTALL_DIR=/home/arcus/app
# DATA_DIR=$INSTALL_DIR/data  # (optional)
  • scripts/install.sh 실행합니다.

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

설치 구조

INSTALL_DIR만 설정

INSTALL_DIR
|-- alertmanager
|   |-- alertmanager
|   |-- alertmanager.yml
|   |-- amtool
|   |-- conf
|   |   |-- alertmanager.env
|   |   |-- alertmanager.yml
|   |   `-- notification.tmpl
|   `-- start.sh
|-- arcus_exporter
|   |-- arcus_exporter
|   |-- conf
|   |   `-- example.json
|   |-- log
|   |   `-- arcus_exporter.log
|   `-- start.sh
|-- grafana
|   |-- bin
|   |   `-- grafana
|   |-- conf
|   |   |-- defaults.ini
|   |   |-- grafana.ini
|   |   `-- provisioning
|   |       |-- dashboards
|   |       |   `-- hubble-v3_dashboards.yaml
|   |       `-- datasources
|   |           `-- hubble-v3_datasources.yaml
|   |-- dashboards
|   |   |-- arcus.json
|   |   |-- compare_arcus.json
|   |   |-- compare_system.json
|   |   |-- home.json
|   |   |-- prefix.json
|   |   |-- replication.json
|   |   `-- System Resource
|   |       |-- system.json
|   |       `-- zookeeper.json
|   |-- data
|   |   `-- plugins
|   |       `-- simpod-json-datasource
|   |-- log
|   |   `-- grafana.log
|   `-- start.sh
|-- node_exporter
|   |-- node_exporter
|   |-- node_exporter.tar.gz
|   |-- start.sh
|   `-- untar.sh
|-- orbiter
|   |-- config.json
|   |-- log
|   |   `-- orbiter.log
|   |-- orbiter
|   `-- start.sh
|-- prometheus
|   |-- conf
|   |   |-- alert-rules
|   |   |-- container.yaml
|   |   |-- downsampled.yaml
|   |   |-- exporter
|   |   |   |-- arcus_exporter.json
|   |   |   |-- node_exporter.json
|   |   |   `-- zookeeper_exporter.json
|   |   |-- raw.yaml
|   |   `-- recording
|   |       |-- agg.yaml
|   |       `-- downsample.yaml
|   |-- prometheus
|   |-- prometheus.env
|   |-- prometheus.yml
|   |-- promtool
|   |-- start.sh
|   `-- tsdb
`-- zookeeper-exporter
    |-- conf
    |   `-- zkexporter.env
    |-- start.sh
    `-- zookeeper-exporter

INSTALL_DIR + DATA_DIR 설정

INSTALL_DIR
|-- alertmanager
|   |-- alertmanager
|   |-- alertmanager.yml
|   |-- amtool
|   |-- conf
|   |   |-- alertmanager.env -> DATA_DIR/alertmanager/conf/alertmanager.env
|   |   |-- alertmanager.yml -> DATA_DIR/alertmanager/conf/alertmanager.yml
|   |   `-- notification.tmpl
|   `-- start.sh
|-- arcus_exporter
|   |-- arcus_exporter
|   |-- conf -> DATA_DIR/arcus_exporter/conf
|   |-- log -> DATA_DIR/arcus_exporter/log
|   `-- start.sh
|-- grafana
|   |-- bin
|   |   `-- grafana
|   |-- conf
|   |   |-- defaults.ini
|   |   |-- grafana.ini -> DATA_DIR/grafana/conf/grafana.ini
|   |   `-- provisioning
|   |       |-- dashboards
|   |       |   `-- hubble-v3_dashboards.yaml
|   |       `-- datasources
|   |           `-- hubble-v3_datasources.yaml
|   |-- dashboards
|   |   |-- arcus.json
|   |   |-- compare_arcus.json
|   |   |-- compare_system.json
|   |   |-- home.json
|   |   |-- prefix.json
|   |   |-- replication.json
|   |   `-- System Resource
|   |       |-- system.json
|   |       `-- zookeeper.json
|   |-- data
|   |   `-- plugins
|   |       `-- simpod-json-datasource
|   |-- log -> DATA_DIR/grafana/log
|   `-- start.sh
|-- node_exporter
|   |-- node_exporter
|   |-- node_exporter.tar.gz
|   |-- start.sh
|   `-- untar.sh
|-- orbiter
|   |-- config.json -> DATA_DIR/orbiter/config.json
|   |-- log -> DATA_DIR/orbiter/log
|   |-- orbiter
|   `-- start.sh
|-- prometheus
|   |-- conf
|   |   |-- alert-rules
|   |   |   |-- custom.yaml
|   |   |   |-- default_info.yaml
|   |   |   `-- default_warn.yaml
|   |   |-- container.yaml
|   |   |-- downsampled.yaml
|   |   |-- exporter -> DATA_DIR/prometheus/conf/exporter
|   |   |-- raw.yaml
|   |   `-- recording
|   |       |-- agg.yaml
|   |       `-- downsample.yaml
|   |-- prometheus
|   |-- prometheus.env -> DATA_DIR/prometheus/prometheus.env
|   |-- prometheus.yml
|   |-- promtool
|   |-- start.sh
|   `-- tsdb -> DATA_DIR/prometheus/tsdb
`-- zookeeper-exporter
    |-- conf -> DATA_DIR/zookeeper-exporter/conf
    |-- start.sh
    `-- zookeeper-exporter
DATA_DIR
|-- alertmanager
|   `-- conf
|       |-- alertmanager.env
|       `-- alertmanager.yml
|-- arcus_exporter
|   |-- conf
|   |   `-- example.json
|   `-- log
|       `-- arcus_exporter.log
|-- grafana
|   |-- conf
|   |   `-- grafana.ini
|   `-- log
|       `-- grafana.log
|-- orbiter
|   |-- config.json
|   `-- log
|       `-- orbiter.log
|-- prometheus
|   |-- conf
|   |   `-- exporter
|   |       |-- arcus_exporter.json
|   |       |-- node_exporter.json
|   |       `-- zookeeper_exporter.json
|   |-- prometheus.env
|   `-- tsdb
`-- zookeeper-exporter
    `-- conf
        `-- zkexporter.env

Last updated