はじめに
当ブログにZabbix関連の記事を過去にいくつか書いていましたが、構築からしっかりと書いていなかったことに気が付きました。全部を書くと長くなるので、いくつかの記事に分けて書きたいと思います。あと、過去の記事はZabbixのバージョンが古いです。アイテムやトリガー、テンプレートといった主な機能は変わりませんが、Zabbix4.0とZabbix6.0だとUIも全然違いますし、Zabbix6.0に関する情報も発信できればと思います。
目新しい話
Zabbix6.0で新しく追加された注目機能として、HA構成が組めるようになったことではないでしょうか。他の新しい機能を知らないだけではありますが、監視サーバを導入する際に、冗長化させることができるようになったことの意味は大きいと思います。
ただし、Zabbixの機能だけでVIPを持たせることはできないようです。監視サーバなので、アクセスするときのIPに気をつければいいだけ…なのですが1つのIPで管理できれば便利ですよね。あと、監視対象からSNMPトラップを投げるときに、VIP宛てにすれば不要な設定を入れる必要もなくなります。今回はZabbixサービスを冗長化させ、さらにZabbixが使用するDBも冗長化する構成を構築しようと思います。
構成図
イメージはこんな感じ。監視サーバでサーバを4つも使っちゃう贅沢構成です。
ホスト名:zabbix-ap01
IP:172.16.1.101
構成:AlmaLinux 9、Zabbix6.0
ホスト名:zabbix-ap02
IP:172.16.1.102
構成:AlmaLinux 9、Zabbix6.0
ホスト名:zabbix-db01
IP:172.16.1.104
構成:AlmaLinux 9、PostgreSQL 13
ホスト名:zabbix-db02
IP:172.16.1.105
構成:AlmaLinux 9、PostgreSQL 13
Zabbixのインストール
実施するサーバ:zabbix-ap01、zabbix-ap02
※このように手順を実行する対象サーバを書いておきます。
Zabbixを一度でもインストールしたことがあれば苦労しませんが、初めての場合ついつい構築例を紹介しているブログを探しに行ってしまいますよね(当ブログもその一部かもしれません)。
Zabbixの場合、公式サイトが示す方法を実行するのが一番です。以下のサイトでZabbixをインストールするOSやZabbixのバージョン、DBの種類を選択すると、要件に応じたインストール手順が表示されます。
■Zabbix ダウンロードサイト
https://www.zabbix.com/jp/download
今回はAlmaLinux9でZabbix6.0をPostgreSQLで構築します。webサーバはApacheにしました。
以下の手順は公式サイトで紹介される手順です。まずZabbixのRPMパッケージを取得し、インストールします。
1 2 3 |
# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm # dnf clean all # dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent |
公式サイトではPostgreSQLが既にインストールされている前提で話が進みますので注意しましょう。DB側の操作を行います。
PostgreSQLのインストール
実施するサーバ:zabbix-db01、zabbix-db02
次にPostgreSQLをインストールします。以下の手順でダメなら他を調べてみてください。
1 2 |
# dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm # dnf install -y postgresql13-server |
以下のコマンドでpostgresのバージョンが出来ます。マイナーバージョンは異なるかと思いますが、v13がインストールされていることを確認します。
1 2 |
# psql --versionpsql --version psql (PostgreSQL) 13.12 |
※PostgreSQLの設定は次回入れていきます。
ログ設定
PostgreSQLユーザができたので、ログ格納ディレクトリを作成します。(忘れないうちに実施)
実施するサーバ:zabbix-db01、zabbix-db02
以下のコマンドを実行します。
1 2 3 4 |
# mkdir /var/log/pacemaker/ # mkdir /var/log/corosync/ # mkdir /var/log/postgres/ # chown postgres: /var/log/postgres/ |
実施するサーバ:zabbix-ap01、zabbix-ap02
以下のコマンドはap側で実行します。
1 |
# mkdir /var/log/keepalived/ |
ログの格納場所は要件に応じて変更しましょう。要件がない場合は、おおよそ/var/log配下に格納しておけば問題ないかと思います。
続きは以下で。