Qiita Conference 2025

Qiita史上最多!豪華12名のゲストが登壇

特別講演ゲスト(敬称略)

ymrl、成瀬允宣、鹿野壮、伊藤淳一、uhyo、徳丸浩、ミノ駆動、みのるん、桜庭洋之、tenntenn、けんちょん、こにふぁー

1
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?

Zabbix Server 構築時に気をつけるべき点(AlmaLinux 9 & PostgreSQL)

Last updated at Posted at 2025-03-13

この記事について

これは2025年1月に AlmaLinux 9 で zabbix サーバを立てたとき悩んだポイントをまとめた備忘録である。
この記事は試行錯誤してなんとか動かした記録であり、ハマらないように構築するならおそらく(すべての組み合わせを試したわけではないため、おそらく)「まとめ」の構成にするのが早い。
ただし2025年3月にまとめたものなので、将来においてはこの記事に書かれている問題が解決している可能性がある。

サーバ構成

サーバ OS は AlmaLinux OS 9.5
ウェブサーバは nginx
データベースには PostgreSQL を使うことにした。
また、PostgreSQL の TimescaleDB extension なるものが高速処理に適しているそうなので、これも使ってみることにした。

悩んだポイント

どこからパッケージを入れ、どのバージョンにするか決めなければならない。

zabbix-server

どこから入れるかは、2つの選択肢がある

  • EPEL リポジトリ
  • zabbix リポジトリ

リポジトリにより、入れられる zabbix-server のバージョンが異なる

  • EPEL リポジトリ
    • zabbix (6.0) from epel
    • zabbix7 (7.0) from epel
  • zabbix リポジトリhttps://www.zabbix.com/download 2025年3月時点の選択肢)
    • zabbix (7.2) from zabbix
    • zabbix (7.0 LTS) from zabbix
    • zabbix (6.0 LTS) from zabbix
    • zabbix (5.0 LTS) from zabbix
    • (選択したバージョンのリポジトリが入るが、どれを入れてもリポジトリ名は同じになる)

zabbix-server の DB に使う PostgreSQL Server

どこから入れるかは、2つの選択肢がある

  • AlmaLinux OS の appstream リポジトリ
  • PGDG リポジトリ

リポジトリにより、入れられる PostgreSQL Server のバージョンが異なる

  • AlmaLinux OS の appstream リポジトリ(9.0, 9.2, 9.4
    • postgresql(13) from appstream
    • postgresql:15 from appstream (AlmaLinux 9.2 以降)
    • postgresql:16 from appstream (AlmaLinux 9.4 以降)
    • (dnf module で切り替える)
  • PGDG リポジトリhttps://download.postgresql.org/pub/repos/yum/ 2025年3月時点の選択肢)
    • postgresql12 from pgdg12
    • postgresql13 from pgdg13
    • postgresql14 from pgdg14
    • postgresql15 from pgdg15
    • postgresql16 from pgdg16
    • postgresql17 from pgdg17
    • (pgdg-redhat-repo-latest.noarch.rpm をインストールすると、バージョン違いのリポジトリが複数入る)

PostgreSQL Server に導入する TimescaleDB

どこから入れるかは、3つの選択肢があるようだ

  • EPEL リポジトリ
  • TimescaleDB リポジトリ
  • PGDB リポジトリ

インストールされている PostgreSQL Server のパッケージに適合した TimescaleDB をインストールする

  • EPEL リポジトリ
    • timescaeldb from epel
  • TimescaleDB リポジトリ
    • timescaledb-2-postgresql-12 from timescale_timescaledb
    • timescaledb-2-postgresql-13 from timescale_timescaledb
    • timescaledb-2-postgresql-14 from timescale_timescaledb
    • timescaledb-2-postgresql-15 from timescale_timescaledb
    • timescaledb-2-postgresql-16 from timescale_timescaledb
    • timescaledb-2-postgresql-17 from timescale_timescaledb
  • PGDB リポジトリ
    • timescaledb_12 from pgdg12
    • timescaledb_13 from pgdg13
    • timescaledb_14 from pgdg14
    • timescaledb_15 from pgdg15
    • timescaledb_16 from pgdg16
    • timescaledb_17 from pgdg17

どんな問題が起きたか

appstream の PostgreSQL Server と EPEL の TimescaleDB

EPEL の TimescaleDB でサポートされているのは appstream の postgresql(13) である。
postgresql:15 や postgresql:16 はサポートされておらず、組み込んで起動するとこのようなエラーになる。

FATAL:  incompatible library "/usr/lib64/pgsql/timescaledb.so": version mismatch
DETAIL:  Server is version 16, library is version 13.
LOG:  database system is shut down

postgresql:15 や postgresql:16 は 9.0 のときには存在しなかったバージョンなので、EPEL はそれらに対応するパッケージは作らないつもりなのかもしれない。

EPEL の zabbix7 と nginx

EPEL の zabbix7-web パッケージには Apache 用の設定ファイルが含まれているものの、nginx 用の設定ファイルが含まれていない。
一方 zabbix リポジトリ の zabbix には zabbix-nginx-conf というパッケージがあり、nginx 用の設定ファイルが含まれている。
EPEL の zabbix7-web パッケージを使うには、zabbix リポジトリの srpm を解凍して、zabbix-nginx.conf を持ってくるとよい。

EPEL の zabbix7 と TimescaleDB

EPEL の zabbix7-dbfiles-pgsql には zabbix 用のスキーマファイルが含まれているものの、TimescaleDB 用のスキーマファイルが含まれていない。
一方 zabbix リポジトリ の zabbix には zabbix-sql-scripts というパッケージがあり、TimescaleDB 用のスキーマファイルが含まれている。
EPEL の zabbix7-web パッケージを使うには、zabbix リポジトリの srpm を解凍して、database/postgresql/timescaledb/schema.sql を実行するとよい。

監視対象としての PostgreSQL Server 17

bgwriter と checkpoints の値が取れない。おそらくまだ postgresql_agent が PostgreSQL 17 に対応していない。
この件についての(agent2 についてのものだが)バグレポート

  • PostgreSQL 17 で統計用テーブルの構造が変わった
  • zabbix-agent の postgresql テンプレートは従来の構造を想定して統計を拾いに行っているため

TimescaleDB 2.16, 2,17 での問題

"Last 1 day" のグラフは表示されるが、"Last 30 days" にすると "aggregated compressed column not found" という文字が表示されてグラフが表示されない。
これは TimescaleDB のバグ の影響らしい。
TimescaleDB はバグを直した 2.18 をリリースしたが、2.18 になっても解決しないっぽい。
この workaround を設定すると問題は出なくなる。
EPEL の TimescaleDB は 2.10 なので、この問題には遭遇しないと思われる。

私が最終的にどの組み合わせで構築したか

稼働させる必要があり、一からの構築し直しを繰り返せなかったため、おすすめの構成とは若干異なる。

zabbix-server
zabbix リポジトリ から zabbix 7.0
最も新しい LTS なので 7.0 にした
PostgreSQL
PGDG から postgresql17
TimescaleDB のインストールガイドが PGDG を案内していたので
また、新しいのがよかったので最新の 17 にした
TimescaleDB
TimescaleDB リポジトリ から timescaledb-2-postgresql-17
TimescaleDB のインストールガイドが TimescaleDB リポジトリを案内していたので
バージョンは PostgreSQL Server にあわせたもの
監視対象の PostgreSQL 17
bgwriter と checkpoints のアイテムを無効にした

まとめ

監視対象の PostgreSQL 17 からは取得できない監視アイテムがある

おそらく zabbix-agent が未対応なため、PostgreSQL 17 ではすべての監視アイテムを取得できない。
エラーが出続けるので特定の監視アイテムを無効にするか、サービスへの採用バージョンを選べるなら PostgreSQL 16 までにしておくとよいかもしれない。

おすすめサーバ構成1

リポジトリを追加しない構成

web サーバ
Apache を用いる
zabbix-server
EPEL リポジトリの zabbix 7.0 を使う
最も新しい LTS である。
web サーバは Apache でなければならない
PostgreSQL + TimescaleDB
AlmaLinux OS の appstream リポジトリから postgresql:16 を使い、TimescaleDB を使わない。
比較的新しい PostgreSQL を使える。

おすすめサーバ構成2

zabbix リポジトリだけ追加した構成

web サーバ
Apache でも nginx でもよい
zabbix-server
zabbix リポジトリの zabbix 7.0 を使う
最も新しい LTS である。
Apache でも nginx でも大丈夫だし、TimescaleDB 用のスキーマファイルもある。
PostgreSQL + TimescaleDB パターン1
AlmaLinux OS の appstream リポジトリから postgresql:16 を使い、TimescaleDB を使わない。
比較的新しい PostgreSQL を使える。
PostgreSQL + TimescaleDB パターン2
AlmaLinux OS の appstream リポジトリから postgresql(13) を使い、TimescaleDB を使う。
TimescaleDB を使える。

おすすめサーバ構成3

zabbix リポジトリと PGDG リポジトリを追加した構成

web サーバ
Apache でも nginx でもよい
zabbix-server
zabbix リポジトリの zabbix 7.0 を使う
最も新しい LTS である。
Apache でも nginx でも大丈夫だし、TimescaleDB 用のスキーマファイルもある。
PostgreSQL + TimescaleDB
PGDG の postgresql-16 を使い、PGDG の TimescaleDB を使う。
比較的新しい PostgreSQL と TimescaleDB を使える。
監視対象に PostreSQL Server 17 が入ってしまうので postgresql-17 は使わない。
TimescaleDB の workaround を適用する。

おすすめサーバ構成4

PostgreSQL を使わない
試していないがこのほうが楽かもしれない。身もフタもない話であるが、そう言いたくなるくらい色々あった(で、この記事を書いた)。
MySQL のほうは MariaDB もあり、それはそれで何かあるかもしれないが、試していないのでわからない。
1
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

Qiita Conference 2025 will be held!: 4/23(wed) - 4/25(Fri)

Qiita Conference is the largest tech conference in Qiita!

Keynote Speaker

ymrl、Masanobu Naruse, Takeshi Kano, Junichi Ito, uhyo, Hiroshi Tokumaru, MinoDriven, Minorun, Hiroyuki Sakuraba, tenntenn, drken, konifar

View event details
1
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?