ceresでは監視アプリケーションとして、下記2種類を導入している。
- cacti
- prometheus+grafana
cactiを公式だとyumで入れているんですが、せっかくだしソースインストールしてみよう!と思って、ふとやってみた。
結論、yumで入れた方が楽だとは思います。ミドルウェアのバージョン好きなの使いたい!とかあれば本記事は役に立つかもしれません。
今回構築した構成は下記になります。
- CentOS Rocky 8.7
- Apache 2.4.55
- PHP 8.2.1
- MySQL 8.0.17
(ApacheとPHPはソケットでやり取りしてます。)
便宜上、全てrootで動かしております。
また、makeはサーバスペックに応じて-j
つけてください。
あとこの記事、インストールとかしてるので、やけに長いです。出来る人は飛ばしながら見て頂けると。
ディレクトリの構造
下記になります。/opt
配下に色々作ります。
/opt/
├── cacti
│ ├── app ・・・アプリケーション置き場
│ └── local
│ ├── src ・・・各種ミドルウェアをダウンロードする場所。
│ └── bin ・・・各種ミドルウェアの実行ファイルを置く。(パスは通す)
└── mysql-data ・・・mysql置き場
準備
PATHの追加
export CACTI_HOME="/opt/cacti/"
export PATH="${CACTI_HOME}local/bin/:${PATH}"
必要ディレクトリの作成
mkdir /opt/cacti
mkdir /opt/cacti/app
mkdir /opt/cacti/app/cacti
mkdir /opt/cacti/local
mkdir /opt/cacti/local/bin
mkdir /opt/cacti/local/src
mkdir /opt/mysql-data
ここら辺をdnfでインストールしています。
gcc gcc-c++ cpp libtool patch patchutils bzip2 zip unzip rsync wget chrony pciutils make autoconf automake libxslt openssl-devel zlib-devel curl-devel bind-utils epel-release tar logwatch ncurses ncurses-devel ncurses-term libevent libevent-devel libevent-doc tmux
expat-devel net-snmp oniguruma gmp-devel openldap-devel libxml2-devel sqlite-devel libpng-devel libjpeg-devel gmp-devel libicu-devel net-snmp-devel openldap-clients cmake rrdtool net-snmp-utils freetype freetype-devel
dnf --enablerepo=powertools install -y oniguruma-devel
Apacheのインストール
pcreのインストールとリンク貼りを実施します。
cd /opt/cacti/local/src
wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz
tar -xzvf pcre-8.45.tar.gz
cd pcre-8.45/
./configure --prefix=/opt/cacti/local/pcre-8.45
make
make install
cd /opt/cacti/local
ln -s pcre-8.45/ pcre
cd bin/
ln -s ../pcre/bin/* .
apache本体のインストールとリンク貼りを実施します。
cd /opt/cacti/local/src
wget https://dlcdn.apache.org/httpd/httpd-2.4.55.tar.gz
wget https://archive.apache.org/dist/apr/apr-1.7.0.tar.gz
wget https://archive.apache.org/dist/apr/apr-util-1.6.1.tar.gz
tar -xzvf apr-1.7.0.tar.gz
tar -xzvf apr-util-1.6.1.tar.gz
tar -xzvf httpd-2.4.55.tar.gz
mv apr-1.7.0 httpd-2.4.55/srclib/apr
mv apr-util-1.6.1 httpd-2.4.55/srclib/apr-util
cd httpd-2.4.55
"./configure" \
"--prefix=/opt/cacti/local/httpd-2.4.55" \
"--enable-cache" \
"--enable-mem-cache" \
"--enable-so" \
"--enable-ssl" \
"--enable-mods-shared=most" \
"--with-included-apr" \
"--with-pcre=/opt/cacti/local/pcre/bin/pcre-config" \
"--with-mpm=worker" \
"$@"
make
make install
cd /opt/cacti/local
ln -s httpd-2.4.55/ httpd
cd bin/
ln -s ../httpd/bin/* .
起動は最後にconfを編集するので、一旦起動はしない形で。
PHPのインストール
PHPのインストールとリンク貼りを実施します。今回はphp-fpmを使ってソケットの通信を行う予定。
インストールオプションは他にONにしたいものを付けて頂ければと思います。
cd /opt/cacti/local/src
wget https://www.php.net/distributions/php-8.2.1.tar.gz
tar -xzvf php-8.2.1.tar.gz
cd php-8.2.1
#configureを通す前に、おまじない。
ln -s /usr/lib64/libldap* /usr/lib/.
export LDFLAGS=-llber
'./configure' \
'--prefix=/opt/cacti/local/php-8.2.1' \
'--enable-mysqlnd' \
'--with-mysqli=mysqlnd' \
'--with-pdo-mysql=mysqlnd' \
'--enable-fpm' \
'--enable-mbstring' \
'--enable-mbregex' \
'--enable-sockets' \
'--enable-bcmath' \
'--enable-intl' \
'--enable-gd' \
'--enable-pcntl' \
'--with-gettext' \
'--with-pear' \
'--with-openssl' \
'--with-jpeg' \
'--with-zlib' \
'--with-ldap' \
'--with-ldap-sasl' \
'--with-gmp' \
'--with-snmp' \
"$@"
make
make install
#実行ファイル取ってくる
cp /opt/cacti/local/src/php-8.2.1/sapi/fpm/init.d.php-fpm /opt/cacti/local/php-8.2.1/bin/php-fpm
chmod +x /opt/cacti/local/php-8.2.1/bin/php-fpm
cd /opt/cacti/local
ln -s php-8.2.1/ php
cd bin
ln -s ../php/bin/* .
#confとiniを取ってきましょう
cp /opt/cacti/local/php/etc/php-fpm.conf.default /opt/cacti/local/php/etc/php-fpm.conf
cp /opt/cacti/local/src/php-8.2.1/php.ini-production /opt/cacti/local/php/lib/php.ini
confとiniの修正は最後にやりますので、一旦次に行きます。
MySQLのインストール
/etc/yum.repos.d/Rocky-PowerTools.repo
のEnabledが0になっていると思うので、1にしてください。
必要なものをインストールします。
dnf install rpcgen libtirpc-devel
MySQL本体をインストールします。
cd /opt/cacti/local/src/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-8.0.17.tar.gz
tar -xzvf mysql-boost-8.0.17.tar.gz
wget https://boostorg.jfrog.io/artifactory/main/release/1.69.0/source/boost_1_69_0.tar.gz
tar -xzvf boost_1_69_0.tar.gz
cd mysql-8.0.17
mkdir bld
cd bld
cmake .. \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DCMAKE_INSTALL_PREFIX=/opt/cacti/local/mysql-8.0.17 \
-DMYSQL_UNIX_ADDR=/opt/mysql-data/mysql.sock \
-DWITH_BOOST=/opt/cacti/local/src/boost_1_69_0 \
-DMYSQL_DATADIR=/opt/mysql-data
make
install
cd /opt/cacti/local/
ln -s mysql-8.0.17/ mysql
cd bin
ln -s ../mysql/bin/* .
cactiの本体のダウンロードと配置
cd /opt/cacti/local/src/
wget https://files.cacti.net/cacti/linux/cacti-1.2.23.tar.gz
tar -xzvf cacti-1.2.23.tar.gz
mv cacti-1.2.23/* /opt/cacti/app/cacti/.
useradd -s /sbin/nologin cacti
chown -R cacti:cacti /opt/cacti/app
spineの設定
ポーリングするためのツールです。
そのインストールを実施します。
dnf install help2man
cd /opt/cacti/local/src/
wget https://files.cacti.net/spine/cacti-spine-1.2.23.tar.gz
tar -xzvf cacti-spine-1.2.23.tar.gz
cd cacti-spine-1.2.23/
./bootstrap
ldconfig /opt/cacti/local/mysql/lib
./configure --with-mysql=/opt/cacti/local/mysql --prefix=/opt/cacti/local/spine-1.2.23
make
make install
chown root:root /opt/cacti/local/spine-1.2.23/bin/spine
chmod +x /opt/cacti/local/spine-1.2.23/bin/spine
/opt/cacti/local/
ln -s spine-1.2.23/ spine
cd bin/
ln -s ../spine/bin/* .
cp /opt/cacti/local/spine/etc/spine.conf.dist /opt/cacti/local/spine/etc/spine.conf
spine用のconfにcacti用のユーザの接続情報を記載しましょう。
今回はテストということでDB,User,Passをcacti
で統一しています。
DB_Host localhost
DB_Database cacti
DB_User cacti
DB_Pass cacti
DB_Port 3306
#DB_UseSSL 0
ちょっと長くなったので一旦ここまで、次は各ミドルウェアの起動とcactiの設定を書きます。
続きは下記URLに!
https://qiita.com/imaii/items/444936e933e0c854eb02