Zabbix5.0をAzure Database for MariaDB を使って構築してみた

 

今回は、Azure環境上に、Zabbix5.0をセットアップしてみました。Cent OS 7.7のAzure VMとAzure Database for MariaDB(10.3)を組み合わせて構築してみました。

今回構築したシステム環境は下記の通りになります。

    • ZabbixサーバはAzure VMを利用 (Market Placeからデプロイしたものを利用)
    • ZabbixサーバのOSはCentOS 7.7を利用
    • DBはAzure Database for MariaDB を利用
    • Zabbixは5.01を利用

1.作業にあたっての事前準備

今回は、以下の事前準備が完了している前提で作業を進めます。

    • Zabbixサーバ用のAzure VM(CentOS 7.7)はすでにデプロイ済み。
    • Azure Database for MariaDBはすべてデプロイ済みである。
    • Azure Database for MariaDBのSSL強制は無効化しておく。
    • SElinuxやFirewalldは簡略化のため、停止している前提で作業を進めます。

※Azure Database for MariaDBへの接続は暗号化せずに実施しています。Zabbix5の設定ファイルのDB接続暗号化を設定してみたのですが下記例のようなエラーとなりました。どうもソースからインストールする必要がありそうです。

“DBTLSConnect” configuration parameter cannot be used: Zabbix server was compiled

[Z3001] connection to database ‘DB名’ failed: [9002] SSL connection is required. Please specify SSL options and retry.

このエラーを解決する為にソースからインストールした記事は以下に乗せています。

Zabbix 5.0をソースからインストールしてみた

 

なお、Azure Database for MariaDBの構築は、以下の記事に纏めておりますので、こちらを参照願います。

Azure Database for MariaDBを作ってみた

Azure Database for MariaDBに接続してみた

.パッケージのインストール作業

まず、最初にパッケージのインストール作業を実施します。今回セットアップが必要なパッケージは下記の通りになります。(httpdが入ってない場合は併せてインストールしてください)

    • PHP7.2 (Zabbix5はPHP7.2以上が要求要件になっています。)
    • Zabbix関連のパッケージ(今回は5.01を利用しています。Zabbix Agentは1を利用しています。)
    • MariaDB関連のパッケージ (DB自体はAzure Database for MariaDBを利用しますので、Clientだけをインストールします。)

※セットアップするユーザーの権限に応じて、SUDOを利用してセットアップを実施して下さい。(バージョンその時の最新の情報を確認して適時修正して下さい)

#PHP関連のパッケージをインストールします。SCLを利用しています。

[user@server ]#yum -y install centos-release-scl
[user@server ]#yum -y install rh-php73  

#Zabbix関連のパッケージをインストールします。 最初にCent OS 7のリポジトリを登録します。

[user@server ]#yum -y install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[user@server ]#yum -y install –enablerepo=zabbix-frontend zabbix-server-mysql zabbix-agent zabbix-web zabbix-web-deps-scl zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-web-japanese  

#MariaDBクライアントをインストールします。最初にリポジトリを登録しています。

[user@server ]#curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash
[user@server ]#vi /etc/yum.repos.d/MariaDB.repo 

#新規にファイルが作成されますので、以下の内容を貼り付けて保存します。

[mariadb]
name = MariaDB-10.3.14
baseurl=http://yum.mariadb.org/10.3.14/centos7-amd64
# alternative: baseurl=http://archive.mariadb.org/mariadb-10.3.14/yum/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

[user@server ]#yum -y install MariaDB-client

これでパッケージのインストール作業は終了です。

.PHPの設定を行う

PHPのTimeZoneをAsia/Tokyoにします。(PATHはセットアップしたバージョンに合わせて適時修正して下さい)

#PHPの設定を行います。

[user@server ]#cp -p/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf.`date “+%Y%m%d”`
[user@server ]#vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

#24行目にタイムゾーンの指定がありますので、コメントを外してAsia/Tokyoとします。

; php_value[date.timezone] = Europe/Riga

php_value[date.timezone] = Asia/Tokyo

 

.Azure Database for MariaDBでZabbixを利用する為の設定を行う

最初にAzure PortalからAzure Database for MariaDBの接続設定を行います。

Azure VMがAzure Database for MariaDBにアクセスするグローバルIPを調べます。

次に、Azure Database for MariaDBの接続のセキュリティで該当のグローバルIPからのアクセスを許可します。ファイアウォールの規則の開始IPと終了IPに上記IPを設定し、名前を付けて保存します。

次に、DBの文字コードの設定を行います。

Azure Database for MariaDBの画面で、サーバパラメータを選択します。

下記画面が表示されます。

以下の通りcharacter_set_serverにUTF8、collation_serverにUTF8_BINを選択します。

設定が終わったら保存します。

4.MariaDBにZabbixを利用する為の設定を行う

Azure Database for MariaDBの設定が終わったら、次にDB自体にZabbixを利用する為の設定を行います。

サーバ名、サーバ管理者名はAzure Database for MariaDBの概要で確認します。

確認した値で、DBサーバに接続し、データベースとDBユーザーを作成します。DBユーザーはZabbixで作成しています。DBユーザーを@Localhostで作成すると外部からアクセスできないので、今回はZabbixをインストールしたサーバが接続に行くIPを設定します。例えばZabbixサーバのグローバルIPが0.0.0.0だとすると、zabbix@0.0.0.0で作成します。DBユーザーのパスワードは適時設定して下さい。

#DBログイン時にAzure Database for MariaDBサーバ管理者のパスワードが必要になりますので適時入力してください。

[user@server ]#mysql -h サーバ名 -u サーバ管理者名 -p –ssl

MySQL [(none)]>create database zabbix character set utf8 collate utf8_bin;

MySQL [(none)]> all privileges on zabbix.* to zabbix@アクセス元のIP identified by ‘パスワード’;

 

次に、Zabbixの初期設定を行うSQLを流します。(PATHはセットアップしたバージョンに合わせて適時修正して下さい)

[user@server ]#cd /usr/share/doc/zabbix-server-mysql-5.0.1/

#コマンド実行時に先ほど設定したZabbixユーザ’(DB上)のパスワードが必要になりますので適時入力してください。

[user@server ]#zcat ./create.sql.gz |mysql -h サーバ名 -u -u zabbix zabbix -p –ssl

 

 

5.zabbix_server.confを設定する

zabbix_server.confにDB接続のための設定します。設定が完了したら保存します。

#設定ファイルのバックアップを取得してから設定します。

[user@server ]#cp -p /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.`date “+%Y%m%d”`
[user@server ]# vi /etc/zabbix/zabbix_server.conf

#設定箇所は、DBHost、DBUser、DBPassword3か所です。

DBHost=サーバ名(XXX.mariadb.database.azure.com)

DBUser=ユーザ名(zabbix@XXX)

DBPassword=パスワード(DB上に作成したZabbixユーザのパスワード)

6.サービスを起動する

zabbix Serverに関するサービスの起動設定を行います。

#Zabbixサーバに関するサービスを起動します。

[user@server ]# systemctl start zabbix-agent zabbix-server rh-php72-php-fpm httpd
[user@server ]# systemctl enable zabbix-agent zabbix-server rh-php72-php-fpm httpd

7.Zabbixにアクセスして設定をする

zabbix Serverにアクセスした設定を行います。初期設定では下記の通りになっています。

    • アクセス先URL : http://ZabbixサーバのIP/zabbix/

URLにアクセスすると下記画面が表示されます。

Next Stepをクリックすると、プレチェックの画面が表示されます。すべてOKであればNext Stepをクリックします。

Next Stepをクリックすると、DBコネクション設定が表示されます。以下の値を入力します。

    • Database host : サーバ名(XXX.mariadb.database.azure.com
    • User : ユーザ名(zabbix@XXX)
    • パスワード : パスワード(DB上に作成したZabbixユーザのパスワード)

Zabbix server details、Pre-instlation Summary画面はそのまま変更せずに、Next Stepをクリックします。そうするとインストールが始まり、完了するとログイン画面が表示されます。

ログイン画面が表示されたら、初期ユーザーでログインして下さい。

    • ユーザーID ; Admin
    • パスワード : zabbix

ログインが成功すると下記画面が表示されます。Zabbix server is runningが”Yes”となっていれば正常起動しています。(画面が表示されていてもここのがNoの場合は正常動作していません。)

 

今回は、初期セットアップのみを試してみております。初期パスワードの変更や日本語設定等をこの後行っていく必要があります。今後設定を色々試してみたい所です。