2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Victoria Metricsがよう落ちる

Last updated at Posted at 2022-09-18

きっかけ

以前、ラズパイで収集した自宅データをPrometheusで収集、Victoria Metricsで永続化、という記事を書いたのですが、しばらく稼働させていたところ、長期保存も得意と言ってるVictoria Metricsがまさかのダウン。
原因調査、対策までのお話。

Prometheusは元気ということで、Victoria Metricsがどうもダメっぽい。
こんな感じで息も絶え絶え。
(何度も再起動したがすぐに落ちる)

history.png

こちら、以前の記事。

2年間保存しようと思ってたのに、全然保たない。。。

# cat victoria-metrics.service
[Unit]
Description=Victoria Metrics
Before=prometheus.service

[Service]
User=prometheus
ExecStart=/usr/local/bin/victoria-metrics-prod \
  -storageDataPath /var/lib/victoria/ \
  -retentionPeriod=24 

[Install]
WantedBy=multi-user.target

環境

  • Raspberry Pi 3 Model B+
  • Raspbian GNU/Linux 10 (buster)

構成として
(センサー)->(Pythonスクリプト)->(Node Exporter)->(Prometheus)->(Victoria Metrics)->(Grafana)
な感じです。
グラフの「1かい」は上記ラズパイ3、「3かい」は別に置いてるラズパイzeroで収集。

調査

/var/log/syslogにこんなのが。

Sep 18 17:05:14 rasp3 victoria-metrics-prod[379]: 2022-09-18T08:05:14.695Z#011panic#011VictoriaMetrics/lib/fs/dir_remover.go:50#011FATAL: cannot remove "/var/lib/victoria/data/small/2022_09/tmp/1715E5652798B8B9": openfdat /var/lib/victoria/data/small/2022_09/tmp/1715E5652798B8B9: too many open files
Sep 18 17:05:14 rasp3 victoria-metrics-prod[379]: panic: FATAL: cannot remove "/var/lib/victoria/data/small/2022_09/tmp/1715E5652798B8B9": openfdat /var/lib/victoria/data/small/2022_09/tmp/1715E5652798B8B9: too many open files
Sep 18 17:05:14 rasp3 victoria-metrics-prod[379]: goroutine 362 [running]:

(中略)

Sep 18 17:05:14 rasp3 systemd[1]: victoria-metrics.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Sep 18 17:05:14 rasp3 systemd[1]: victoria-metrics.service: Failed with result 'exit-code'.
Sep 18 17:05:17 rasp3 prometheus[385]: ts=2022-09-18T08:05:17.359Z caller=dedupe.go:112 comp

「too many open files」だって。
えーっとこれなんだっけ。。。と色々ググってたら、ファイルディスクリプタの問題だと気づく。
(LPICでやったのに忘却の彼方)

変更前のファイルディスクリプタはというと、1024。
524288はハードリミットなので、1024でハネられることになる。

# cat /proc/(Victoria Metoricsのpid)/limits | grep 'Max open'
Max open files            1024                 524288               files 

対策

こちらを参考にさせていただき、変更してみる。

systemdのデーモンのファイルディスクリプタは/etc/security/limits.confをいじっても無駄だよ、ということでサービスの構成ファイルとして追加してあげる。

# mkdir /etc/systemd/system/victoria-metrics.service.d
# vi /etc/systemd/system/victoria-metrics.service.d/00-limits.conf

/etc/systemd/system/victoria-metrics.service.d/00-limits.confの中身
とりあえず65536としてみた。(適当。)

[Service]
LimitNOFILE=65536:65536

修正後、反映

# systemctl daemon-reload
# systemctl start victoria-metrics
# systemctl status victoria-metrics
● victoria-metrics.service - Victoria Metrics
   Loaded: loaded (/etc/systemd/system/victoria-metrics.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/victoria-metrics.service.d
           └─00-limits.conf
   Active: active (running) since Sun 2022-09-18 23:19:30 JST; 3s ago
 Main PID: 4450 (victoria-metric)
    Tasks: 9 (limit: 2059)
   CGroup: /system.slice/victoria-metrics.service
           └─4450 /usr/local/bin/victoria-metrics-prod -storageDataPath /var/lib/victoria/ -retentionPeriod=24

Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.152Z        info        VictoriaMetrics/lib/storage/partition.go:1530        opened part "/v
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.154Z        info        VictoriaMetrics/lib/storage/partition.go:1530        opened part "/v
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.156Z        info        VictoriaMetrics/lib/storage/partition.go:1530        opened part "/v
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.195Z        info        VictoriaMetrics/lib/storage/partition.go:1530        opened part "/v
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.201Z        info        VictoriaMetrics/app/vmstorage/main.go:105        successfully opened
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.223Z        info        VictoriaMetrics/app/vmselect/promql/rollup_result_cache.go:106      
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.408Z        info        VictoriaMetrics/app/vmselect/promql/rollup_result_cache.go:132      
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.409Z        info        VictoriaMetrics/app/victoria-metrics/main.go:61        started Victo
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.409Z        info        VictoriaMetrics/lib/httpserver/httpserver.go:83        starting http
Sep 18 23:19:32 rasp3 victoria-metrics-prod[4450]: 2022-09-18T14:19:32.410Z        info        VictoriaMetrics/lib/httpserver/httpserver.go:84        pprof handler

65536に変わった。

# cat /proc/4450/limits | grep 'Max open'
Max open files            65536                65536                files 

結果

変更後、6時間ほど経過したが、元気な様子。

after.png

台風が来てるし、気圧がどうなるか気になる。
何もありませんように。。。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?