0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

cactiをソースからインストールをしてみる

Last updated at Posted at 2023-02-27

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の追加

/etc/profile.d/cacti.sh

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で統一しています。

/opt/cacti/local/spine/etc/spine.conf
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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?