Cacti インストール

しばらくチェックしていなかったら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 に変更して、画面一番右下の「保存」をクリック。

 

とりあえず、インストールはここまで。