VictoriaMetricsのインストール

参考: github.com/VictoriaMetrics/VictoriaMetricsproduction build

予め Downloads - The Go Programming Language の手順で Go の最新版をインストールしておきます。

VictoriaMetrics の git レポジトリを clone して最新版のリリースに切り替えます。

git clone https://github.com/VictoriaMetrics/VictoriaMetrics
cd VictoriaMetrics
git checkout v1.31.2

production 版をビルドし生成された実行ファイルを /usr/local/bin/victoriametrics にインストールします。

make victoria-metrics-prod
sudo install bin/victoria-metrics-prod /usr/local/bin/victoriametrics

Setting up serviceDocumentation Addition for Creating a service · Issue #43 · VictoriaMetrics/VictoriaMetricspackage/victoria-metrics.service を参考に systemd のサービス定義ファイルを作成します。本番運用する際は root ユーザではなく専用のユーザを作るほうが良いと思いますが今回はとりあえず使ってみるだけなので手抜きします。ソースを見た感じでは PID のファイルは作らないようなのと package/victoria-metrics.service にもないので PIDFile は無しで。

-retentionPeriod は保管したい期間を月単位で指定します。下記の例は 6 か月です。 lib/storage/table.go#L137 を見ると1か月は31日として換算しています。

私は graphite 互換でデータを送りたいので -graphiteListenAddr :2003 も指定しました。ポートはお好みで。

cat <<'EOF' | sudo tee /etc/systemd/system/victoriametrics.serivce > /dev/null
[Unit]
Description=VictoriaMetrics
After=network.target

[Service]
Type=simple
StartLimitBurst=5
StartLimitInterval=0
Restart=on-failure
RestartSec=1
PIDFile=/run/victoriametrics/victoriametrics.pid
ExecStart=/usr/local/bin/victoriametrics -storageDataPath /var/lib/victoriametrics -retentionPeriod 6 -graphiteListenAddr :2003
ExecStop=/bin/kill -s SIGTERM $MAINPID
LimitNOFILE=65536
LimitNPROC=32000

[Install]
WantedBy=multi-user.target
EOF

以下では tank1 という zfs ボリュームが既にある想定で tank1/victoriametrics ボリュームを新規作成し /var/lib/victoriametrics にマウントポイントを設定します。

sudo zfs create tank1/victoriametrics
sudo zfs set mountpoint=/var/lib/victoriametrics tank1/victoriametrics

設定ファイルを反映してサービスを起動します。

sudo systemctl daemon-reload
sudo systemctl start victoriametrics