しばらくチェックしていなかったらCactiがいつの間にか1.1.16になっていた。
とりあえず最新をインストール。うまくいったら古いのはおさらば。
環境は以下の通り
・CentOS 7.3
・Apache 2.4.6
・PHP 5.6
・MariaDB 10.1.26
・NET-SNMP 5.7.2
・Postfix 2.10.1
CentOS を Minimal でインストールし、各種リポジトリのインストールと設定、ベース部分のOS設定までは完了しているところからスタートします。
ちなみに、リポジトリが個別に入っているのが、Rsyslogが8、MySQLが5.7、MariaDBが10.1を選択。
1.MariaDBをインストール
※mysql-community-commonは競合するので、先に抜いておく
yum -y remove mysql-community-common yum -y install MariaDB-server MariaDB-client MariaDB-common MariaDB-devel MariaDB-shared MariaDB-compat MariaDB-connect-engine
MariaDBの設定
vi /etc/my.cnf.d/server.cnf
とりあえずスモールサーバ構成で設定する
[mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock character-set-server = utf8 default_storage_engine = InnoDB skip-external-locking expire_logs_days = 8 general-log = 0 general-log-file = /backup/mariadb/mariadb log-error = /backup/mariadb/error.log slow_query_log=1 slow_query_log_file = /backup/mariadb/slow-queries.log binlog_format = row log-bin = /backup/mariadb/mariadb-bin max_connections = 50 max_allowed_packet = 5M table_open_cache = 4 sort_buffer_size = 2M read_buffer_size = 256K read_rnd_buffer_size = 1M net_buffer_length = 2K thread_stack = 240K innodb_buffer_pool_size = 32M innodb_log_buffer_size = 10M
バックアップ、バイナリログの保存用ディレクトリを作る
mkdir -p /backup/mariadb chown mysql.mysql /backup/mariadb/
データベース起動
systemctl stop mariadb systemctl start mariadb systemctl enable mariadb
MariaDBの初期設定を実行
mysql_secure_installation
2.Postfixをインストール
yum -y install postfix
このサーバ内での送信にしか使用しないので、送信専用の設定
vi /etc/postfix/main.cf
myhostname = XXXXXX.XXXXXX.frontside.jp mydomain = XXXXXX.frontside.jp myorigin = $mydomain inet_interfaces = localhost inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain mynetworks_style = 127.0.0.0/8 mynetworks = localhost smtpd_banner = $myhostname ESMTP unknown
※ホスト名、ドメイン名の X はダミーです
Postfix起動
systemctl start postfix systemctl enable postfix
3.Net-SNMPをインストール
yum -y install net-snmp net-snmp-devel net-snmp-utils
Net-SNMPの設定
vi /etc/snmp/snmpd.conf
※設定内容は、説明がめんどくさいので省略します
MIBをアップロードするディレクトリを作る
mkdir /usr/share/snmp/vendormibs
ディレクトリの設定
vi /etc/snmp/snmp.conf
MIBDIRS /usr/share/snmp/mibs:/usr/share/snmp/vendormibs MIBS all
Net-SNMPを起動
systemctl start snmpd systemctl enable snmpd
4.ODBC関連をインストール
yum -y install mysql-connector-odbc unixODBC-devel libtool-ltdl-devel
5.Apacheをインストール
yum -y install httpd
設定はとりあえずデフォルトのまま。チューニングはおいおい行います。
テストページとデフォルトエラーページは削除しておきます。
rm -f /etc/httpd/conf.d/welcome.conf rm -f /var/www/error/noindex.html
Apacheを起動
systemctl start httpd systemctl enable httpd
6.PHPをインストール
yum -y install php php-mbstring php-pear yum -y --enablerepo=epel install libmcrypt yum -y install php-mysqlnd php-mcrypt
タイムゾーンの設定
vi /etc/php.ini
date.timezone = "Asia/Tokyo"
Apacheを再起動
systemctl restart httpd
7.phpMyAdminをインストール
cd /var/www/html wget https://files.phpmyadmin.net/phpMyAdmin/4.7.3/phpMyAdmin-4.7.3-all-languages.zip unzip phpMyAdmin-*-all-languages.zip rm -f phpMyAdmin-*-all-languages.zip mv phpMyAdmin-*-all-languages phpMyAdmin
phpMyAdminの設定
cp /var/www/html/phpMyAdmin/config.sample.inc.php /var/www/html/phpMyAdmin/config.inc.php chmod 660 /var/www/html/phpMyAdmin/config.inc.php vi /var/www/html/phpMyAdmin/config.inc.php
※設定するのはセキュリティコード32桁とデータベース接続部分だけなので省略
最低限のセキュリティ設定
chown -R root.apache /var/www/html/phpMyAdmin vi /etc/httpd/conf.d/phpmyadmin.conf
<Directory /var/www/html/phpMyAdmin> Order deny,allow Deny from all Allow from 127.0.0.1 Allow from 192.168.XXX.0/24 </Directory>
※Allowの192.168.XXX.0を自分のネットワークに変更
Apacheを再起動
systemctl restart httpd
7.Cactiをインストール
yum -y install rrdtool php-snmp php-gd php-intl php-ldap php-process php-xml php-gmp yum -y install --enablerepo=epel php-imap yum -y install --enablerepo=epel-testing cacti
Cacti用データベースを設定
mysql -u root -p create database cacti; grant all privileges on cacti.* to cacti@'localhost' identified by 'パスワード'; flush privileges; exit mysql -ucacti -p cacti < /usr/share/doc/cacti-*/cacti.sql
MySQL TimeZone databaseを設定
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql mysql -u root -p mysql grant select on mysql.time_zone_name to 'cacti'@'localhost' identified by 'パスワード'; exit
Cactiの設定
vi /etc/cron.d/cacti
※コメントアウトを外すだけ
vi /usr/share/cacti/include/config.php
※データベースへの接続設定だけ
vi /etc/httpd/conf.d/cacti.conf
<Directory /usr/share/cacti/> <IfModule mod_authz_core.c> # httpd 2.4 Require host localhost Require ip 192.168.XXX.0/24 </IfModule> <IfModule !mod_authz_core.c> # httpd 2.2 Order deny,allow Deny from all Allow from localhost </IfModule> </Directory>
※18行目ぐらいに Require ip 192.168.XXX.0 を追加して、自分のネットワークから接続できるようにする
ログディレクトリの権限変更
mkdir /var/log/cacti/ touch /var/log/cacti/cacti.log chmod -R 777 /var/log/cacti/
Apacheを再起動
systemctl restart httpd
ここまで来たら、ブラウザからアクセスすると、初期設定の画面になる。
いろいろチューニングしろと言ってくるので、それに合わせてチューニングして完了!!
Cactiの画面にアクセスできて、ちゃんと動いたら spine をインストール
8.Spineをインストール
yum -y install gcc gcc-c++ make help2man help2man-devel openssl-devel cd /usr/src wget http://www.cacti.net/downloads/spine/cacti-spine-1.1.19.tar.gz tar zxvf cacti-spine-*.tar.gz cd cacti-spine-* ./configure make make install chown root:root /usr/local/spine/bin/spine chmod +s /usr/local/spine/bin/spine
Spineの設定
mv /usr/local/spine/etc/spine.conf.dist /usr/local/spine/etc/spine.conf vi /usr/local/spine/etc/spine.conf
※データベース接続設定のみ
設定が完了したらブラウザでCactiにアクセスして、Configurationにある「設定」を開いて、Pollerタブの上から2つ目にある Poller Type を spine に変更して、画面一番右下の「保存」をクリック。
とりあえず、インストールはここまで。