VictoriaMetricsのインストール
参考: github.com/VictoriaMetrics/VictoriaMetrics の production 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 service の Documentation Addition for Creating a service · Issue #43 · VictoriaMetrics/VictoriaMetrics と package/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