【ZABBIX7.0LTS】Linux系Zabbix Agent オフラインインストール

## はじめに
インターネットに接続できないLinux系サーバーに対して、どのように「Zabbix Agent 7.0 LTS」を導入するのか不明だったので「ソースコードからのインストール」を検証してみた。（Windows系サーバーならパッケージからインストールできるが、Linux系はまだできないようだ。）

参考ページ：[ZABBIX7.0  - docs　4. Installation from sources](https://www.zabbix.com/documentation/current/en/manual/installation/install)

## 対応方法（結論）
さっさと対応方法が知りたい！という方のために、結論から先に書いときますね。

① ZABBIX公式よりソースファイル(zabbix-7.0.5.tar.gz)を取得し、対象サーバー持込む。
② ソースファイルを展開する。
 　→　tar -zxf /xxx/zabbix-7.0.5.tar.gz
③ ZABBIXユーザーを作成する。
  　→　groupadd --system zabbix
  　→　useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
④ C言語の規格設定をする。
  　→　export CFLAGS="-std=gnu99"
⑤「gcc、libpcre、libpcre-devel、make」パッケージを持込みインストールする。
⑥ 初期設定スクリプトを実行する。
  　→　/xxx/zabbix-7.0.5/configure --enable-agent
⑦ makeコマンドでビルド/インストール
  　→　make install
⑧ Zabbix Agent設定ファイルの設定
  　→　vi /usr/local/etc/zabbix_agentd.conf
⑨ Zabbix Agent Service の作成
　　→ vi /etc/systemd/system/zabbix-agent.service
⑩ サービス起動
  　→　systemctl enable zabbix-agent
  　→　systemctl start zabbix-agent
  　→　systemctl status zabbix-agent

## 検証環境
OS：
・Oracle Linux 8.10

リソース：
・CPU（2コア）
・メモリ（3GB）
・ディスク（20GB）

セキュリティ：
・パーソナルFW（OFF）
・SELINUX（OFF)

IPアドレス：
　192.168.10.137（監視対象サーバー）
　192.168.10.131（ZABBIXサーバー）


## ソースファイルをダウンロード
まずは、ZABBIX公式ページより、ソースアーカイブファイルをダウンロードする。

URL：[Download and install Zabbix](https://www.zabbix.com/jp/download_sources)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/2ad01be7-5c65-9e6e-6955-4c1d609ace67.png)

## ソースファイルを持込む
インストールしたアーカイブファイルを対象サーバーに持ち込む。
私は、TeraTermのSCPで持込みました。

```terminal:ソースファイル持込み
[root@localhost /]# ls -l /root
合計 47660
-rw-r--r--  1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#
```

持込んだ後は、アーカイブファイルを展開する。

```terminal:ソースファイル展開
[root@localhost /]# tar -zxf /root/zabbix-7.0.5.tar.gz


[root@localhost /]# ls -l /root
合計 47664
drwxr-xr-x  13 1000 1000     4096 10月 21 21:46 zabbix-7.0.5
-rw-r--r--   1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#


[root@localhost /]# ls -l /root/zabbix-7.0.5
合計 2728
-rw-r--r--  1 1000 1000      98 10月 21 17:40 AUTHORS
-rw-r--r--  1 1000 1000   34523 10月 21 17:40 COPYING
-rw-r--r--  1 1000 1000 1793716 10月 21 21:45 ChangeLog
-rw-r--r--  1 1000 1000      83 10月 21 17:40 INSTALL
-rw-r--r--  1 1000 1000    7825 10月 21 21:45 Makefile.am
-rw-r--r--  1 1000 1000   38342 10月 21 21:45 Makefile.in
-rw-r--r--  1 1000 1000      53 10月 21 17:40 NEWS
-rw-r--r--  1 1000 1000      26 10月 21 17:40 README
-rw-r--r--  1 1000 1000    2435 10月 21 17:40 README.md
-rw-r--r--  1 1000 1000   55753 10月 21 21:45 aclocal.m4
drwxr-xr-x  4 1000 1000      32 10月 21 17:40 bin
drwxr-xr-x  5 1000 1000      45 10月 21 17:40 build
-rwxr-xr-x  1 1000 1000    7400  3月 18  2022 compile
drwxr-xr-x  3 1000 1000     134 10月 21 21:45 conf
-rwxr-xr-x  1 1000 1000   49482  1月 31  2022 config.guess
-rwxr-xr-x  1 1000 1000   35406  1月 31  2022 config.sub
-rwxr-xr-x  1 1000 1000  588241 10月 21 21:45 configure
-rw-r--r--  1 1000 1000   72874 10月 21 21:45 configure.ac
drwxr-xr-x  7 1000 1000     125 10月 21 21:46 database
-rwxr-xr-x  1 1000 1000   23568  3月 18  2022 depcomp
drwxr-xr-x  4 1000 1000    4096 10月 21 21:46 include
-rwxr-xr-x  1 1000 1000   15358  3月 18  2022 install-sh
drwxr-xr-x  2 1000 1000    4096 10月 21 21:45 m4
drwxr-xr-x  2 1000 1000    4096 10月 21 21:46 man
drwxr-xr-x  5 1000 1000      88 10月 21 21:46 misc
-rwxr-xr-x  1 1000 1000    6878  3月 18  2022 missing
drwxr-xr-x  5 1000 1000    4096 10月 21 17:40 sass
drwxr-xr-x 12 1000 1000    4096 10月 21 21:46 src
drwxr-xr-x 14 1000 1000    4096 10月 21 21:46 ui
[root@localhost /]#
```

## ZABBIXユーザーの作成
次は、ZABBIX Agent 起動用のユーザーを作成する。

```terminal:ユーザー作成
# ZABBIXユーザー用のグループを作成
[root@localhost /]# groupadd --system zabbix
[root@localhost /]# grep "zabbix" /etc/group
zabbix:x:992:
[root@localhost /]#


# ZABBIXユーザーを作成
[root@localhost /]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
[root@localhost /]# grep "zabbix" /etc/passwd
zabbix:x:995:992:Zabbix Monitoring System:/usr/lib/zabbix:/sbin/nologin
[root@localhost /]#
```

## C言語の規格指定
ZABBIXはC言語で構成されている。なのでC言語で記述されているZABBIXソースコードを指定の規格でコンパイルするために、以下を設定する。

```terminal:規格設定
[root@localhost /]# export CFLAGS="-std=gnu99"
[root@localhost /]# echo $CFLAGS
-std=gnu99
[root@localhost /]#
```

:::note info
**※ ChatGPTより**
**【CFLAGS】**
Cコンパイラ（例: gcc）に渡されるオプションを設定するための環境変数です。
この変数に設定されたフラグは、C言語のコードをコンパイルするときに使用されます。

**【-std=gnu99】**
C言語の標準を「GNU99」に指定するフラグです。
「GNU99」は、C99（1999年に策定されたC言語の標準規格）に、GNU拡張を加えたバージョンです。C99の文法や機能を使用しつつ、GNUの特定の拡張機能も使うことができます。
:::

## 初期設定スクリプトの実行 ①
Zabbix Agent をソースコードから導入するには、ビルド環境が整っている必要がある。そこでアーカイブファイルに含まれている「configure」スクリプトを実行し、ビルド環境を整えていく。このスクリプトでは、基本的に以下の処理が行われている。

**【configure --enable-agent 実行内容】**

**1. 環境チェック**
Zabbix Agent をビルドするために必要なコンパイラやライブラリがシステムに存在するかを確認する。存在しない場合は、エラーを出して処理が終了する。

**2. コンパイルオプションの設定**
Cコンパイラに渡すフラグやオプションを設定する。（CFLAGSに-std=gnu99などを指定）
「--enable-agent」オプションで、Zabbix Agent用のモジュールを有効にし、Agent だけをビルド対象にする。

**3. 設定ファイルの生成**
ビルドを実施するために必要な設定ファイル（Makefile）を生成する。
この設定ファイルには、ビルドで必要なビルド手順やコンパイルオプションが含まれている。

```terminal:ビルド環境の初期設定（１回目）
# zabbix-7.0.5 ディレクトリまで移動　※ 移動しないで行っていくと、後々大変な目に合う・・・・。
[root@localhost /]# cd /root/zabbix-7.0.5
[root@localhost zabbix-7.0.5]#

[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking how to create a pax tar archive... gnutar
configure: Configuring Zabbix 7.0.5
checking whether make sets $(MAKE)... (cached) no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for cc... no　← ★★★ ここ注目 ★★★
checking for c99... no　← ★★★ ここ注目 ★★★
checking for gcc... no　← ★★★ ここ注目 ★★★
checking for clang... no　← ★★★ ここ注目 ★★★
configure: error: in `/':
configure: error: no acceptable C compiler found in $PATH　← ★★★ ここ注目 ★★★
See `config.log' for more details
[root@localhost zabbix-7.0.5]# 
```
実行結果から、$PATHにCコンパイラ（gccやclangなど）が存在しないため、エラーが出たことがわかる。なので Cコンパイラである「gcc」パッケージをインストールする必要がある。今回、直接インターネットからインストールできない定で行うため、以下の方法で「gcc」パッケージを取得する。

```terminal:DNFの場合
# 同様の検証環境を用意し、インターネットにアクセスし「gcc」パッケージを取得する。
# 以下コマンドで依存関係を解決してダウンロードする。

[root@localhost ~]# dnf download --resolve gcc
メタデータの期限切れの最終確認: 1:42:42 前の 2024年10月29日 22時27分14秒 に実施 しました。
(1/15): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm   75 kB/s |  25 kB     00:00
(2/15): libmpc-1.1.0-9.1.el8.x86_64.rpm         168 kB/s |  61 kB     00:00
(3/15): glibc-devel-2.28-251.0.2.el8.x86_64.rpm 1.1 MB/s |  89 kB     00:00
(4/15): libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm  476 kB/s | 218 kB     00:00
(5/15): pkgconf-1.4.2-1.el8.x86_64.rpm          747 kB/s |  38 kB     00:00
(6/15): glibc-headers-2.28-251.0.2.el8.x86_64.r 2.1 MB/s | 494 kB     00:00
(7/15): pkgconf-m4-1.4.2-1.el8.noarch.rpm       286 kB/s |  17 kB     00:00
(8/15): pkgconf-pkg-config-1.4.2-1.el8.x86_64.r 354 kB/s |  15 kB     00:00
(9/15): binutils-2.30-123.0.2.el8.x86_64.rpm    4.1 MB/s | 5.9 MB     00:01
(10/15): libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm  1.4 MB/s |  93 kB     00:00
(11/15): isl-0.16.1-6.el8.x86_64.rpm            3.0 MB/s | 841 kB     00:00
(12/15): cpp-8.5.0-22.0.1.el8_10.x86_64.rpm     3.7 MB/s |  10 MB     00:02
(13/15): libpkgconf-1.4.2-1.el8.x86_64.rpm      765 kB/s |  35 kB     00:00
(14/15): gcc-8.5.0-22.0.1.el8_10.x86_64.rpm     6.6 MB/s |  23 MB     00:03
(15/15): kernel-headers-4.18.0-553.22.1.el8_10. 4.7 MB/s |  12 MB     00:02
[root@localhost ~]#


# コマンドを実行した際のカレントディレクトリに出力される。
[root@localhost ~]# ls /root　　
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
```
　
```terminal:YUMの場合 ①
[root@localhost ~]# yum install --downloadonly --downloaddir=/root gcc
メタデータの期限切れの最終確認: 1:50:24 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                                 アーキテクチャー                               バージョン                                                        リポジトリー                                              サイズ
=============================================================================================================================================================================================================================================
インストール:
 gcc                                                        x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_appstream                                              23 M
アップグレード:
 libgcc                                                     x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_baseos_latest                                          93 k
 libgomp                                                    x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_baseos_latest                                         218 k
依存関係のインストール:
 binutils                                                   x86_64                                         2.30-123.0.2.el8                                                  ol8_baseos_latest                                         5.9 M
 cpp                                                        x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_appstream                                              10 M
 glibc-devel                                                x86_64                                         2.28-251.0.2.el8                                                  ol8_baseos_latest                                          89 k
 glibc-headers                                              x86_64                                         2.28-251.0.2.el8                                                  ol8_baseos_latest                                         494 k
 isl                                                        x86_64                                         0.16.1-6.el8                                                      ol8_appstream                                             841 k
 kernel-headers                                             x86_64                                         4.18.0-553.22.1.el8_10                                            ol8_baseos_latest                                          12 M
 libmpc                                                     x86_64                                         1.1.0-9.1.el8                                                     ol8_appstream                                              61 k
 libpkgconf                                                 x86_64                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          35 k
 libxcrypt-devel                                            x86_64                                         4.1.1-6.el8                                                       ol8_baseos_latest                                          25 k
 pkgconf                                                    x86_64                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          38 k
 pkgconf-m4                                                 noarch                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          17 k
 pkgconf-pkg-config                                         x86_64                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          15 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール    13 パッケージ
アップグレード   2 パッケージ

ダウンロードサイズの合計: 54 M
YUM はトランザクションでパッケージのダウンロードのみ行います。
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/15): glibc-devel-2.28-251.0.2.el8.x86_64.rpm                                                                                                                                                              285 kB/s |  89 kB     00:00
(2/15): glibc-headers-2.28-251.0.2.el8.x86_64.rpm                                                                                                                                                            869 kB/s | 494 kB     00:00
(3/15): libpkgconf-1.4.2-1.el8.x86_64.rpm                                                                                                                                                                    185 kB/s |  35 kB     00:00
(4/15): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm                                                                                                                                                               370 kB/s |  25 kB     00:00
(5/15): pkgconf-1.4.2-1.el8.x86_64.rpm                                                                                                                                                                       639 kB/s |  38 kB     00:00
(6/15): pkgconf-m4-1.4.2-1.el8.noarch.rpm                                                                                                                                                                    370 kB/s |  17 kB     00:00
(7/15): pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm                                                                                                                                                            248 kB/s |  15 kB     00:00
(8/15): binutils-2.30-123.0.2.el8.x86_64.rpm                                                                                                                                                                 5.1 MB/s | 5.9 MB     00:01
(9/15): kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm                                                                                                                                                      10 MB/s |  12 MB     00:01
(10/15): isl-0.16.1-6.el8.x86_64.rpm                                                                                                                                                                         3.6 MB/s | 841 kB     00:00
(11/15): libmpc-1.1.0-9.1.el8.x86_64.rpm                                                                                                                                                                     1.3 MB/s |  61 kB     00:00
(12/15): libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                               996 kB/s |  93 kB     00:00
(13/15): libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                              1.2 MB/s | 218 kB     00:00
(14/15): cpp-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                                  6.9 MB/s |  10 MB     00:01
(15/15): gcc-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                                   14 MB/s |  23 MB     00:01
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                          19 MB/s |  54 MB     00:02
完了しました!
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'yum clean packages' を実行することでキャッシュパッケージを削除できます。
[root@localhost ~]#


[root@localhost ~]# ls /root
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
```
　
 ```terminal:YUMの場合 ②
 [root@localhost ~]# yum install yum-utils
メタデータの期限切れの最終確認: 1:54:38 前の 2024年10月29日 22時27分14秒 に実施しました。           
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                            アーキテクチャー                                   バージョン                                                     リポジトリー                                                  サイズ
=============================================================================================================================================================================================================================================
インストール:
 yum-utils                                             noarch                                             4.0.21-25.0.1.el8                                              ol8_baseos_latest                                              75 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 75 k
インストール後のサイズ: 23 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
yum-utils-4.0.21-25.0.1.el8.noarch.rpm                                                                                                                                                                       254 kB/s |  75 kB     00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                         248 kB/s |  75 kB     00:00
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                                                                                                                                                                                     1/1
  インストール中   : yum-utils-4.0.21-25.0.1.el8.noarch                                                                                                                                                                                  1/1
  scriptletの実行中: yum-utils-4.0.21-25.0.1.el8.noarch                                                                                                                                                                                  1/1
  検証中           : yum-utils-4.0.21-25.0.1.el8.noarch                                                                                                                                                                                  1/1

インストール済み:
  yum-utils-4.0.21-25.0.1.el8.noarch

完了しました!
[root@localhost ~]#


[root@localhost ~]# yum install --downloadonly --downloaddir=/root gcc
メタデータの期限切れの最終確認: 1:55:47 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                                 アーキテクチャー                               バージョン                                                        リポジトリー                                              サイズ
=============================================================================================================================================================================================================================================
インストール:
 gcc                                                        x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_appstream                                              23 M
アップグレード:
 libgcc                                                     x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_baseos_latest                                          93 k
 libgomp                                                    x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_baseos_latest                                         218 k
依存関係のインストール:
 binutils                                                   x86_64                                         2.30-123.0.2.el8                                                  ol8_baseos_latest                                         5.9 M
 cpp                                                        x86_64                                         8.5.0-22.0.1.el8_10                                               ol8_appstream                                              10 M
 glibc-devel                                                x86_64                                         2.28-251.0.2.el8                                                  ol8_baseos_latest                                          89 k
 glibc-headers                                              x86_64                                         2.28-251.0.2.el8                                                  ol8_baseos_latest                                         494 k
 isl                                                        x86_64                                         0.16.1-6.el8                                                      ol8_appstream                                             841 k
 kernel-headers                                             x86_64                                         4.18.0-553.22.1.el8_10                                            ol8_baseos_latest                                          12 M
 libmpc                                                     x86_64                                         1.1.0-9.1.el8                                                     ol8_appstream                                              61 k
 libpkgconf                                                 x86_64                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          35 k
 libxcrypt-devel                                            x86_64                                         4.1.1-6.el8                                                       ol8_baseos_latest                                          25 k
 pkgconf                                                    x86_64                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          38 k
 pkgconf-m4                                                 noarch                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          17 k
 pkgconf-pkg-config                                         x86_64                                         1.4.2-1.el8                                                       ol8_baseos_latest                                          15 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール    13 パッケージ
アップグレード   2 パッケージ

ダウンロードサイズの合計: 54 M
YUM はトランザクションでパッケージのダウンロードのみ行います。
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/15): glibc-devel-2.28-251.0.2.el8.x86_64.rpm                                                                                                                                                              299 kB/s |  89 kB     00:00
(2/15): glibc-headers-2.28-251.0.2.el8.x86_64.rpm                                                                                                                                                            1.0 MB/s | 494 kB     00:00
(3/15): libpkgconf-1.4.2-1.el8.x86_64.rpm                                                                                                                                                                    504 kB/s |  35 kB     00:00
(4/15): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm                                                                                                                                                               291 kB/s |  25 kB     00:00
(5/15): pkgconf-1.4.2-1.el8.x86_64.rpm                                                                                                                                                                       631 kB/s |  38 kB     00:00
(6/15): pkgconf-m4-1.4.2-1.el8.noarch.rpm                                                                                                                                                                    253 kB/s |  17 kB     00:00
(7/15): pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm                                                                                                                                                             54 kB/s |  15 kB     00:00
(8/15): binutils-2.30-123.0.2.el8.x86_64.rpm                                                                                                                                                                 4.3 MB/s | 5.9 MB     00:01
(9/15): kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm                                                                                                                                                     9.8 MB/s |  12 MB     00:01
(10/15): isl-0.16.1-6.el8.x86_64.rpm                                                                                                                                                                         5.1 MB/s | 841 kB     00:00
(11/15): libmpc-1.1.0-9.1.el8.x86_64.rpm                                                                                                                                                                     1.2 MB/s |  61 kB     00:00
(12/15): libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                               1.8 MB/s |  93 kB     00:00
(13/15): libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                              1.6 MB/s | 218 kB     00:00
(14/15): cpp-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                                   11 MB/s |  10 MB     00:00
(15/15): gcc-8.5.0-22.0.1.el8_10.x86_64.rpm                                                                                                                                                                   11 MB/s |  23 MB     00:02
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                          15 MB/s |  54 MB     00:03
完了しました!
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'yum clean packages' を実行することでキャッシュパッケージを削除できます。
[root@localhost ~]#


 [root@localhost ~]# ls /root
anaconda-ks.cfg
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
 ```
## gcc インストール（ C言語のコンパイラ ）
取得したパッケージを対象サーバーに持込んでインストールする。

 ```terminal:gcc インストール
[root@localhost /]# ls -l /root
合計 93864
drwxr-xr-x   2 root root     4096 10月 30 00:32 gcc-pkg　← ★★★ 解凍！★★★
-rw-r--r--   1 root root 47303919 10月 30 00:35 gcc-pkg.tgz　← ★★★ 持込み！★★★
drwxr-xr-x  13 1000 1000     4096 10月 21 21:46 zabbix-7.0.5
-rw-r--r--   1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#


[root@localhost /]# ls /root/gcc-pkg
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost /]#


 [root@localhost /]# dnf install /root/gcc-pkg/*.rpm
メタデータの期限切れの最終確認: 2:14:30 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                                   アーキテクチャー                                 バージョン                                                       リポジトリー                                           サイズ
=============================================================================================================================================================================================================================================
インストール:
 binutils                                                     x86_64                                           2.30-123.0.2.el8                                                 @commandline                                           5.9 M
 cpp                                                          x86_64                                           8.5.0-22.0.1.el8_10                                              @commandline                                            10 M
 gcc                                                          x86_64                                           8.5.0-22.0.1.el8_10                                              @commandline                                            23 M
 glibc-devel                                                  x86_64                                           2.28-251.0.2.el8                                                 @commandline                                            89 k
 glibc-headers                                                x86_64                                           2.28-251.0.2.el8                                                 @commandline                                           494 k
 isl                                                          x86_64                                           0.16.1-6.el8                                                     @commandline                                           841 k
 kernel-headers                                               x86_64                                           4.18.0-553.22.1.el8_10                                           @commandline                                            12 M
 libmpc                                                       x86_64                                           1.1.0-9.1.el8                                                    @commandline                                            61 k
 libpkgconf                                                   x86_64                                           1.4.2-1.el8                                                      @commandline                                            35 k
 libxcrypt-devel                                              x86_64                                           4.1.1-6.el8                                                      @commandline                                            25 k
 pkgconf                                                      x86_64                                           1.4.2-1.el8                                                      @commandline                                            38 k
 pkgconf-m4                                                   noarch                                           1.4.2-1.el8                                                      @commandline                                            17 k
 pkgconf-pkg-config                                           x86_64                                           1.4.2-1.el8                                                      @commandline                                            15 k
アップグレード:
 libgcc                                                       x86_64                                           8.5.0-22.0.1.el8_10                                              @commandline                                            93 k
 libgomp                                                      x86_64                                           8.5.0-22.0.1.el8_10                                              @commandline                                           218 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール    13 パッケージ
アップグレード   2 パッケージ

合計サイズ: 54 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:

～　省略　～

アップグレード済み:
  libgcc-8.5.0-22.0.1.el8_10.x86_64                                                                                    libgomp-8.5.0-22.0.1.el8_10.x86_64
インストール済み:
  binutils-2.30-123.0.2.el8.x86_64                 cpp-8.5.0-22.0.1.el8_10.x86_64     gcc-8.5.0-22.0.1.el8_10.x86_64     glibc-devel-2.28-251.0.2.el8.x86_64     glibc-headers-2.28-251.0.2.el8.x86_64     isl-0.16.1-6.el8.x86_64
  kernel-headers-4.18.0-553.22.1.el8_10.x86_64     libmpc-1.1.0-9.1.el8.x86_64        libpkgconf-1.4.2-1.el8.x86_64      libxcrypt-devel-4.1.1-6.el8.x86_64      pkgconf-1.4.2-1.el8.x86_64                pkgconf-m4-1.4.2-1.el8.noarch
  pkgconf-pkg-config-1.4.2-1.el8.x86_64

完了しました!
[root@localhost /]#
 ```

## 初期設定スクリプトの実行 ②
「gcc」パッケージをインストールしたので、再度初期設定スクリプトを実行してみる。

```terminal:ビルド環境の初期設定（２回目）
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no

～ 省略 ～

checking for file /proc/cpuinfo... yes
checking for file /proc/0/psinfo... no
checking for file /proc/loadavg... yes
checking for file /proc/net/dev... yes
checking for long long format... no
checking for -rdynamic linking option... yes
checking for libperfstat 5.2.0.40 fileset... no
checking for libperfstat 5.3.0.60 fileset... no
checking for architecture... linux (linux-gnu)
checking for the linux kernel version... unknown family (5.15.0-206.153.7.1.el8uek.x86_64)
checking size of void *... 8
configure: using old pcre library by default
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: error: cannot find pkg-config package for libpcre　← ★★★ ここ注目 ★★★
[root@localhost zabbix-7.0.5]# 
 ```
実行結果から、libpcre 用の pkg-config パッケージが存在しないため、エラーが出たことがわかる。なので「libpcre」と「libpcre-devel」パッケージをインストールする必要がある。今回、直接インターネットからインストールできない定で行うため、以下の方法で「libpcre」と「libpcre-devel」パッケージを取得する。

:::note info
**※ ChatGPTより**
**【libpcre（実行時ライブラリ）】**
PCRE（Perl互換正規表現）を使用するプログラムが実行される際に必要な共有ライブラリを提供する。

**【libpcre-devel（開発用パッケージ）】**
PCREを使用するプログラムをソースコードからビルドする際に必要なヘッダファイルや開発ツールを提供する。
:::
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/8baa00d7-726e-e0bf-5ca1-ff1d1bd236fa.png)
　
 ```terminal:DNFの場合
[root@localhost ~]# dnf download --resolve pcre pcre-devel
メタデータの期限切れの最終確認: 2:41:02 前の 2024年10月29日 22時27分14秒 に実施しました。
(1/18): pcre-8.42-6.el8.i686.rpm                                                                                                                                                                             642 kB/s | 211 kB     00:00
(2/18): pcre-cpp-8.42-6.el8.i686.rpm                                                                                                                                                                         928 kB/s |  48 kB     00:00
(3/18): pcre-8.42-6.el8.x86_64.rpm                                                                                                                                                                           537 kB/s | 211 kB     00:00
(4/18): libstdc++-8.5.0-21.0.1.el8.i686.rpm                                                                                                                                                                  1.2 MB/s | 501 kB     00:00
(5/18): pcre-cpp-8.42-6.el8.x86_64.rpm                                                                                                                                                                       1.0 MB/s |  47 kB     00:00
(6/18): pcre-utf16-8.42-6.el8.i686.rpm                                                                                                                                                                       2.8 MB/s | 196 kB     00:00
(7/18): pcre-devel-8.42-6.el8.x86_64.rpm                                                                                                                                                                     5.1 MB/s | 551 kB     00:00
(8/18): pcre-devel-8.42-6.el8.i686.rpm                                                                                                                                                                       4.0 MB/s | 551 kB     00:00
(9/18): libgcc-8.5.0-21.0.1.el8.i686.rpm                                                                                                                                                                     1.7 MB/s | 100 kB     00:00
(10/18): pcre-utf16-8.42-6.el8.x86_64.rpm                                                                                                                                                                    2.7 MB/s | 195 kB     00:00
(11/18): pcre-utf32-8.42-6.el8.i686.rpm                                                                                                                                                                      3.1 MB/s | 187 kB     00:00
(12/18): pcre-utf32-8.42-6.el8.x86_64.rpm                                                                                                                                                                    3.1 MB/s | 186 kB     00:00
(13/18): pkgconf-1.4.2-1.el8.x86_64.rpm                                                                                                                                                                      721 kB/s |  38 kB     00:00
(14/18): pkgconf-m4-1.4.2-1.el8.noarch.rpm                                                                                                                                                                   416 kB/s |  17 kB     00:00
(15/18): glibc-2.28-251.0.2.el8.i686.rpm                                                                                                                                                                     8.6 MB/s | 2.0 MB     00:00
(16/18): pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm                                                                                                                                                           358 kB/s |  15 kB     00:00
(17/18): libpkgconf-1.4.2-1.el8.x86_64.rpm                                                                                                                                                                   879 kB/s |  35 kB     00:00
(18/18): glibc-gconv-extra-2.28-251.0.2.el8.i686.rpm                                                                                                                                                         7.8 MB/s | 1.6 MB     00:00
[root@localhost ~]#


 [root@localhost ~]# ls /root
glibc-2.28-251.0.2.el8.i686.rpm
glibc-gconv-extra-2.28-251.0.2.el8.i686.rpm
libgcc-8.5.0-21.0.1.el8.i686.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libstdc++-8.5.0-21.0.1.el8.i686.rpm
pcre-8.42-6.el8.i686.rpm
pcre-8.42-6.el8.x86_64.rpm
pcre-cpp-8.42-6.el8.i686.rpm
pcre-cpp-8.42-6.el8.x86_64.rpm
pcre-devel-8.42-6.el8.i686.rpm
pcre-devel-8.42-6.el8.x86_64.rpm
pcre-utf16-8.42-6.el8.i686.rpm
pcre-utf16-8.42-6.el8.x86_64.rpm
pcre-utf32-8.42-6.el8.i686.rpm
pcre-utf32-8.42-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
 ```
## libpcre および libpcre-devel インストール
取得したパッケージを対象サーバーに持込んでインストールする。


 ```terminal:libpcre ＆ libpcre-devel インストール
[root@localhost /]# ls -l /root
合計 100104
drwxr-xr-x   2 root root     4096 10月 30 00:32 gcc-pkg
-rw-r--r--   1 root root 47303919 10月 30 00:35 gcc-pkg.tgz
drwxr-xr-x   2 root root     4096 10月 30 01:06 libpcre-pkg　← ★★★ 解凍！★★★
-rw-r--r--   1 root root  6384876 10月 30 01:40 libpcre-pkg.tgz　← ★★★ 持込み！★★★
drwxr-xr-x  13 1000 1000     4096 10月 21 21:46 zabbix-7.0.5
-rw-r--r--   1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#


[root@localhost /]# ls /root/libpcre-pkg
glibc-2.28-251.0.2.el8.i686.rpm
glibc-gconv-extra-2.28-251.0.2.el8.i686.rpm
libgcc-8.5.0-21.0.1.el8.i686.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libstdc++-8.5.0-21.0.1.el8.i686.rpm
pcre-8.42-6.el8.i686.rpm
pcre-8.42-6.el8.x86_64.rpm
pcre-cpp-8.42-6.el8.i686.rpm
pcre-cpp-8.42-6.el8.x86_64.rpm
pcre-devel-8.42-6.el8.i686.rpm
pcre-devel-8.42-6.el8.x86_64.rpm
pcre-utf16-8.42-6.el8.i686.rpm
pcre-utf16-8.42-6.el8.x86_64.rpm
pcre-utf32-8.42-6.el8.i686.rpm
pcre-utf32-8.42-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost /]#


[root@localhost /]# dnf install /root/libpcre-pkg/*.rpm
メタデータの期限切れの最終確認: 3:19:09 前の 2024年10月29日 22時27分14秒 に実施しました。
パッケージ libpkgconf-1.4.2-1.el8.x86_64 は既にインストールされています。
パッケージ pcre-8.42-6.el8.x86_64 は既にインストールされています。
パッケージ pkgconf-1.4.2-1.el8.x86_64 は既にインストールされています。
パッケージ pkgconf-m4-1.4.2-1.el8.noarch は既にインストールされています。
パッケージ pkgconf-pkg-config-1.4.2-1.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                                   アーキテクチャー                                  バージョン                                                     リポジトリー                                            サイズ
=============================================================================================================================================================================================================================================
インストール:
 glibc                                                        i686                                              2.28-251.0.2.el8                                               @commandline                                            2.0 M
 glibc-gconv-extra                                            i686                                              2.28-251.0.2.el8                                               @commandline                                            1.6 M
 libgcc                                                       i686                                              8.5.0-21.0.1.el8                                               @commandline                                            100 k
 libstdc++                                                    i686                                              8.5.0-21.0.1.el8                                               @commandline                                            501 k
 pcre                                                         i686                                              8.42-6.el8                                                     @commandline                                            211 k
 pcre-cpp                                                     i686                                              8.42-6.el8                                                     @commandline                                             48 k
 pcre-cpp                                                     x86_64                                            8.42-6.el8                                                     @commandline                                             47 k
 pcre-devel                                                   i686                                              8.42-6.el8                                                     @commandline                                            551 k
 pcre-devel                                                   x86_64                                            8.42-6.el8                                                     @commandline                                            551 k
 pcre-utf16                                                   i686                                              8.42-6.el8                                                     @commandline                                            196 k
 pcre-utf16                                                   x86_64                                            8.42-6.el8                                                     @commandline                                            195 k
 pcre-utf32                                                   i686                                              8.42-6.el8                                                     @commandline                                            187 k
 pcre-utf32                                                   x86_64                                            8.42-6.el8                                                     @commandline                                            186 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール  13 パッケージ

合計サイズ: 6.3 M
インストール後のサイズ: 19 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションを確認しています

～ 省略 ～

インストール済み:
  glibc-2.28-251.0.2.el8.i686    glibc-gconv-extra-2.28-251.0.2.el8.i686    libgcc-8.5.0-21.0.1.el8.i686    libstdc++-8.5.0-21.0.1.el8.i686    pcre-8.42-6.el8.i686          pcre-cpp-8.42-6.el8.i686        pcre-cpp-8.42-6.el8.x86_64
  pcre-devel-8.42-6.el8.i686     pcre-devel-8.42-6.el8.x86_64               pcre-utf16-8.42-6.el8.i686      pcre-utf16-8.42-6.el8.x86_64       pcre-utf32-8.42-6.el8.i686    pcre-utf32-8.42-6.el8.x86_64

完了しました!
[root@localhost /]#
 ```

## 初期設定スクリプトの実行 ③
「libpcre」および「libpcre-devel」パッケージをインストールしたので、再度初期設定スクリプトを実行してみる。

```terminal:ビルド環境の初期設定（３回目）
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking how to create a pax tar archive... gnutar
configure: Configuring Zabbix 7.0.5
checking whether make sets $(MAKE)... (cached) no
checking build system type... x86_64-pc-linux-gnu

～ 省略 ～

config.status: creating src/zabbix_server/rtc/Makefile
config.status: creating src/zabbix_server/service/Makefile
config.status: creating src/zabbix_server/stats/Makefile
config.status: creating src/zabbix_server/taskmanager/Makefile
config.status: creating src/zabbix_server/timer/Makefile
config.status: creating src/zabbix_server/trapper/Makefile
config.status: creating man/Makefile
config.status: creating include/common/config.h
config.status: include/common/config.h is unchanged
config.status: executing depfiles commands
config.status: error: in `/':
config.status: error: Something went wrong bootstrapping makefile fragments
    for automatic dependency tracking.  If GNU make was not used, consider　← ★★★ ここ注目 ★★★
    re-running the configure script with MAKE="gmake" (or whatever is
    necessary).  You can also try re-running configure with the
    '--disable-dependency-tracking' option to at least be able to build
    the package (albeit without support for automatic dependency tracking).
See `config.log' for more details
[root@localhost zabbix-7.0.5]# 
```
実行結果を見てみると、どうやら「make」が使えていないようだ。試しに「make」がインストールされているか確認したところ、案の定インストールされていなかった・・・。なので先ほどと同じ方法で取得し、インストールする。

:::note info
**※ ChatGPTより**
**【make】**
ソースコードからプログラムをビルド（構築）するためのツールである。主に、C言語やC++などのプログラムをコンパイルし、実行可能な形式に変換するために使われる。

**【Makefile】**
makeは通常、Makefileという設定ファイルを読み取る。Makefileには、どのファイルをコンパイルするか、どの順序でリンクするか、どのオプションを使うかなどのルールが定義されている。これにより、makeはプログラム全体を効率的にビルドできる。
:::

```terminal:
[root@localhost ~]# dnf download --resolve make
メタデータの期限切れの最終確認: 0:42:52 前の 2024年10月30日 01時29分53秒 に実施しました。
make-4.2.1-11.el8.x86_64.rpm                                                                                                                                                                                 897 kB/s | 498 kB     00:00
[root@localhost ~]#
```

## make インストール
取得したパッケージを対象サーバーに持込んでインストールする。

```terminal:make インストール
[root@localhost /]# ls -l /root/make-pkg/
合計 500
-rw-r--r-- 1 root root 509616 10月 30 02:06 make-4.2.1-11.el8.x86_64.rpm
[root@localhost /]#


[root@localhost /]# dnf install /root/make-pkg/*.rpm
メタデータの期限切れの最終確認: 3:47:01 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
 パッケージ                                          アーキテクチャー                                      バージョン                                                      リポジトリー                                                サイズ
=============================================================================================================================================================================================================================================
インストール:
 make                                                x86_64                                                1:4.2.1-11.el8                                                  @commandline                                                498 k

トランザクションの概要
=============================================================================================================================================================================================================================================
インストール  1 パッケージ

合計サイズ: 498 k
インストール後のサイズ: 1.4 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                                                                                                                                                                                     1/1
  インストール中   : make-1:4.2.1-11.el8.x86_64                                                                                                                                                                                          1/1
  scriptletの実行中: make-1:4.2.1-11.el8.x86_64                                                                                                                                                                                          1/1
  検証中           : make-1:4.2.1-11.el8.x86_64                                                                                                                                                                                          1/1

インストール済み:
  make-1:4.2.1-11.el8.x86_64

完了しました!
[root@localhost /]#
```

## 初期設定スクリプトの実行 ④
「make」パッケージをインストールしたので、再度初期設定スクリプトを実行してみる。

```terminal:ビルド環境の初期設定（４回目）
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
configure: Configuring Zabbix 7.0.5
checking whether make sets $(MAKE)... (cached) yes
checking build system type... x86_64-pc-linux-gnu

～ 省略 ～

config.status: creating src/zabbix_server/proxyconfigread/Makefile
config.status: creating src/zabbix_server/proxypoller/Makefile
config.status: creating src/zabbix_server/reporter/Makefile
config.status: creating src/zabbix_server/rtc/Makefile
config.status: creating src/zabbix_server/service/Makefile
config.status: creating src/zabbix_server/stats/Makefile
config.status: creating src/zabbix_server/taskmanager/Makefile
config.status: creating src/zabbix_server/timer/Makefile
config.status: creating src/zabbix_server/trapper/Makefile
config.status: creating man/Makefile
config.status: creating include/common/config.h
config.status: include/common/config.h is unchanged
config.status: executing depfiles commands


Configuration:

  Detected OS:           linux-gnu
  Install path:          /usr/local
  Compilation arch:      linux

  Compiler:              cc
  Compiler flags:         -std=gnu99

  Library-specific flags:

  Enable server:         no

  Enable proxy:          no

  Enable agent:          yes　　← ★★★ ここ注目 ★★★
  Agent details:
    TLS:                   no
    Modbus:                no
    Linker flags:                -rdynamic
    Libraries:                   -lpthread -lm -ldl  -lresolv -lpcre
    Configuration file:    /usr/local/etc/zabbix_agentd.conf
    Modules:               /usr/local/lib/modules

  Enable agent 2:        no

  Enable web service:    no

  Enable Java gateway:   no

  LDAP support:          no
  IPv6 support:          no
  cmocka support:        no

  yaml support:          no

***********************************************************
*            Now run 'make install'                       *
*                                                         *
*            Thank you for using Zabbix!                  *
*              <https://www.zabbix.com>                   *
***********************************************************

[root@localhost zabbix-7.0.5]# 
```
やっと処理が正常終了し、ビルド環境の準備ができた！！！ 最終結果を見ると、Zabbix Agent のみが対象になっていることが分かる。そしてビルド時に必要となる「Makefaile」が「./configure --enable-agent」を実行したときのカレントディレクトリに出力されていることが確認できる。

```terminal:Makefile
[root@localhost zabbix-7.0.5]# ls -l /root/zabbix-7.0.5/Makefile
-rw-r--r-- 1 root root 36311 10月 30 02:15 /root/zabbix-7.0.5/Makefile
````


## ビルドおよびインストール実施
後は、「make install」を実施し、ビルド/インストールを行う。この時、「Makefile」ファイルが配置されているディレクトリで実施する必要がある。でなければ次のエラーが出る。

```terminal:エラー
[root@localhost /]# make install
make: *** ターゲット 'install' を make するルールがありません.  中止.
```

では、「Makefile」ファイルが配置されているディレクトリで「make install」を実施する。

```terminal:make install
[root@localhost zabbix-7.0.5]# make install
Making install in include
make[1]: ディレクトリ '/root/zabbix-7.0.5/include' に入ります
make[2]: ディレクトリ '/root/zabbix-7.0.5/include' に入ります
make[2]: 'install-exec-am' に対して行うべき事はありません.
make[2]: 'install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/zabbix-7.0.5/include' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5/include' から出ます
Making install in src

～ 省略 ～

make[1]: ディレクトリ '/root/zabbix-7.0.5/misc' に入ります
make[2]: ディレクトリ '/root/zabbix-7.0.5/misc' に入ります
make[2]: 'install-exec-am' に対して行うべき事はありません.
make[2]: 'install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/zabbix-7.0.5/misc' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5/misc' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5' に入ります
make[2]: ディレクトリ '/root/zabbix-7.0.5' に入ります
make[2]: 'install-exec-am' に対して行うべき事はありません.
make[2]: 'install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/zabbix-7.0.5' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5' から出ます
[root@localhost zabbix-7.0.5]#
```
エラー出力もなく、問題なくインストールできたようだ。
以下のZABBIX関連のスクリプトや設定ファイルも問題なく配置されている。

```terminal:
# Zabbix Agent のデーモン（バックグラウンドプロセス）
[root@localhost zabbix-7.0.5]# ls -l /usr/local/sbin/zabbix*
-rwxr-xr-x 1 root root 3123512 10月 30 22:33 /usr/local/sbin/zabbix_agentd
[root@localhost zabbix-7.0.5]#


# ZABBIXの運用に役立つコマンドラインツール
[root@localhost zabbix-7.0.5]# ls -l /usr/local/bin/zabbix*
-rwxr-xr-x 1 root root 1162880 10月 30 22:33 /usr/local/bin/zabbix_get
-rwxr-xr-x 1 root root 1341376 10月 30 22:33 /usr/local/bin/zabbix_sender
[root@localhost zabbix-7.0.5]#


# abbix Agent 設定ファイル
[root@localhost zabbix-7.0.5]# ls -l /usr/local/etc/zabbix*
-rw-r--r-- 1 root root 17029 10月 30 22:33 /usr/local/etc/zabbix_agentd.conf

/usr/local/etc/zabbix_agentd.conf.d:
合計 0
[root@localhost zabbix-7.0.5]#

```

## Zabbix Agent 設定ファイル
Zabbix Agent 設定ファイルを設定して問題なく、ZABBIXサーバーと通信できることを確認する。今回は以下の通りに設定する。

```terminal:
[root@localhost zabbix-7.0.5]# vi /usr/local/etc/zabbix_agentd.conf

[root@localhost zabbix-7.0.5]# egrep -v "#|^$" /usr/local/etc/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid　　　　← PIDファイルの出力場所指定
LogFile=/var/log/zabbix/zabbix_agentd.log　　← ログファイルの出力場所指定 
Server=192.168.10.131　　　　　　　　　　　　　← ZABBIXサーバーのIPアドレス指定 
ServerActive=192.168.10.131　　　　　　　　 　← ZABBIXサーバーのIPアドレス指定
HostnameItem=system.hostname　　　　　　 　 　← ホスト名自動取得指定
HostMetadata=Linux                         　← メタデータ指定
BufferSend=5　                               ← アクティブチェック時の監視データ送信間隔指定(秒)
BufferSize=30000　                           ← 監視データを保管するバッファサイズ指定（個）
[root@localhost zabbix-7.0.5]#
```
「PidFile」の「/run/zabbix/」と「LogFile」の「/var/log/zabbix/」は、手動作成する必要がある。

```terminal:ディレクトリ作成
[root@localhost zabbix-7.0.5]# mkdir -p /run/zabbix/
[root@localhost zabbix-7.0.5]# chown zabbix:zabbix /run/zabbix/
[root@localhost zabbix-7.0.5]# chmod 755 /run/zabbix/
[root@localhost zabbix-7.0.5]# ls -la /run/zabbix/
合計 0
drwxr-xr-x  2 zabbix zabbix  40 10月 30 23:41 .
drwxr-xr-x 27 root   root   760 10月 30 23:41 ..
[root@localhost zabbix-7.0.5]#


[root@localhost zabbix-7.0.5]# mkdir -p /var/log/zabbix/
[root@localhost zabbix-7.0.5]# chown zabbix:zabbix /var/log/zabbix/
[root@localhost zabbix-7.0.5]# chmod 755 /var/log/zabbix/
[root@localhost zabbix-7.0.5]# ls -la /var/log/zabbix/
合計 4
drwxr-xr-x  2 zabbix zabbix    6 10月 30 23:43 .
drwxr-xr-x. 8 root   root   4096 10月 30 23:43 ..
[root@localhost zabbix-7.0.5]#
```

## Zabbix Agent 起動
いよいよ「Zabbix Agent」を起動し、正常に動作できているか確認する。

```terminal:Zabbix Agent Start
[root@localhost zabbix-7.0.5]# zabbix_agentd

[root@localhost zabbix-7.0.5]# ps aux | grep zabbix_agentd
zabbix     50266  0.0  0.0  42908  2672 ?        S    23:46   0:00 zabbix_agentd
zabbix     50267  0.0  0.0  42908  2492 ?        S    23:46   0:00 zabbix_agentd: collector [idle 1 sec]
zabbix     50268  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix     50269  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #2 [waiting for connection]
zabbix     50270  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #3 [waiting for connection]
zabbix     50271  0.0  0.1  42976  2944 ?        S    23:46   0:00 zabbix_agentd: listener #4 [waiting for connection]
zabbix     50272  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #5 [waiting for connection]
zabbix     50273  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #6 [waiting for connection]
zabbix     50274  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #7 [waiting for connection]
zabbix     50275  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #8 [waiting for connection]
zabbix     50276  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #9 [waiting for connection]
zabbix     50277  0.0  0.0  42908  2628 ?        S    23:46   0:00 zabbix_agentd: listener #10 [waiting for connection]
zabbix     50278  0.0  0.1  45252  4620 ?        S    23:46   0:00 zabbix_agentd: active checks #1 [idle 1 sec]
root       50298  0.0  0.0  10388  1140 pts/1    S+   23:47   0:00 grep --color=auto zabbix_agentd
[root@localhost zabbix-7.0.5]#
```

ZABBIXコンソールを確認すると、対象サーバー上でエージェントが起動していることが確認できる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/f1dcb54e-c54c-e3f6-07fb-3be884ad4ae9.png)

また、監視ログも正常にZABBIXサーバーに連携できていることが分かる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2727351/d8495329-5732-11f2-62be-5233bf5737e4.png)

## Zabbix Agent 用のサービス作成
ソースコードからZabbix Agent をインストールすると、サービスは自動生成されない。なので手動で作成してあげる必要がある。

```terminal:Zabbix Agent Service Create
[root@localhost /]# vi /etc/systemd/system/zabbix-agent.service


[root@localhost /]# cat /etc/systemd/system/zabbix-agent.service
[Unit]
# サービスの説明
Description=Zabbix Agent

# syslogサービスの起動後に起動
After=syslog.target

# ネットワークが利用可能になった後に起動
After=network.target


[Service]
# 環境変数として設定ファイルのパスを指定
Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"

# 追加の環境変数を設定するファイル（存在しなくてもエラーにはしない）
EnvironmentFile=-/etc/sysconfig/zabbix-agent

# プロセスがフォーク(分身)してデーモン化するサービス
Type=forking

# 失敗時にサービスを再起動
Restart=on-failure

# プロセスIDファイルの場所を指定
PIDFile=/run/zabbix/zabbix_agentd.pid

# コントロールグループ全体を停止
KillMode=control-group

# Zabbixエージェントを指定の設定ファイルで起動
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE

# サービスの停止時にSIGTERMシグナルで停止
ExecStop=/bin/kill -SIGTERM $MAINPID

# 再起動するまでの待機時間を10秒に設定
RestartSec=10s

# サービスを実行するユーザーとグループ
User=zabbix
Group=zabbix


[Install]
# マルチユーザー環境で起動するように設定
WantedBy=multi-user.target
[root@localhost /]#


# systemdにユニットファイルの新規作成や変更を認識させ、設定を再読み込みさせるために必要なコマンド
[root@localhost /]# systemctl daemon-reload
```

作成したZabbix Agent サービスが問題なく起動することを確認する。
```terminal:
# サービス自動起動有効化
[root@localhost /]# systemctl enable zabbix-agent
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /etc/systemd/system/zabbix-agent.service.
[root@localhost /]#


# サービス起動
[root@localhost /]# systemctl start zabbix-agent


# ステータス確認
[root@localhost /]# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/etc/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2024-10-31 00:43:37 JST; 43s ago
  Process: 50894 ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
 Main PID: 50896 (zabbix_agentd)
    Tasks: 13 (limit: 16914)
   Memory: 5.8M
   CGroup: /system.slice/zabbix-agent.service
           tq50896 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
           tq50897 /usr/local/sbin/zabbix_agentd: collector [idle 1 sec]
           tq50898 /usr/local/sbin/zabbix_agentd: listener #1 [waiting for connection]
           tq50899 /usr/local/sbin/zabbix_agentd: listener #2 [waiting for connection]
           tq50900 /usr/local/sbin/zabbix_agentd: listener #3 [waiting for connection]
           tq50901 /usr/local/sbin/zabbix_agentd: listener #4 [waiting for connection]
           tq50902 /usr/local/sbin/zabbix_agentd: listener #5 [waiting for connection]
           tq50903 /usr/local/sbin/zabbix_agentd: listener #6 [waiting for connection]
           tq50904 /usr/local/sbin/zabbix_agentd: listener #7 [waiting for connection]
           tq50905 /usr/local/sbin/zabbix_agentd: listener #8 [waiting for connection]
           tq50906 /usr/local/sbin/zabbix_agentd: listener #9 [waiting for connection]
           tq50907 /usr/local/sbin/zabbix_agentd: listener #10 [waiting for connection]
           mq50908 /usr/local/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

10月 31 00:43:37 localhost.localdomain systemd[1]: Starting Zabbix Agent...
10月 31 00:43:37 localhost.localdomain systemd[1]: Started Zabbix Agent.
[root@localhost /]# 
```

:::note warn
こちらの対応も必要：
[【ZABBIX7.0LTS】Linux系Zabbix Agent が起動しない。](https://qiita.com/ponponpoko/items/10c378fc5ec356e25823)
:::