メニューを閉じる

テクノデジタルグループ

メニューを開く

2023.09.05

インフラ

AL2023にzabbix6.0+RDSでHA構成に挑戦してみた

今回LA2023を使ってzabbixのHA構成に挑戦しました。
その際の手順をご紹介させていただきます。

 概要

– EC2インスタンスを立てる
– RDSを立てる
– ZABBIXをインストールする
– RDSへ初期スキーマとデータをインポートする
– zabbix_server.confを修正する

作業手順

※EC2、RDSを立てる作業は省略します。

ZABBIXをインストールする

まずはrootへsudoします。

sudo su -

zabbix リポジトリのインストール

実施時に公式で確認してください。
https://www.zabbix.com/download

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
dnf clean all

次にZabbixサーバー、フロントエンド、エージェントをインストールします。

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent zabbix-get zabbix-web-japanese

ここで依存関係のエラーが表示されました。

問題: 競合するリクエスト
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.10-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.11-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.12-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.13-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.14-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.15-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.16-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.17-release1.el9.x86_64 に必要です
- libldap.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- libldap.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- liblber.so.2()(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- liblber.so.2(OPENLDAP_2.200)(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.18-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.6-2.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.6-2.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.6-2.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.7-1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.7-1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.7-1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.8-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.8-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.8-release1.el9.x86_64 に必要です
- libOpenIPMI.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.9-release1.el9.x86_64 に必要です
- libOpenIPMIposix.so.0()(64bit) が提供されません zabbix-server-mysql-6.0.9-release1.el9.x86_64 に必要です
- libnetsnmp.so.40()(64bit) が提供されません zabbix-server-mysql-6.0.9-release1.el9.x86_64 に必要です
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみて ください)

依存関係のエラー解消のため下記をインストールしました。
rockyから取得しているのは
Rocky Linuxは、Red Hat Enterprise Linux(RHEL)互換のLinuxディストリビューションでありダウンストリームビルドのためcentos streamから取ってくるよりバグが無さそうだったからです。

rpm -Uvh https://dl.rockylinux.org/pub/rocky/9/AppStream/x86_64/os/Packages/n/net-snmp-libs-5.9.1-9.el9.x86_64.rpm
rpm -Uvh https://dl.rockylinux.org/pub/rocky/9/AppStream/x86_64/os/Packages/o/OpenIPMI-libs-2.0.32-3.el9.x86_64.rpm

インストールできているかの確認

dnf install OpenIPMI-libs
# Nothing to do.
# Complete!

インストールできていたので再度Zabbixサーバー、フロントエンド、エージェントをインストールします。

dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent zabbix-get zabbix-web-japanese
# Installed:
# cairo-1.17.4-3.amzn2023.0.2.x86_64
# dejavu-sans-fonts-2.37-16.amzn2023.0.2.noarch
# fontconfig-2.13.94-2.amzn2023.0.2.x86_64
# fonts-filesystem-1:2.0.5-5.amzn2023.0.2.noarch
# fping-5.1-1.el9.x86_64
# freetype-2.12.1-3.amzn2023.0.1.x86_64
# gd-2.3.3-5.amzn2023.0.3.x86_64
# glibc-langpack-ja-2.34-52.amzn2023.0.2.x86_64
# google-noto-cjk-fonts-common-20201206-2.amzn2023.0.2.noarch
# google-noto-fonts-common-20201206-2.amzn2023.0.2.noarch
# google-noto-sans-cjk-ttc-fonts-20201206-2.amzn2023.0.2.noarch
# google-noto-sans-vf-fonts-20201206-2.amzn2023.0.2.noarch
# graphite2-1.3.14-7.amzn2023.0.2.x86_64
# harfbuzz-7.0.0-2.amzn2023.0.1.x86_64
# jbigkit-libs-2.1-21.amzn2023.0.1.x86_64
# langpacks-core-font-en-3.0-21.amzn2023.0.4.noarch
# libX11-1.7.2-3.amzn2023.0.2.x86_64
# libX11-common-1.7.2-3.amzn2023.0.2.noarch
# libXau-1.0.9-6.amzn2023.0.2.x86_64
# libXext-1.3.4-6.amzn2023.0.2.x86_64
# libXpm-3.5.15-2.amzn2023.0.1.x86_64
# libXrender-0.9.10-14.amzn2023.0.2.x86_64
# libjpeg-turbo-2.1.4-2.amzn2023.0.2.x86_64
# libpng-2:1.6.37-10.amzn2023.0.2.x86_64
# libssh-0.10.4-3.amzn2023.0.3.x86_64
# libssh-config-0.10.4-3.amzn2023.0.3.noarch
# libtiff-4.4.0-4.amzn2023.0.4.x86_64
# libtool-ltdl-2.4.7-1.amzn2023.0.3.x86_64
# libwebp-1.2.4-1.amzn2023.0.3.x86_64
# libxcb-1.13.1-7.amzn2023.0.2.x86_64
# mariadb-connector-c-3.1.13-1.amzn2023.0.3.x86_64
# mariadb-connector-c-config-3.1.13-1.amzn2023.0.3.noarch
# php8.1-bcmath-8.1.16-1.amzn2023.0.1.x86_64
# php8.1-gd-8.1.16-1.amzn2023.0.1.x86_64
# php8.1-ldap-8.1.16-1.amzn2023.0.1.x86_64
# php8.1-mysqlnd-8.1.16-1.amzn2023.0.1.x86_64
# pixman-0.40.0-3.amzn2023.0.3.x86_64
# unixODBC-2.3.9-3.amzn2023.0.2.x86_64
# xml-common-0.6.3-56.amzn2023.0.2.noarch
# zabbix-agent-6.0.9-release1.el9.x86_64
# zabbix-apache-conf-6.0.18-release1.el9.noarch
# zabbix-get-6.0.18-release1.el9.x86_64
# zabbix-selinux-policy-6.0.18-release1.el9.x86_64
# zabbix-server-mysql-6.0.9-release1.el9.x86_64
# zabbix-sql-scripts-6.0.18-release1.el9.noarch
# zabbix-web-6.0.18-release1.el9.noarch
# zabbix-web-deps-6.0.18-release1.el9.noarch
# zabbix-web-japanese-6.0.18-release1.el9.noarch
# zabbix-web-mysql-6.0.18-release1.el9.noarch
# Skipped:
# zabbix-agent-6.0.18-release1.el9.x86_64
# zabbix-server-mysql-6.0.18-release1.el9.x86_64

RDSに接続するためにmariadbをインストールします。
参考

dnf install mariadb
# Installed:
# mariadb105-3:10.5.18-1.amzn2023.0.1.x86_64
# mariadb105-common-3:10.5.18-1.amzn2023.0.1.x86_64
# perl-Sys-Hostname-1.23-477.amzn2023.0.4.x86_64
#
# Complete!

RDSへ接続します

# mysql -h RDSのホスト -uzabbix -p
# password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@'%' identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@'%';
mysql> quit;

RDSへ初期スキーマとデータをインポートする

RDSを使用する際はデフォルトのパラメータグループではエラーが起きます。

You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)

RDSのパラメータグループでlog_bin_trust_function_creatorsを1に設定しましょう
参考

設定の変更が完了したのでZabbix サーバー ホスト上で、初期スキーマとデータをインポートします。

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -h RDSのホスト -uzabbix -p zabbix

zabbix_server.confを修正します

/etc/zabbix/zabbix_server.conf を編集

vi /etc/zabbix/zabbix_server.conf

以下の項目を変更してください

DBHost=RDSのホスト
DBPassword=password
HANodeName=zbx01
NodeAddress=同VPNならプライベートIPアドレス:10051

Zabbix サーバーとエージェントのプロセスを開始

systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm

画面で初期設定
http://ipアドレス/zabbix

初期ユーザ:Admin
パスワード:zabbix

今回作成したサーバをAMIから複製し以下を変更してrestartすればHA構成でのzabbix6.0の構築は完了です。

vi /etc/zabbix/zabbix_server.conf
HANodeName=zbx01
NodeAddress=同VPNならプライベートIPアドレス:10051

これでzabbix6.0をHA構成で起動することができました。

HA構成になっていることの確認

http://ipアドレス/zabbix でzabbixを開き[レポート]-[システム情報]を開きます。
[HAクラスター]の欄が有効になっていることを確認します。

画像のように[アクティブ]になってる方のサーバを停止します。
zbx02としたサーバにsshし

systemctl stop zabbix-server

でzabbixサーバを停止しました。
zbx02は停止中になりzbx01がアクティブになっています。

最後にzbx02のサーバでzabbixサーバを再起動します。

systemctl restart zabbix-server

zbx02がスタンバイへ変化しています。


この間流入するデータは途切れていません。

※データを取得するサーバのzabbix_agentd.confには

Server=<zbx01のIP>, <zbx02のIP>
ServerActive=<zbx01のIP>, <zbx02のIP>

を記載してください。

これでHA構成の確認ができました。

まとめ

今回はAL2023を使用してZABBIX6.0でH/A構成にする方法をご紹介させていただきました。

AWSを使用したインフラ構築のご依頼はこちら

その他インフラサービスはこちら


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事