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のパフォーマンス部分)で引っ掛かります。今回は勉強の為そのまま作成しています。実環境で使用するには注意して下さい。
なお構築にあたっては下記サイトを参考にさせて頂きました。
CentOS7にcacti1.2.8をインストールする+グラフを日本語化する(qitta)
作業にあたっての事前準備
今回は、以下の事前準備が完了している前提で作業を進めます。
-
- 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の構築は、以下の記事に纏めておりますので、こちらを参照願います。
Cactiで必要となるパッケージインストール作業
最初にパッケージのインストール作業を実施します。今回セットアップが必要なパッケージは下記の通りになります。(httpdが入ってない場合は併せてインストールしてください)
-
- MariaDB関連のパッケージ (DB自体はAzure Database for MariaDBを利用しますので、Clientだけをインストールします。)
- Cacti関連のパッケージ
- その他のパッケージ
MariaDBのパッケージをインストール
#MariaDBクライアントをインストールします。最初にリポジトリを登録しています。 [user@server ]#curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash #新規にファイルが作成されますので、以下の内容を貼り付けて保存します。 [mariadb] [user@server ]#yum -y install MariaDB-client mariadb-devel |
Cactiのパッケージをインストール
#cactiをインストールします。epelを利用しています。 [user@server ]#yum -y install epel-release |
その他に必要となるパッケージをインストール
#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"` #以下の内容を変更しています。 max_execution_time = 60 |
apacheの設定を行う
Cactiを利用する為に、apacheの環境設定を行います。
#httpdの日本語設定を行います [user@server ]#cp -p /etc/sysconfig/httpd /etc/sysconfig/httpd.`date “+%Y%m%d"` #以下の通り変更します。(オレンジ部分が修正部分になります。) #LANG=C #Cron関連の設定を行います [user@server ]#vi /etc/cron.d/cacti #以下の行のコメントアウトを削除しています。 #*/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"` #17行目をコメントアウトし、オレンジの部分(18行目)を追加します。 14 <Directory /usr/share/cacti/> |
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実行時にエラーになります。
設定が終わったら保存します。
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 |
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"` #設定箇所は、下記の3か所です。 $database_hostname = サーバ名(XXX.mariadb.database.azure.com) #設定ファイルのバックアップを取得してから設定します。 [user@server ]#cp -p /etc/spine.conf /etc/spine.conf.`date “+%Y%m%d"` #設定箇所は、下記の3か所です。 DB_Host = サーバ名(XXX.mariadb.database.azure.com) |
cactiを起動する
Cacti(httpd)に関するサービスの起動設定を行います。
#cactiはhttpd上で動作する為、httpdサービスを起動設定をします。 [user@server ]# systemctl start httpd |
Cactiにアクセスして設定をする
Cactiにアクセスし利用開始設定を行います。初期設定では下記の通りになっています。
-
- アクセス先URL : http://CactiサーバのIP/cacti/
- ユーザー名、パスワード:admin
URLにアクセスすると下記画面が表示されます。ユーザー名、パスワードを入力しログインします。
確認し問題が無ければ、Accept GPLのチェックボックスにチェックを入れて開始をクリックします。
Cactiインストールの事前チェックが行われます。MySQL Settingの部分がNGになります。
これは、Azure Database for MariaDBで設定できない部分がある為です。今回は勉強の為に作成していますので、無視して次にをクリックします。
ここから先はそのまま次にをクリックして前に進めます。(実際の利用開始時に設定を見直します。)
Template Setupはすべてチェックを入れて次にをクリックします。
そのまま次にで進めていくと、確認画面が表示され、インストールが開始されます。
完了すると、下記画面が表示されます。これでCactiのセットアップは完了です。
※今回は勉強の為実施しております。実際の利用にあたってはパフォーマンス面や各種設定をご確認の上、利用可否を検討願います。