Database
[VictoriaMetrics] 설치
흥부가귀막혀
2022. 3. 14. 14:13
스펙
Server
- CentOS 7.4 64bit
- CPU: 2core
- Mem: 2GB
- Disk: 100GB
- User: irteam(home: /home1/irteam/)
VictoriaMetrics
- version: 1.62.0
Go
- version: 1.16.5
HA 구성
- HA 구성 방법에는 단일 노드와 cluster 구성 방법이 있다.
- 단일 노드로 구성할 경우 vmagent 를 통해 단일 노드로 구축한 여러대의 victoria-metrics 에 write 를 할 수 있다. 만약 vmagent 를 사용하지 않을 경우 client 가 직접 이런 처리를 해야한다.
- cluster 로 구성할 경우 vminsert 가 단일 노드시 사용하는 vmagent 역할을 하는거로 보인다.(이때 replica 도 정의할 수 있다.) 자세한 사항은 cluster guide 참고
- metric 데이터량이 크지 않을 경우 단일 노드로 구성하는걸 추천
설치 가이드
공통 사항
dir 생성
# apps 및 victoria metrics bin 폴더 생성
mkdir -p /home1/irteam/apps/victoria-metrics/
# data 를 저장할 경로 생성
mkdir -p /home1/irteam/data/victoria-metrics
mkdir -p /home1/irteam/data/vmagent
# log 폴더 생성
mkdir -p /home1/irteam/logs/victoria-metrics/
# 필요한 내용을 설치할 INSTALL 폴더 생성
mkdir -p /home1/irteam/INSTALL
1안. source compile
go 설치
다운로드
cd /home1/irteam/INSTALL
wget 'https://dl.google.com/go/go1.16.5.linux-amd64.tar.gz'
tar -zxvf go1.16.5.linux-amd64.tar.gz
# apps 로 이동
mv go ~/apps
환경 변수 설정
export GO_HOME=${APP_HOME}/apps/go
export PATH=${GO_HOME}/bin:$PATH
make 수행시 compile 에러 방지를 위해 GCC upgrade
sudo yum install centos-release-scl -y
sudo yum install devtoolset-7 -y
scl enable devtoolset-7 bash
Victoria Metrics
cd /home1/irteam/INSTALL
git clone -b v1.62.0 https://github.com/VictoriaMetrics/VictoriaMetrics.git
cd VictoriaMetrics
# 1.62.0 이 맞는지 확인을 위하 한번더 checkout
git checkout -b v1.62.0
# fatal: A branch named 'v1.62.0' already exists. 라 뜨면 정상적으로 1.62.0 을 clone 받은 것.
make victoria-metrics
# 생성된 binary 를 apps 폴더로 이동
mv bin/victoria-metrics ~/apps/victoria-metrics/
vmagent
# Victoria Metrics 설치 이후에 진행.
make vmagent
# 생성된 binary 를 apps 폴더로 이동
mv bin/vmagent ~/apps/victoria-metrics/
vmalert
# Victoria Metrics 설치 이후에 진행.
make vmalert
# 생성된 binary 를 apps 폴더로 이동
mv bin/vmalert ~/apps/victoria-metrics/
2안. victoria metrics 에서 제공해준 product download
Victoria Metrics
다운로드
cd /home1/irteam/INSTALL
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.62.0/victoria-metrics-amd64-v1.62.0.tar.gz
tar -zxvf victoria-metrics-amd64-v1.62.0.tar.gz
mv victoria-metrics-prod ~/apps/victoria-metrics/victoria-metrics
vmagent
다운로드
cd /home1/irteam/INSTALL
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.62.0/vmutils-amd64-v1.62.0.tar.gz
tar -zxvf vmutils-amd64-v1.62.0.tar.gz
mv vmagent-prod ~/apps/victoria-metrics/vmagent
vmalert
다운로드
# vmagent 설치로 vmutils-amd64-v1.62.0.tar.gz 을 download 받고 압축을 해제했을 경우
mv vmalert-prod ~/apps/victoria-metrics/vmalert
실행
victoria metrics
- bin 폴더 접근하여 아래와 같은 arg 로 실행
cd /home1/irteam/apps/victoria-metrics/
./victoria-metrics \
-storageDataPath=/home1/irteam/data/victoria-metrics \
1> /home1/irteam/logs/victoria-metrics/vm.log 2>&1 &
vmagent
- bin 폴더 접근하여 아래와 같은 arg 로 실행
cd /home1/irteam/apps/victoria-metrics/
./vmagent \
-remoteWrite.tmpDataPath=/home1/irteam/data/vmagent \
-remoteWrite.maxDiskUsagePerURL=1GB \
-remoteWrite.url=http://<victoriametrics-host-1>:8428/api/v1/write \
-remoteWrite.url=http://<victoriametrics-host-2>:8428/api/v1/write \
1> /home1/irteam/logs/victoria-metrics/vmagent.log 2>&1 &
- 실행시 줄수 있는 옵션은 link 참고
vmalert
- /home1/irteam/config/vmalert 폴더에 alert.rules 설정 파일 정의
- bin 폴더 접근하여 아래와 같은 arg 로 실행
- alert rule 은 prometheus 에서 정의한 alert rule 을 따른다
./vmalert -rule=/home1/irteam/config/vmalert/alert.rules \ # Path to the file with rules configuration. Supports wildcard
-datasource.url=http://localhost:8428 \ # PromQL compatible datasource
-notifier.url=http://<alertmanager addr>:9093 \ # AlertManager URL
-remoteWrite.url=http://localhost:8428 \ # Remote write compatible storage to persist rules
-remoteRead.url=http://localhost:8428 \ # MetricsQL compatible datasource to restore alerts state from
-evaluationInterval=30s \
1> /home1/irteam/logs/victoria-metrics/vmalert.log 2>&1 &