前回は各種ミドルウェアをインストールして終わったので、今回は起動とcactiの設定をしていこうと思います。
前回の記事は下記になります。
https://qiita.com/imaii/items/81c837431c9d07d6af43
mysqlの起動、初期化
テストなのでrootはパスなしで初期設定します。
cacti用のユーザを作成しましょう。
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /opt/mysql-data
/opt/cacti/local/mysql/bin/mysqld --user=mysql --log-error-verbosity=3 --initialize-insecure
/opt/cacti/local/mysql/bin/mysqld_safe &
/opt/cacti/local/mysql/bin/mysql -uroot
#cacti用のユーザとDBを作成しましょう。
mysql> create user 'cacti'@'localhost' identified by 'cacti';
mysql> create database cacti;
mysql> quit
#初期のデータを投入しましょう。
/opt/cacti/local/mysql/bin/mysql -uroot < /opt/cacti/app/cacti/cacti.sql cacti
/opt/cacti/local/mysql/bin/mysql -uroot
mysql> GRANT ALL ON cacti.* TO 'cacti'@'localhost';
#パスワード認証方法を確認し、nativeに変更する
mysql> SELECT user, host, plugin FROM mysql.user;
mysql> ALTER USER 'cacti'@'localhost' IDENTIFIED WITH mysql_native_password;
#timezoneの確認をし、変更(SYSTEMだとエラーになる)する
mysql> show variables like '%time_zone%';
mysql> quit
chmod 755 /opt/mysql-data/
/opt/cacti/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql
/etc/my.cnf
に初期値を記載しておきましょう。
[mysqld]
default-time-zone='Asia/Tokyo'
mysqlを再起動して、timezoneが変わっていることを確認する。
/opt/cacti/local/mysql/bin/mysqladmin shutdown
/opt/cacti/local/mysql/bin/mysqld_safe &
#合わせて、cactiのユーザでmysqlにログインし、cactiのテーブルが見えれるか確認をする
/opt/cacti/local/mysql/bin/mysql -u cacti
下記が出る場合は、
You must reset your password using ALTER USER statement before executing this statement
もう1回これ流しましょう。
mysql> alter user 'cacti'@'localhost' identified by 'cacti';
mysql> GRANT ALL ON cacti.* TO 'cacti'@'localhost';
その後、下記コマンドで確認しましょう。
mysql> show databases;
mysql> use cacti;
mysql> show tables;
ここら辺まででmysqlの起動確認終わりになります。
apache,phpの起動と設定
次に、apacheとphpの設定ファイルを修正しましょう。
主に下記です。
- httpd.conf
- (追加する場合は、)cacti用のconf
- php-fpm.conf
- php.ini
-
/opt/cacti/app/cacti/include/config.php
(ここに接続情報が書いてある)
今回は、httpd.confをあまりいじらず、新規でcacti用のconfを作成する。
LoadModuleで下記2点有効になっていることと、httpd.confの最終行にInclude
を追加しましょう。
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_module
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include conf/cacti.conf
追加するcacti.confの中身です。
割と適当です。テストなので、all granted
にしてます。設定したいオプションがあれば書きましょう。
大事なのは、FilesMatch
ディレクティブです。php-fpm.confに書くので。
<VirtualHost *:80>
ServerAdmin 好きなの入れてね!!
ServerName サーバ名にしてね!!
DocumentRoot /opt/cacti/app
LogLevel debug
ErrorLog "|/opt/cacti/local/bin/rotatelogs /opt/cacti/app/cacti/log/httpd-cacti.error_log_%Y%m%d 86400 540"
CustomLog "|/opt/cacti/local/bin/rotatelogs /opt/cacti/app/cacti/log/httpd-cacti.access_log_%Y%m%d 86400 540" combined
AddHandler cgi-script .cgi .pl
<Directory "/opt/cacti/app">
Require all granted
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php-fpm-product.sock|fcgi://localhost"
</FilesMatch>
DirectoryIndex index.php
Options -Indexes
AllowOverride all
AddType application/x-httpd-php .php
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler cgi-script .cgi
AddType application/x-httpd-php .php
</IfModule>
</VirtualHost>
apacheと繋げるようのPHPの設定ファイルをいじりましょう。
上でメモったlisten
とソケットの値があっていれば大丈夫です。
それ以外は適当です。
[global]
error_log = /var/log/php-fpm.log
log_level = notice
[product]
user = cacti
group = cacti
listen = /var/run/php-fpm-$pool.sock
listen.owner = cacti
listen.group = cacti
listen.mode = 0666
pm = static
pm.max_children = 10
access.log = /opt/cacti/app/cacti/log/php-fpm.access.log
fpm.access.log_%Y%m%d 86400 540"
slowlog = /opt/cacti/app/cacti/log/php-fpm.slowlog.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
php_admin_value[error_log] = /opt/cacti/app/cacti/log/php-fpm.errors.log
cacti内のinclude/config.php
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = '127.0.0.1';
$database_username = 'cacti';
$database_password = 'cacti';
$database_port = '3306';
$database_retries = 5;
$database_ssl = false;
$database_ssl_key = '';
$database_ssl_cert = '';
$database_ssl_ca = '';
$database_persist = false;
sudo apachectl start
sudo php-fpm start
ここまで来れば、http://<サーバのIP or apacheで設定したホスト名>/cacti
でログイン画面が出てくる。
ブラウザの操作
ただ、これで終わりじゃありません!
ここから初期のインストールウィザードが走りますので、画面に従いましょう。
初期パスはadmin:admin
なのでログインしてからパスワードを変更しましょう。
同意して言語を決めると、インストールチェックが入ります。
各ミドルウェアの設定少なくね?と思ったあなた。正解です。ここでチェックされたものに関しては、各種ファイルを修正しましょう。見てもらいたかったので、少なくしてます。
例えば、PHPであればphp.iniです。PHPのモジュールが必要だったら再ビルド・・・はめんどくさいのでそれはしないようにビルドはしてます。
PHPで指示があった値に書き換えましょう。
書き換えたら、php-fpm restart
で再起動しましょう。
memory_limit = 1024MB
max_execution_time = 60
MySQLで指示があった値に書き換えましょう。その1
mysql -uroot
mysql> GRANT SELECT ON `mysql`.`time_zone_name` TO `cacti`@`localhost`;
MySQLで指示があった値に書き換えましょう。その2
雑に/etc/my.cnf
を書き換えましょう。書き換えたら、mysqladmin shutdown -> mysqld_safe &
で起動させましょう。
[mysqld]
default-time-zone='Asia/Tokyo'
collation_server=utf8mb4_unicode_ci
character_set_server=utf8mb4
max_heap_table_size=500MB
tmp_table_size=500MB
innodb_buffer_pool_size=8GB
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
innodb_buffer_pool_instances=8
innodb_io_capacity=5000
innodb_io_capacity_max=10000
#character_set_client=utf8mb4は書かなくて大丈夫です。書くと起動しません。
ここら辺を修正して、ブラウザをリロードすると先へ進めると思います。
番外編
これの直し方がわからなかった・・・gdはenableにしてるのに・・・
ただオプションなので、今回はスルーさせてもらいました。
続き。
あとは画像をペタペタします。
初めての場合は、New Primary Server
を選択して、Next
spineだけ空っぽだったのでパス入れときましょう。(後で変更可)
pollerの注意点が書いてあります。確認したらチェック入れて、Next
pollerの設定など。ScanModeは自分は手動でやる予定だったので、OFFにしました。
あとは、Create -> NewDevice
でデバイスを登録したりして、cactiを使い始めれます!
良きcacti生活を!
次ぐらいに、こういう使い方も出来ますよー的なのを書いてみようかな。と思います。