Zabbix5.0から6.0へのアップグレード(CentOS8, Postgresql)

# 構成
- zabbix : 5.0
- os    : CentOS 8
- db    : PostgreSQL 12.15
- websv : nginx

# 手順

半ば自分用のメモです。
DBのバックアップは記載していないので適宜実施してください。
わりと各所にガバがあります。
## Zabbixの停止
`sudo systemctl stop zabbix-server zabbix-agent nginx php-fpm`

## PostgreSQL12の停止
`sudo systemctl stop postgresql-12`

## PostgreSQL14のインストール
Zabbix6.0はpostgresql-12をサポートしていないので13以上に更新する必要があります。
14でインストールしようとしていますが最終的に13をインストールします。
下記サイト参照
[PostgreSQL14を5手順でインストールする方法](http://kakedashi-xx.com:25214/index.php/2021/10/01/post-3361/)
### リポジトリ追加
```bash
[admin@hostname ~]$ wget http://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
--2023-05-17 23:31:13--  http://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
download.postgresql.org (download.postgresql.org) をDNSに問いあわせています... 72.32.157.246, 217.196.149.55, 147.75.85.69, ...
download.postgresql.org (download.postgresql.org)|72.32.157.246|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 8780 (8.6K) [application/x-redhat-package-manager]
`pgdg-redhat-repo-latest.noarch.rpm' に保存中

pgdg-redhat-repo-latest.noarch.rpm         100%[=====================================================================================>]   8.57K  --.-KB/s 時間 0s       

2023-05-17 23:31:13 (79.9 MB/s) - `pgdg-redhat-repo-latest.noarch.rpm' へ保存完了 [8780/8780]

```
```bash
[admin@hostname ~]$ sudo rpm -Uvh --nodeps pgdg-redhat-repo-latest.noarch.rpm
[sudo] admin のパスワード:
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
	パッケージ pgdg-redhat-repo-42.0-32.noarch は既にインストールされています。
	ファイル /etc/yum.repos.d/pgdg-redhat-all.repo (パッケージ pgdg-redhat-repo-42.0-32.noarch から) は、パッケージ pgdg-redhat-repo-42.0-32.noarch からのファイルと競合しています。
```
```bash
[admin@hostname ~]$ ls /etc/yum.repos.d/pgdg-redhat-all.repo
/etc/yum.repos.d/pgdg-redhat-all.repo
```
### リポジトリ情報修正
```bash
[admin@hostname ~]$ sudo vi /etc/yum.repos.d/pgdg-redhat-all.repo
```
↓を追加
```repo
[pgdg14]
name=PostgreSQL 14 for RHEL/CentOS $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-7-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
repo_gpgcheck = 1
```
### PostgreSQL14のインストール
```bash
[admin@hostname ~]$ sudo yum install postgresql14-server
PostgreSQL common RPMs for RHEL/CentOS 8 - x86_64                                                                                         84  B/s | 195  B     00:02    
PostgreSQL common RPMs for RHEL/CentOS 8 - x86_64                                                                                        130 kB/s | 620 kB     00:04    
PostgreSQL 14 for RHEL/CentOS 8 - x86_64                                                                                                  70  B/s | 198  B     00:02    
PostgreSQL 14 for RHEL/CentOS 8 - x86_64                                                                                                 1.6 MB/s | 1.7 kB     00:00    
GPG 鍵 0x442DF0F8 をインポート中:
 Userid     : "PostgreSQL RPM Building Project <pgsql-pkg-yum@postgresql.org>"
 Fingerprint: 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG
これでよろしいですか? [y/N]: y
PostgreSQL 14 for RHEL/CentOS 8 - x86_64                                                                                                  93 kB/s | 411 kB     00:04    
PostgreSQL 13 for RHEL/CentOS 8 - x86_64                                                                                                  84  B/s | 195  B     00:02    
PostgreSQL 13 for RHEL/CentOS 8 - x86_64                                                                                                 150 kB/s | 863 kB     00:05    
PostgreSQL 12 for RHEL/CentOS 8 - x86_64                                                                                                  81  B/s | 195  B     00:02    
PostgreSQL 12 for RHEL/CentOS 8 - x86_64                                                                                                 150 kB/s | 995 kB     00:06    
メタデータの期限切れの最終確認: 0:00:01 時間前の 2023年05月17日 23時43分33秒 に実施しました。
エラー: 
 問題: ジョブの最良アップデート候補をインストールできません
  - libicui18n.so.50()(64bit) が提供されません postgresql14-server-14.8-1PGDG.rhel7.x86_64 に必要です
  - libicuuc.so.50()(64bit) が提供されません postgresql14-server-14.8-1PGDG.rhel7.x86_64 に必要です
(インストール不可のパッケージをスキップするには、'--skip-broken' を追加してみてください または、'--nobest' を追加して、最適候補のパッケージのみを使用しないでください)
[admin@hostname ~]$ sudo yum install postgresql13-server
メタデータの期限切れの最終確認: 0:00:30 時間前の 2023年05月17日 23時43分33秒 に実施しました。
依存関係が解決しました。
=========================================================================================================================================================================
 パッケージ                                     アーキテクチャー                  バージョン                                     リポジトリー                      サイズ
=========================================================================================================================================================================
インストール:
 postgresql13-server                            x86_64                            13.11-2PGDG.rhel8                              pgdg13                            5.4 M
依存関係のインストール:
 postgresql13                                   x86_64                            13.11-2PGDG.rhel8                              pgdg13                            1.5 M
 postgresql13-libs                              x86_64                            13.11-2PGDG.rhel8                              pgdg13                            418 k

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

ダウンロードサイズの合計: 7.3 M
インストール後のサイズ: 31 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/3): postgresql13-libs-13.11-2PGDG.rhel8.x86_64.rpm                                                                                    180 kB/s | 418 kB     00:02    
(2/3): postgresql13-13.11-2PGDG.rhel8.x86_64.rpm                                                                                         491 kB/s | 1.5 MB     00:03    
(3/3): postgresql13-server-13.11-2PGDG.rhel8.x86_64.rpm                                                                                  564 kB/s | 5.4 MB     00:09    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                     756 kB/s | 7.3 MB     00:09     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                 1/1 
  インストール中   : postgresql13-libs-13.11-2PGDG.rhel8.x86_64                                                                                                      1/3 
  scriptletの実行中: postgresql13-libs-13.11-2PGDG.rhel8.x86_64                                                                                                      1/3 
  インストール中   : postgresql13-13.11-2PGDG.rhel8.x86_64                                                                                                           2/3 
  scriptletの実行中: postgresql13-13.11-2PGDG.rhel8.x86_64                                                                                                           2/3 
  scriptletの実行中: postgresql13-server-13.11-2PGDG.rhel8.x86_64                                                                                                    3/3 
  インストール中   : postgresql13-server-13.11-2PGDG.rhel8.x86_64                                                                                                    3/3 
  scriptletの実行中: postgresql13-server-13.11-2PGDG.rhel8.x86_64                                                                                                    3/3 
  検証             : postgresql13-13.11-2PGDG.rhel8.x86_64                                                                                                           1/3 
  検証             : postgresql13-libs-13.11-2PGDG.rhel8.x86_64                                                                                                      2/3 
  検証             : postgresql13-server-13.11-2PGDG.rhel8.x86_64                                                                                                    3/3 

インストール済み:
  postgresql13-13.11-2PGDG.rhel8.x86_64               postgresql13-libs-13.11-2PGDG.rhel8.x86_64               postgresql13-server-13.11-2PGDG.rhel8.x86_64              

完了しました!
[admin@hostname ~]$ 
```
怒られたので13でいいやとなった（おい
ここからは[ココ](http://kakedashi-xx.com:25214/index.php/2021/11/04/post-3554/)を参照。

### PostgreSQL13の初期設定
```bash
[admin@hostname ~]$ su - postgres -c '/usr/pgsql-13/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'
パスワード:
su: 認証失敗
[admin@hostname ~]$ su - postgres -c '/usr/pgsql-13/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'
パスワード:
su: 認証失敗
[admin@hostname ~]$ su - postgres -c '/usr/pgsql-13/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'
パスワード:
su: 認証失敗

```
postgresユーザのパスワード忘れた
```bash
[admin@hostname ~]$ sudo su - postgres -c '/usr/pgsql-13/bin/initdb -E UTF8 --locale=C -A scram-sha-256 -W'
[sudo] admin のパスワード:
データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。

データベースクラスタはロケール"C"で初期化されます。
デフォルトのテキスト検索構成は english に設定されます。

データベージのチェックサムは無効です。

新しいスーパユーザのパスワードを入力してください:
再入力してください:

ディレクトリ/var/lib/pgsql/13/dataの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 100
デフォルトのshared_buffersを選択しています ... 128MB
デフォルトの時間帯を選択しています ... Asia/Tokyo
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok

成功しました。以下のようにしてデータベースサーバを起動することができます:

    /usr/pgsql-13/bin/pg_ctl -D /var/lib/pgsql/13/data -l ログファイル start

```
### PostgreSQL13の設定変更
```bash
[admin@hostname ~]$ sudo vi /var/lib/pgsql/13/data/pg_hba.conf
```

```bash
[admin@hostname ~]$ su - postgres
パスワード:
最終ログイン: 2023/05/18 (木) 00:00:09 JST日時 pts/0
最後の失敗ログイン: 2023/05/18 (木) 00:12:01 JST日時 pts/0
最後の正しいログインの後に 2 回の失敗ログインの試行があります
[postgres@hostname ~]$ /usr/pgsql-13/bin/pg_upgrade -d /var/lib/pgsql/12/data -D /var/lib/pgsql/13/data -b /usr/pgsql-12/bin -B /usr/pgsql-13/bin
整合性チェックを実行しています。
-----------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for system-defined composite types in user tables  ok
Checking for reg* data types in user tables                 ok
Checking for contrib/isn with bigint-passing mismatch       ok
Creating dump of global objects                             ok
Creating dump of database schemas
                                                            ok
Checking for presence of required libraries                 ok
Checking database user is the install user                  ok
Checking for prepared transactions                          ok
Checking for new cluster tablespace directories             ok

この後pg_upgradeが失敗した場合は、続ける前に新しいクラスタを
initdbで再作成する必要があります。

アップグレードを実行しています。
------------------
Analyzing all rows in the new cluster                       ok
Freezing all rows in the new cluster                        ok
Deleting files from new pg_xact                             ok
Copying old pg_xact to new server                           ok
Setting oldest XID for new cluster                          ok
Setting next transaction ID and epoch for new cluster       ok
Deleting files from new pg_multixact/offsets                ok
Copying old pg_multixact/offsets to new server              ok
Deleting files from new pg_multixact/members                ok
Copying old pg_multixact/members to new server              ok
Setting next multixact ID and offset for new cluster        ok
Resetting WAL archives                                      ok
Setting frozenxid and minmxid counters in new cluster       ok
Restoring global objects in the new cluster                 ok
Restoring database schemas in the new cluster
                                                            ok
ユーザリレーションのファイルをコピーしています
                                                            ok
Setting next OID for new cluster                            ok
Sync data directory to disk                                 ok
Creating script to analyze new cluster                      ok
Creating script to delete old cluster                       ok
Checking for extension updates                              ok

アップグレードが完了しました
----------------
オプティマイザーの統計は、pg_upgrade では転送されません。そのため
新サーバーを起動した後、./analyze_new_cluster.sh を動かすことを検討してください。


このスクリプトを実行すると、旧クラスタのデータファイル ./delete_old_cluster.shが削除されます:

[postgres@hostname ~]$ echo $?
0
[postgres@hostname ~]$ 
```
DBアップグレード完了
### PostgreSQL13の起動
```bash
[postgres@hostname ~]$ exit
ログアウト
[admin@hostname ~]$ sudo systemctl start postgresql-13
```
```bash
[admin@hostname ~]$ su - postgres
パスワード:
最終ログイン: 2023/05/18 (木) 00:13:26 JST日時 pts/0
[postgres@hostname ~]$ ls
12  13  analyze_new_cluster.sh  delete_old_cluster.sh
[postgres@hostname ~]$ pwd
/var/lib/pgsql
[postgres@hostname ~]$ ./analyze_new_cluster.sh 
This script will generate minimal optimizer statistics rapidly
so your system is usable, and then gather statistics twice more
with increasing accuracy.  When it is done, your system will
have the default level of optimizer statistics.

If you have used ALTER TABLE to modify the statistics target for
any tables, you might want to remove them and restore them after
running this script because they will delay fast statistics generation.

If you would like default statistics as quickly as possible, cancel
this script and run:
    "/usr/pgsql-13/bin/vacuumdb" --all --analyze-only

vacuumdb: データベース"postgres"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"template1"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"zabbix"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"postgres"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"template1"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"zabbix"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"postgres"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"template1"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"zabbix"の処理中です: 最適化のための情報をデフォルト数(全て)生成します

Done
[postgres@hostname ~]$ echo $?
0
```
### データの移行確認
```bash
[postgres@hostname ~]$ psql
psql (13.11)
"help"でヘルプを表示します。

postgres=# \l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限      
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 | 
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | postgres=CTc/postgres+
           |          |                  |          |                   | =c/postgres
 zabbix    | zabbix   | UTF8             | C        | C                 | 
(4 行)

postgres=# 
postgres=# \q
[postgres@hostname ~]$ exit
ログアウト

```

## Zabbix6.0のインストール
```bash
[admin@hostname ~]$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/$(rpm -E %{rhel})/x86_64/zabbix-release-6.0-4.el$(rpm -E %{rhel}).noarch.rpm
[sudo] admin のパスワード:
https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm を取得中
Verifying...                          ################################# [100%]
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:zabbix-release-6.0-4.el8         ################################# [ 50%]
整理中 / 削除中...
   2:zabbix-release-5.0-1.el8         ################################# [100%]
[admin@hostname ~]$ dnf clean all
60 ファイルが削除されました
```
#### インストールするパッケージ
いらないの入ってそう
- zabbix-server-pgsql
- zabbix-web-pgsql
- zabbix-web-japanese
- zabbix-apache-conf
- zabbix-sql-scripts
- zabbix-selinux-policy
- zabbix-agent
```bash
[admin@hostname ~]$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
Zabbix Official Repository - x86_64                                                                                                      171 kB/s | 239 kB     00:01    
Zabbix Official Repository (non-supported) - x86_64                                                                                      1.1 kB/s | 1.2 kB     00:01    
Zabbix Official Repository (Agent2 Plugins) - x86_64                                                                                     1.6 kB/s | 1.7 kB     00:01    
パッケージ zabbix-server-pgsql-5.0.34-1.el8.x86_64 は既にインストールされています。
パッケージ zabbix-web-pgsql-5.0.34-1.el8.noarch は既にインストールされています。
パッケージ zabbix-web-japanese-5.0.34-1.el8.noarch は既にインストールされています。
パッケージ zabbix-agent-5.0.34-1.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
=========================================================================================================================================================================
 パッケージ                                 アーキテクチャー            バージョン                                                  リポジトリー                   サイズ
=========================================================================================================================================================================
インストール:
 zabbix-apache-conf                         noarch                      6.0.17-release1.el8                                         zabbix                          25 k
 zabbix-selinux-policy                      x86_64                      6.0.17-release1.el8                                         zabbix                         297 k
 zabbix-sql-scripts                         noarch                      6.0.17-release1.el8                                         zabbix                         7.3 M
アップグレード:
 zabbix-agent                               x86_64                      6.0.17-release1.el8                                         zabbix                         556 k
 zabbix-nginx-conf                          noarch                      6.0.17-release1.el8                                         zabbix                          26 k
 zabbix-server-pgsql                        x86_64                      6.0.17-release1.el8                                         zabbix                         1.7 M
 zabbix-web                                 noarch                      6.0.17-release1.el8                                         zabbix                         8.2 M
 zabbix-web-deps                            noarch                      6.0.17-release1.el8                                         zabbix                          25 k
 zabbix-web-japanese                        noarch                      6.0.17-release1.el8                                         zabbix                          25 k
 zabbix-web-pgsql                           noarch                      6.0.17-release1.el8                                         zabbix                          24 k
依存関係のインストール:
 apr                                        x86_64                      1.6.3-12.el8                                                appstream                      129 k
 apr-util                                   x86_64                      1.6.1-6.el8                                                 appstream                      105 k
 centos-logos-httpd                         noarch                      85.8-2.el8                                                  baseos                          75 k
 httpd                                      x86_64                      2.4.37-43.module_el8.5.0+1022+b541f3b1                      appstream                      1.4 M
 httpd-tools                                x86_64                      2.4.37-43.module_el8.5.0+1022+b541f3b1                      appstream                      107 k
 mailcap                                    noarch                      2.1.48-3.el8                                                baseos                          39 k
 mod_http2                                  x86_64                      1.15.7-3.module_el8.4.0+778+c970deab                        appstream                      154 k
弱い依存関係のインストール:
 apr-util-bdb                               x86_64                      1.6.1-6.el8                                                 appstream                       25 k
 apr-util-openssl                           x86_64                      1.6.1-6.el8                                                 appstream                       27 k

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

ダウンロードサイズの合計: 20 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/19): apr-util-bdb-1.6.1-6.el8.x86_64.rpm                                                                                              156 kB/s |  25 kB     00:00    
(2/19): apr-util-1.6.1-6.el8.x86_64.rpm                                                                                                  652 kB/s | 105 kB     00:00    
(3/19): apr-1.6.3-12.el8.x86_64.rpm                                                                                                      500 kB/s | 129 kB     00:00    
(4/19): apr-util-openssl-1.6.1-6.el8.x86_64.rpm                                                                                          173 kB/s |  27 kB     00:00    
(5/19): mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64.rpm                                                                        3.4 MB/s | 154 kB     00:00    
(6/19): centos-logos-httpd-85.8-2.el8.noarch.rpm                                                                                         2.3 MB/s |  75 kB     00:00    
(7/19): httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64.rpm                                                                          3.7 MB/s | 1.4 MB     00:00    
(8/19): mailcap-2.1.48-3.el8.noarch.rpm                                                                                                  173 kB/s |  39 kB     00:00    
(9/19): httpd-tools-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64.rpm                                                                    255 kB/s | 107 kB     00:00    
(10/19): zabbix-apache-conf-6.0.17-release1.el8.noarch.rpm                                                                                39 kB/s |  25 kB     00:00    
(11/19): zabbix-selinux-policy-6.0.17-release1.el8.x86_64.rpm                                                                            305 kB/s | 297 kB     00:00    
(12/19): zabbix-nginx-conf-6.0.17-release1.el8.noarch.rpm                                                                                211 kB/s |  26 kB     00:00    
(13/19): zabbix-agent-6.0.17-release1.el8.x86_64.rpm                                                                                     931 kB/s | 556 kB     00:00    
(14/19): zabbix-server-pgsql-6.0.17-release1.el8.x86_64.rpm                                                                              2.8 MB/s | 1.7 MB     00:00    
(15/19): zabbix-web-deps-6.0.17-release1.el8.noarch.rpm                                                                                  208 kB/s |  25 kB     00:00    
(16/19): zabbix-web-japanese-6.0.17-release1.el8.noarch.rpm                                                                              205 kB/s |  25 kB     00:00    
(17/19): zabbix-web-6.0.17-release1.el8.noarch.rpm                                                                                       8.4 MB/s | 8.2 MB     00:00    
(18/19): zabbix-web-pgsql-6.0.17-release1.el8.noarch.rpm                                                                                 133 kB/s |  24 kB     00:00    
(19/19): zabbix-sql-scripts-6.0.17-release1.el8.noarch.rpm                                                                               3.4 MB/s | 7.3 MB     00:02    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                     5.4 MB/s |  20 MB     00:03     
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                 1/1 
  scriptletの実行中: zabbix-web-6.0.17-release1.el8.noarch                                                                                                           1/1 
  アップグレード中 : zabbix-web-6.0.17-release1.el8.noarch                                                                                                          1/26 
  scriptletの実行中: zabbix-web-6.0.17-release1.el8.noarch                                                                                                          1/26 
  アップグレード中 : zabbix-web-deps-6.0.17-release1.el8.noarch                                                                                                     2/26 
警告: /etc/php-fpm.d/zabbix.conf は /etc/php-fpm.d/zabbix.conf.rpmnew として作成されました。

  アップグレード中 : zabbix-web-pgsql-6.0.17-release1.el8.noarch                                                                                                    3/26 
  インストール中   : apr-1.6.3-12.el8.x86_64                                                                                                                        4/26 
  scriptletの実行中: apr-1.6.3-12.el8.x86_64                                                                                                                        4/26 
  インストール中   : apr-util-bdb-1.6.1-6.el8.x86_64                                                                                                                5/26 
  インストール中   : apr-util-openssl-1.6.1-6.el8.x86_64                                                                                                            6/26 
  インストール中   : apr-util-1.6.1-6.el8.x86_64                                                                                                                    7/26 
  scriptletの実行中: apr-util-1.6.1-6.el8.x86_64                                                                                                                    7/26 
  インストール中   : httpd-tools-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64                                                                                      8/26 
  インストール中   : mailcap-2.1.48-3.el8.noarch                                                                                                                    9/26 
  インストール中   : centos-logos-httpd-85.8-2.el8.noarch                                                                                                          10/26 
  インストール中   : mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64                                                                                         11/26 
  インストール中   : httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64                                                                                           12/26 
  scriptletの実行中: httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64                                                                                           12/26 
  インストール中   : zabbix-apache-conf-6.0.17-release1.el8.noarch                                                                                                 13/26 
  scriptletの実行中: zabbix-apache-conf-6.0.17-release1.el8.noarch                                                                                                 13/26 
  アップグレード中 : zabbix-nginx-conf-6.0.17-release1.el8.noarch                                                                                                  14/26 
警告: /etc/nginx/conf.d/zabbix.conf は /etc/nginx/conf.d/zabbix.conf.rpmnew として作成されました。

  scriptletの実行中: zabbix-nginx-conf-6.0.17-release1.el8.noarch                                                                                                  14/26 
  アップグレード中 : zabbix-web-japanese-6.0.17-release1.el8.noarch                                                                                                15/26 
  scriptletの実行中: zabbix-web-japanese-6.0.17-release1.el8.noarch                                                                                                15/26 
  scriptletの実行中: zabbix-server-pgsql-6.0.17-release1.el8.x86_64                                                                                                16/26 
  アップグレード中 : zabbix-server-pgsql-6.0.17-release1.el8.x86_64                                                                                                16/26 
警告: /etc/zabbix/zabbix_server.conf は /etc/zabbix/zabbix_server.conf.rpmnew として作成されました。

  scriptletの実行中: zabbix-server-pgsql-6.0.17-release1.el8.x86_64                                                                                                16/26 
  scriptletの実行中: zabbix-agent-6.0.17-release1.el8.x86_64                                                                                                       17/26 
  アップグレード中 : zabbix-agent-6.0.17-release1.el8.x86_64                                                                                                       17/26 
警告: /etc/zabbix/zabbix_agentd.conf は /etc/zabbix/zabbix_agentd.conf.rpmnew として作成されました。

  scriptletの実行中: zabbix-agent-6.0.17-release1.el8.x86_64                                                                                                       17/26 
  インストール中   : zabbix-sql-scripts-6.0.17-release1.el8.noarch                                                                                                 18/26 
  インストール中   : zabbix-selinux-policy-6.0.17-release1.el8.x86_64                                                                                              19/26 
  scriptletの実行中: zabbix-selinux-policy-6.0.17-release1.el8.x86_64                                                                                              19/26 
  scriptletの実行中: zabbix-web-japanese-5.0.34-1.el8.noarch                                                                                                       20/26 
  整理             : zabbix-web-japanese-5.0.34-1.el8.noarch                                                                                                       20/26 
  整理             : zabbix-nginx-conf-5.0.34-1.el8.noarch                                                                                                         21/26 
  整理             : zabbix-web-deps-5.0.34-1.el8.x86_64                                                                                                           22/26 
  整理             : zabbix-web-pgsql-5.0.34-1.el8.noarch                                                                                                          23/26 
  scriptletの実行中: zabbix-web-5.0.34-1.el8.noarch                                                                                                                24/26 
  整理             : zabbix-web-5.0.34-1.el8.noarch                                                                                                                24/26 
  scriptletの実行中: zabbix-server-pgsql-5.0.34-1.el8.x86_64                                                                                                       25/26 
  整理             : zabbix-server-pgsql-5.0.34-1.el8.x86_64                                                                                                       25/26 
  scriptletの実行中: zabbix-server-pgsql-5.0.34-1.el8.x86_64                                                                                                       25/26 
  scriptletの実行中: zabbix-agent-5.0.34-1.el8.x86_64                                                                                                              26/26 
  整理             : zabbix-agent-5.0.34-1.el8.x86_64                                                                                                              26/26 
  scriptletの実行中: zabbix-agent-5.0.34-1.el8.x86_64                                                                                                              26/26 
  scriptletの実行中: httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64                                                                                           26/26 
  scriptletの実行中: zabbix-agent-6.0.17-release1.el8.x86_64                                                                                                       26/26 
  scriptletの実行中: zabbix-agent-5.0.34-1.el8.x86_64                                                                                                              26/26 
  検証             : apr-1.6.3-12.el8.x86_64                                                                                                                        1/26 
  検証             : apr-util-1.6.1-6.el8.x86_64                                                                                                                    2/26 
  検証             : apr-util-bdb-1.6.1-6.el8.x86_64                                                                                                                3/26 
  検証             : apr-util-openssl-1.6.1-6.el8.x86_64                                                                                                            4/26 
  検証             : httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64                                                                                            5/26 
  検証             : httpd-tools-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64                                                                                      6/26 
  検証             : mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64                                                                                          7/26 
  検証             : centos-logos-httpd-85.8-2.el8.noarch                                                                                                           8/26 
  検証             : mailcap-2.1.48-3.el8.noarch                                                                                                                    9/26 
  検証             : zabbix-apache-conf-6.0.17-release1.el8.noarch                                                                                                 10/26 
  検証             : zabbix-selinux-policy-6.0.17-release1.el8.x86_64                                                                                              11/26 
  検証             : zabbix-sql-scripts-6.0.17-release1.el8.noarch                                                                                                 12/26 
  検証             : zabbix-agent-6.0.17-release1.el8.x86_64                                                                                                       13/26 
  検証             : zabbix-agent-5.0.34-1.el8.x86_64                                                                                                              14/26 
  検証             : zabbix-nginx-conf-6.0.17-release1.el8.noarch                                                                                                  15/26 
  検証             : zabbix-nginx-conf-5.0.34-1.el8.noarch                                                                                                         16/26 
  検証             : zabbix-server-pgsql-6.0.17-release1.el8.x86_64                                                                                                17/26 
  検証             : zabbix-server-pgsql-5.0.34-1.el8.x86_64                                                                                                       18/26 
  検証             : zabbix-web-6.0.17-release1.el8.noarch                                                                                                         19/26 
  検証             : zabbix-web-5.0.34-1.el8.noarch                                                                                                                20/26 
  検証             : zabbix-web-deps-6.0.17-release1.el8.noarch                                                                                                    21/26 
  検証             : zabbix-web-deps-5.0.34-1.el8.x86_64                                                                                                           22/26 
  検証             : zabbix-web-japanese-6.0.17-release1.el8.noarch                                                                                                23/26 
  検証             : zabbix-web-japanese-5.0.34-1.el8.noarch                                                                                                       24/26 
  検証             : zabbix-web-pgsql-6.0.17-release1.el8.noarch                                                                                                   25/26 
  検証             : zabbix-web-pgsql-5.0.34-1.el8.noarch                                                                                                          26/26 

アップグレード済み:
  zabbix-agent-6.0.17-release1.el8.x86_64               zabbix-nginx-conf-6.0.17-release1.el8.noarch           zabbix-server-pgsql-6.0.17-release1.el8.x86_64          
  zabbix-web-6.0.17-release1.el8.noarch                 zabbix-web-deps-6.0.17-release1.el8.noarch             zabbix-web-japanese-6.0.17-release1.el8.noarch          
  zabbix-web-pgsql-6.0.17-release1.el8.noarch          
インストール済み:
  apr-1.6.3-12.el8.x86_64                                     apr-util-1.6.1-6.el8.x86_64                        apr-util-bdb-1.6.1-6.el8.x86_64                        
  apr-util-openssl-1.6.1-6.el8.x86_64                         centos-logos-httpd-85.8-2.el8.noarch               httpd-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64    
  httpd-tools-2.4.37-43.module_el8.5.0+1022+b541f3b1.x86_64   mailcap-2.1.48-3.el8.noarch                        mod_http2-1.15.7-3.module_el8.4.0+778+c970deab.x86_64  
  zabbix-apache-conf-6.0.17-release1.el8.noarch               zabbix-selinux-policy-6.0.17-release1.el8.x86_64   zabbix-sql-scripts-6.0.17-release1.el8.noarch          

完了しました!

[admin@hostname ~]$ dnf list --installed | grep zabbix
zabbix-agent.x86_64                   6.0.17-release1.el8                    @zabbix      
zabbix-apache-conf.noarch             6.0.17-release1.el8                    @zabbix      
zabbix-get.x86_64                     5.0.34-1.el8                           @zabbix      
zabbix-nginx-conf.noarch              6.0.17-release1.el8                    @zabbix      
zabbix-release.noarch                 6.0-4.el8                              @System      
zabbix-selinux-policy.x86_64          6.0.17-release1.el8                    @zabbix      
zabbix-server-pgsql.x86_64            6.0.17-release1.el8                    @zabbix      
zabbix-sql-scripts.noarch             6.0.17-release1.el8                    @zabbix      
zabbix-web.noarch                     6.0.17-release1.el8                    @zabbix      
zabbix-web-deps.noarch                6.0.17-release1.el8                    @zabbix      
zabbix-web-japanese.noarch            6.0.17-release1.el8                    @zabbix      
zabbix-web-pgsql.noarch               6.0.17-release1.el8                    @zabbix 
```

## 各サービスの起動
```bash
[admin@hostname ~]$ sudo systemctl start zabbix-server zabbix-agent nginx php-fpm
[admin@hostname ~]$ zabbix_server -V
zabbix_server (Zabbix) 6.0.17
Revision c81d82859a8 24 April 2023, compilation time: Apr 24 2023 11:31:21

Copyright (C) 2023 Zabbix SIA
License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/>.
This is free software: you are free to change and redistribute it according to
the license. There is NO WARRANTY, to the extent permitted by law.

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit (http://www.openssl.org/).

Compiled with OpenSSL 1.1.1k  FIPS 25 Mar 2021
Running with OpenSSL 1.1.1k  FIPS 25 Mar 2021

```

↓　↓　↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242165/b3b90d44-8a45-d124-4fde-3386d26d1ca5.png)
↑　↑　↑

やったぜ

## DBの修正
主キーは自動で追加してくれないので手動で修正
修正前にDBのバックアップ

### Zabbixサーバの停止
```bash
[admin@hostname ~]$ sudo systemctl stop zabbix-server zabbix-agent nginx php-fpm
```

### テーブルのアップブレード
```bash
[admin@hostname ~]$ sudo -u zabbix psql zabbix < /usr/share/zabbix-sql-scripts/postgresql/history_pk_prepare.sql
[sudo] admin のパスワード:
could not change directory to "/home/admin": 許可がありません
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
CREATE TABLE
[admin@hostname ~]$ su - postgres
パスワード:
[postgres@hostname ~]$ psql
psql (13.11)
"help"でヘルプを表示します。
```
```sql
postgres=# \l
                                        データベース一覧
   名前    |  所有者  | エンコーディング | 照合順序 | Ctype(変換演算子) |     アクセス権限      
-----------+----------+------------------+----------+-------------------+-----------------------
 postgres  | postgres | UTF8             | C        | C                 | 
 template0 | postgres | UTF8             | C        | C                 | =c/postgres          +
           |          |                  |          |                   | postgres=CTc/postgres
 template1 | postgres | UTF8             | C        | C                 | postgres=CTc/postgres+
           |          |                  |          |                   | =c/postgres
 zabbix    | zabbix   | UTF8             | C        | C                 | 
(4 行)

postgres=# \c zabbix
データベース"zabbix"にユーザ"postgres"として接続しました。
zabbix=# \dt;
                     リレーション一覧
 スキーマ |            名前            |  タイプ  | 所有者 
----------+----------------------------+----------+--------
(略
 public   | history                    | テーブル | zabbix
 public   | history_log                | テーブル | zabbix
 public   | history_log_old            | テーブル | zabbix
 public   | history_old                | テーブル | zabbix
 public   | history_str                | テーブル | zabbix
 public   | history_str_old            | テーブル | zabbix
 public   | history_text               | テーブル | zabbix
 public   | history_text_old           | テーブル | zabbix
 public   | history_uint               | テーブル | zabbix
 public   | history_uint_old           | テーブル | zabbix
（略
(178 行)
```
history関連のテーブルが複製されている
```sql
zabbix=# \d history;
                           テーブル"public.history"
   列   |      タイプ      | 照合順序 | Null 値を許容 |      デフォルト       
--------+------------------+----------+---------------+-----------------------
 itemid | bigint           |          | not null      | 
 clock  | integer          |          | not null      | 0
 value  | double precision |          | not null      | '0'::double precision
 ns     | integer          |          | not null      | 0
インデックス:
    "history_pkey" PRIMARY KEY, btree (itemid, clock, ns)

zabbix=# \d history_old;
                         テーブル"public.history_old"
   列   |      タイプ      | 照合順序 | Null 値を許容 |      デフォルト       
--------+------------------+----------+---------------+-----------------------
 itemid | bigint           |          | not null      | 
 clock  | integer          |          | not null      | 0
 value  | double precision |          | not null      | '0'::double precision
 ns     | integer          |          | not null      | 0
インデックス:
    "history_1" btree (itemid, clock)
```
主キーありの新しいテーブルが作成されている。

### 新しいテーブルへデータを移行
```sql
zabbix=# INSERT INTO history SELECT * FROM history_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT 0 2122643
zabbix=# INSERT INTO history_uint SELECT * FROM history_uint_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT 0 4722293
zabbix=# INSERT INTO history_str SELECT * FROM history_str_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT 0 13668
zabbix=# INSERT INTO history_log SELECT * FROM history_log_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT 0 40771
zabbix=# INSERT INTO history_text SELECT * FROM history_text_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT 0 256362
zabbix=# \q
[postgres@hostname ~]$ exit
ログアウト
[admin@hostname ~]$ 
```
1年分くらいしかないのでそこまで時間はかからなかった。
_oldの付いた古いテーブルはねんのため消さずに残しておく。

## サービスの起動
```bash
[admin@hostname ~]$ sudo systemctl start zabbix-server zabbix-agent nginx php-fpm
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/242165/e894d285-4505-a700-0d9d-7b16d6876978.png)
ﾖｼｯ👉

# 本来やりたかったのはここから
- アラートをDiscordに飛ばす

https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/discord?at=release/6.4

は別記事にします。