Dockerでtag:latestはよくない、と思い知った

投稿者: | 2022年11月21日

使っている人にとっては当然なのかもしれませんが・・・。

DockerでZabbix+Grafanaを運用していたところ、どうやらメモリ不足でZabbix Serverが止まってしまった。そこで、メモリ割り当てと各種キャッシュ値をあげて再起動してみた。

ZBX_CACHESIZE=8M
ZBX_HISTORYCACHESIZE=16M
ZBX_HISTORYINDEXCACHESIZE=4M
ZBX_TRENDCACHESIZE=4M
ZBX_TRENDFUNCTIONCACHESIZE=4M
ZBX_VALUECACHESIZE=8M

赤字のあたりを修正。
portainer .ioで管理しているので、Envに追加して値を128Mとか適当に設定。

で、Zabbix-serverのコンテナを再度起動してWebからアクセスすると、databaseエラーが!

The Zabbix database version does not match current requirements. Your database version: 6020000. Required version: 6000000.

どうやら、データベースのバージョンが上がってしまったらしい。
なぜかというと、今再起動したZabbix-serverのTagが:latestだったから・・・

それまで、Zabbixの6.0.5を使っていたので、識別用のバージョンが6000000だった。
それが、再起動したことで新しいイメージを持ってきてくれてしまい、6.2.4に。
そのため、6020000に更新されてしまった模様。
何が変わったのかわからないので、バージョンの値だけ直しても危険だろう。

仕方ないので、別コンテナに入れてある zabbix-web-nginx-mysql も、6.2.4に更新して実行。
無事にアクセスできるようになった。

これでおしまい。




ならよかった・・・。



グラフ表示にGrafanaを使っていたのだけれど、今度はこちら側に問題発生。
どのグラフもnodataになってしまう。

Zabbix plugin for Grafanaを使っているのだけれど、こちら側に使えなくなった機能が使われてしまっているらしい。GitHub側のIssuesに載ってた・・・。載ってたんだけど、Closeしてる?(#1470

Releaseを見てもしっかりと「Fixed Plugin is not working with Zabbix 6.2.0, #1470」と書かれている。なので、Zabbixを6.2.4ではなく、6.2.0まで戻してみた。(6.2.xと同系なのでデータベース構造は同じ)そうすると、無事にデータをとってきてくれた。

ということで、構築時に適当にlatestで設定したせいで、発生から6時間ほど監視が止まってしまった・・・というお話。ちゃんとバージョン指定しましょう、そのためのTagの仕組み。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です