Cacti は OSS の監視ツールです。 PHP ベースで動作します。 今回は Amazon Linux2 に Cacti をインストールする手順をメモしておきます。
MariaDB のインストール
Amazon Linux2 標準リポジトリからインストール出来る MariaDB は 5.x 系だったので MariaDB の公式リポジトリから MariaDB をインストールします。 まず、リポジトリの定義を追加します。
cat << EOF > /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
mariadb-server
をインストールします。
yum -y install mariadb-server
Cacti 用に /etc/my.cnf.d/server.cnf
へ以下を追記します。
cat << EOF >> /etc/my.cnf.d/server.cnf
[server]
collation_server=utf8mb4_unicode_ci
character-set-server=utf8mb4
character_set_client=utf8mb4
max_connections=100
max_heap_table_size=16M
tmp_table_size=16M
join_buffer_size=32M
innodb_file_format=Barracuda
innodb_large_prefix=1
innodb_buffer_pool_size=256M
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=10
innodb_io_capacity=5000
EOF
MariaDB を起動します。
systemctl enable mariadb
systemctl start mariadb
mysql_secure_installation
を実行して不要な設定は削除しておきます。
mysql_secure_installation
Cacti 用のデータベースも作成しておきます。
mysql -u root -p
CREATE DATABASE cacti;
GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'cacti';
GRANT SELECT ON mysql.time_zone_name TO cacti@localhost IDENTIFIED BY 'cacti';
FLUSH PRIVILEGES;
ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
QUIT;
PHP のインストール
PHP も Amazon Linux2 の標準リポジトリからインストールすると 5.x 系になってしまう為、Amazon Extras から 7.4 をインストールします。
amazon-linux-extras install -y php7.4
PHP の設定をチューニングしておきます。
sed -i -e "s/^max_execution_time = 30/max_execution_time = 60/g" /etc/php.ini
sed -i -e "s/^memory_limit = 128M/memory_limit = 512M/g" /etc/php.ini
sed -i -e "s/^;date.timezone =/date.timezone = 'Asia\/Tokyo'/g" /etc/php.ini
Cacti のインストール
いよいよ Cacti をインストールします。 EPEL からインストールします。
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install cacti-spine
Cacti をインストールすると cron の定期実行設定が行われます。 /etc/cron.d/cacti
が実態なのですが、デフォルトではコメントアウトされているので、行頭のコメントアウトを削除します。
*/5 * * * * apache /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&
Cacti 用の SQL を実行しておきます。
mysql -u cacti -pcacti cacti < /usr/share/doc/cacti-1.2.12/cacti.sql
MariaDB 上に作成したデータベースにあわせて /usr/share/cacti/include/config.php
ファイルのユーザ名やパスワード情報に該当する下記項目を適宜、書き換えます。
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'cactiuser';
$database_port = '3306';
同じく /etc/spine.conf
ファイルの下記項目を適宜、書き換えます。
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306
#RDB_Host localhost
#RDB_Database cacti
#RDB_User cactiuser
#RDB_Pass cactiuser
#RDB_Port 3306
Cacti のコンテンツは /usr/share/cacti
に存在します。 デフォルトでは所有権が root になっていたので、Apache を動作させるユーザへ修正しておきます。
chown -R apache:apache /usr/share/cacti
Apache の設定
Cacti のインストール時に Apache もインストールされます。 必要に応じて Apache が待ち受けるポート番号を変更しておきます。
sed -i -e "s/^Listen 80/Listen 8080/g" /etc/httpd/conf/httpd.conf
Cacti に関する設定は /etc/httpd/conf.d/cacti.conf
にあるのですが、下記の部分があります。
<Directory /usr/share/cacti/>
<IfModule mod_authz_core.c>
# httpd 2.4
Require host localhost
</IfModule>
<IfModule !mod_authz_core.c>
# httpd 2.2
Order deny,allow
Deny from all
Allow from localhost
</IfModule>
</Directory>
ここへ以下のように追記します (Require all granted
を追記しています)。
<Directory /usr/share/cacti/>
<IfModule mod_authz_core.c>
# httpd 2.4
Require host localhost
Require all granted
</IfModule>
<IfModule !mod_authz_core.c>
# httpd 2.2
Order deny,allow
Deny from all
Allow from localhost
</IfModule>
</Directory>
Apache を起動します。
systemctl enable httpd
systemctl start httpd
これで http://xxx.xxx.xxx.xxx/cacti/
へアクセスすると Cacti のインストールウィザードが表示されました。
コメント