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を利用
作業にあたっての事前準備
今回は、以下の事前準備が完了している前提で作業を進めます。
-
- Zabbixサーバ用のAzure VM(CentOS 7.7)はすでにデプロイ済み。
- Azure Database for MariaDBはすべてデプロイ済みである。
- Azure Database for MariaDBのSSL強制は無効化しておく。
- SElinuxやFirewalld停止している前提で作業を進めます。
※セキュリティ的にお勧めする設定ではございません。今回はZabbix設定がメインなので簡略化しています。
※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.
このエラーを解決する為にソースからインストールした記事はこちら。
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 #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 #MariaDBクライアントをインストールします。最初にリポジトリを登録しています。 [user@server ]#curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash #新規にファイルが作成されますので、以下の内容を貼り付けて保存します。 [mariadb] [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"` #24行目にタイムゾーンの指定がありますので、コメントを外してAsia/Tokyoとします。 ; php_value[date.timezone] = Europe/Riga |
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を選択します。
設定が終わったら保存します。
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
|
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"` #設定箇所は、DBHost、DBUser、DBPassword3か所です。 DBHost=サーバ名(XXX.mariadb.database.azure.com) DBUser=ユーザ名(zabbix@XXX) DBPassword=パスワード(DB上に作成したZabbixユーザのパスワード) |
サービスを起動する
zabbix Serverに関するサービスの起動設定を行います。
#Zabbixサーバに関するサービスを起動します。 [user@server ]# systemctl start zabbix-agent zabbix-server rh-php72-php-fpm httpd |
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の場合は正常動作していません。)
今回は、初期セットアップのみを試してみております。初期パスワードの変更や日本語設定等をこの後行っていく必要があります。今後設定を色々試してみたい所です。
なお、メール送信は下記の方で試してみております。