Azure Database for MariaDBを使ってCactiを構築してみた

 

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

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

    • CactiサーバはAzure VMを利用 (Market Placeからデプロイしたものを利用)
    • CactiサーバのOSはCentOS 7.7を利用
    • DBはAzure Database for MariaDB を利用
    • パッケージはRPMを使ってセットアップする

実際にやってみるとわかるのですが、Cactiセットアップ時の事前チェック(MySQLのパフォーマンス部分)で引っ掛かります。今回は勉強の為そのまま作成しています。実環境で使用するには注意して下さい。

なお構築にあたっては下記サイトを参考に進めております。

https://qiita.com/bashaway/items/47d8eb868f31ab3c20e1

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

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

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

※Azure Database for MariaDBへの接続は暗号化せずに実施しています。Cactiの設定ファイルのDB接続暗号化を設定してみたのですがDB接続でエラーとなりました。現時点では原因不明です。。。(何か情報があれば教えて頂きたい感じです。)

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

Azure Database for MariaDBを作ってみた

Azure Database for MariaDBに接続してみた

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

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

    • MariaDB関連のパッケージ (DB自体はAzure Database for MariaDBを利用しますので、Clientだけをインストールします。)
    • Cacti関連のパッケージ
    • その他のパッケージ

まず最初にMariaDBのパッケージをインストールします。

#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 mariadb-devel

次にCactiのパッケージをインストールします。

#cactiをインストールします。epelを利用しています。

[user@server ]#yum -y install epel-release
[user@server ]#yum -y install cacti  

最後にその他に必要となるパッケージをインストールします。

#cactiをセットアップする際に必要となるパッケージをインストールします。

[user@server ]#yum -y install php cacti-spine ipa-*-fonts  

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

.PHPの設定を行う

PHPの環境設定を行います。

#PHPの設定を行います

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

#以下の内容を変更しています。

max_execution_time = 60
memory_limit = 800M
date.timezone = ‘Asia/Tokyo’

4.apacheの設定を行う

Cactiを利用する為に、apacheの環境設定を行います。

#httpdの日本語設定を行います

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

#以下の通り変更します。(オレンジ部分が修正部分になります。)

#LANG=C
HTTPD_LANG=ja_JP.UTF-8

#Cron関連の設定を行います

[user@server ]#vi /etc/cron.d/cacti

#以下の行のコメントアウトを削除しています。

#*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
 
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

#confの設定を行います

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

#17行目をコメントアウトし、オレンジの部分(18行目)を追加します。

14 <Directory /usr/share/cacti/>
15  <IfModule mod_authz_core.c>
16   # httpd 2.4
17   #Require host localhost
18   Require all granted
19  </IfModule>

 

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

事前にCactiをセットアップしているVMからAzure Database for MariaDBへ接続可能なように設定を行っておきます。これは以前のMariaDB接続の記事を参考にして下さい。

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

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

サーバパラメータ設定を下記の通り実施します。

    • collation_server:utf8mb4_unicode_ci
    • character_set_client:utf8mb4
    • max_connections:最大(100以上がCacti推奨)
    • max_heap_table_size:最大(30MB以上がCacti推奨)
    • join_buffer_size:最大(60MB以上がCacti推奨)
    • innodb_io_capacity:最大(5000以上がCacti推奨)
    • innodb_io_capacity_max(10000以上がCacti推奨)
    • innodb_read_io_threads:32
    • innodb_write_io_threads:16
    • log_bin_trust_function_creators:ON

上記記載の通り、Cactiの推奨設定にできない内容があります。設定できるものは最大とし、tmp_table_size、innodb_file_per_table、innodb_doublewrite、innodb_buffer_pool_instancesについては設定できない為そのまま進めます。

また、log_bin_trust_function_creators をONにする必要があります。これをONにしないとCactiセットアップ用のSQL実行時にエラーになります。

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

6.Azure Database for MariaDBにCactiを利用する為の設定を行う

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

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

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

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

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

MySQL [(none)]>create database cacti ;

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

MySQL [(none)]> garnt select on mysql.time_zone_name to cacti@アクセス元のIP identified by ‘パスワード’;

MySQL [(none)]> quit

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

#Cactiの初期設定用SQLを実行する。

[user@server ]#mysql -h サーバ名 -u cacti cacti -p –ssl </usr/share/doc/cacti-1.2.12/cacti.sql

7.CactiのConfを設定する

config.php、spine.confにDB接続のための設定します。

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

[user@server ]#cp -p /usr/share/cacti/include/config.php /usr/share/cacti/include/config.php.`date “+%Y%m%d”`
[user@server ]# vi /usr/share/cacti/include/config.php

#設定箇所は、下記の3か所です。

$database_hostname = サーバ名(XXX.mariadb.database.azure.com)
$database_username = ユーザ名(cacti@XXX)
$database_password = パスワード(DB上に作成したCactiユーザのパスワード)

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

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

#設定箇所は、下記の3か所です。

DB_Host = サーバ名(XXX.mariadb.database.azure.com)
DB_User = ユーザ名(cacti@XXX)
DB_Pass = パスワード(DB上に作成したCactiユーザのパスワード)

8.cactiを起動する

Cacti(httpd)に関するサービスの起動設定を行います。

#cactiはhttpd上で動作する為、httpdサービスを起動設定をします。

[user@server ]# systemctl start httpd
[user@server ]# systemctl enable httpd

9.Cactiにアクセスして設定をする

Cactiにアクセスし利用開始設定を行います。初期設定では下記の通りになっています。

    • アクセス先URL : http://CactiサーバのIP/cacti/
    • ユーザー名、パスワード:admin

URLにアクセスすると下記画面が表示されます。ユーザー名、パスワードを入力しログインします。

確認し問題が無ければ、Accept GPLのチェックボックスにチェックを入れて開始をクリックします。

Cactiインストールの事前チェックが行われます。MySQL Settingの部分がNGになります。

これは、Azure Database for MariaDBで設定できない部分がある為です。今回は勉強の為に作成していますので、無視して次にをクリックします。

ここから先はそのまま次にをクリックして前に進めます。(実際の利用開始時に設定を見直します。)

Template Setupはすべてチェックを入れて次にをクリックします。

そのまま次にで進めていくと、確認画面が表示され、インストールが開始されます。

完了すると、下記画面が表示されます。これでCactiのセットアップは完了です。

※今回は勉強の為実施しております。実際の利用にあたってはパフォーマンス面や各種設定をご確認の上、利用可否を検討願います。