プロジェクト

全般

プロフィール

その他問い合わせ #3810 » zabbbix_var1.3.txt

環境構築手順(2026-05-17版) - 匿名ユーザー, 2026/05/17 16:52

 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Zabbixコンテナの説明
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(1)zabbix-mysql
概要:
zabbix-serverがDB構造やデータを**流し込むための「箱(データベース環境)」**として事前に作成・起動しておく必要があります。

注意点:
DB内の各テーブルを作成(流し込み)するのはzabbix-server側の役割であり、mysqlコンテナ自体が自動でテーブルを
作るわけではありません。また、server側からのSQL実行や関数作成の許可設定を init.sql 等で事前定義しておかないと、serverからの
流し込み処理が失敗するため、権限設定を含めた初期化ファイルの作成には細心の注意が必要です。

(2)zabbix-server
概要:
起動時にzabbix-mysqlへ接続し、初期スキーマ(SQLデータ)を流し込む役割を担います。

注意点:
デフォルトの状態ではテーブル数が207個に留まり、LDAP連携用の設定が含まれません。
そのため、事前に /usr/share/doc/zabbix-server-mysql/create.sql.gz を取得・加工し、LDAP用テーブル等の定義を追加した
カスタム済みのSQLファイルを準備しておく必要があります。この「最強の設計図」を起動時に流し込むことで、管理画面での
手動設定を介さない、完全自動化された環境構築が可能となります。。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2.ダウンロードのURLの一覧の資材の理解
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
https://www.jobarranger.info/jpn/download/index.html

接続先の新規コンテナ(jobarg):
2-1.下記は今回のコンテナでの構築に必要であるため対象である
①Server
→ジョブを実行させる機能そのものの「司令塔(土台)」
https://www.jobarranger.info/download/7.2.1//Server/jobarranger-server-7.2.1-1.el9.x86_64.rpm

②LinuxAgent
→実際にコマンドを動かし、その結果(成功・失敗)をあなたに報告する「実務担当」
https://www.jobarranger.info/download/7.2.1//LinuxAgent/jobarranger-agentd-7.2.1-1.el9.x86_64.rpm

①Manager
→ジョブを実行させる機能そのものの「司令塔(土台)」
https://www.jobarranger.info/download/7.2.1//Manager/jobarranger-manager-7.2.1-1.el9.x86_64.rpm


既存コンテナ(zabbix-web):
Other (jobarranger-7.2.1.tar.gz):【必須】
→Zabbixの管理画面の中に「Jaz Manager」の画面を表示させるための本体だからです。
https://www.jobarranger.info/download/7.2.1//Other/jobarranger-7.2.1.tar.gz

────────────────────────────────────────────────────────
2-2.そもそもクライアントでの作業になるのでサーバー構築では以下は完全対象外となる
WindowsAgent
https://www.jobarranger.info/download/7.2.1//WindowsAgent/Job_Arranger_Agent_x64.msi

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3.データベースまたテーブルの作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1.3 Job Arranger のシステム構成
既存の Zabbix データベースを JobArranger でも使用することで、Zabbix で登録しているユーザやホスト等の情報を
共有し、スムーズな機能連携を実現させています。
https://www.jobarranger.info/download/0.9.1//Job%20Arranger_%E6%93%8D%E4%BD%9C%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB(%CE%B2%E7%89%88).pdf

Zabbixデータベース上にJob Arrangerデータを作成することは必須ですが、Job Serverは別で問題ありません。
必須ではありません。Zabbixデータベース上にJob Arrangerデータを作成することは必須ですが、Job Serverは別で問題ありません。」

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4. ログから見る「実効時間」の分析
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ログの時間軸を整理すると、以下のようになっています。

MySQL (zabbix-mysql)
12:44:32: 初期化開始(Initializing database files)

12:47:18: 初期化完了(Database files initialized)

12:47:38: init.sql 実行開始

12:48:22: 完全に受付可能状態(ready for connections)

【分析】: ゼロからの構築時、MySQLが「Healthy」になるまで 約4分(240秒) かかっています。

Zabbix Server (zabbix-server)
13:48:26: スキーマ作成開始(Creating 'zabbix' schema)

14:31:39: 作成完了(Database schema successfully created!)

【分析】: ここが衝撃的ですが、スキーマ作成に 約43分 かかっています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5.zabbix用のサーバー証明書の作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cd /Container/cert;pwd

sudo certbot certonly \
--manual \
--preferred-challenges=dns \
--email sasio-technologies@outlook.jp \
--agree-tos \
--no-eff-email \
-d zabbix.sasio.jp


[root@om01 ~]# sudo certbot certonly \
> --manual \
> --preferred-challenges=dns \
> --email sasio-technologies@outlook.jp \
> --agree-tos \
> --no-eff-email \
> -d zabbix.sasio.jp
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for gitlab.sasio.jp

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6.Job Arranger用のサーバー証明書の作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cd /Container/cert;pwd

sudo certbot certonly \
--manual \
--preferred-challenges=dns \
--email sasio-technologies@outlook.jp \
--agree-tos \
--no-eff-email \
-d jobarg.sasio.jp


[root@om01 ~]# sudo certbot certonly \
> --manual \
> --preferred-challenges=dns \
> --email sasio-technologies@outlook.jp \
> --agree-tos \
> --no-eff-email \
> -d jobarg.sasio.jp
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for gitlab.sasio.jp

--------------------------------------------------------------------------------------------------------------------
cp /etc/letsencrypt/live/jobarg.sasio.jp/fullchain.pem /Container/cert/jobarg_cert.pem
cp /etc/letsencrypt/live/jobarg.sasio.jp/privkey.pem /Container/cert/jobarg_privkey.pem

[root@om01 jobarg-build]# ls -la /Container/cert
合計 40
drwxr-xr-x 2 root root 4096 5月 15 01:29 .
drwxr-xr-x. 8 root root 4096 4月 21 07:19 ..
-rw-r--r-- 1 root root 2855 4月 18 13:49 gitlab_cert.pem
-rw------- 1 root root 227 4月 18 13:50 gitlab_privkey.pem
-rw-r--r-- 1 root root 2855 5月 15 01:29 jobarg_cert.pem
-rw------- 1 root root 227 5月 15 01:29 jobarg_privkey.pem
-rw-r--r-- 1 root root 2847 4月 18 07:55 mail_cert.pem
-rw------- 1 root root 227 4月 18 07:55 mail_privkey.pem
-rw-r--r-- 1 root root 2855 4月 21 07:23 zabbix_cert.pem
-rw------- 1 root root 227 4月 21 07:23 zabbix_privkey.pem
[root@om01 jobarg-build]#
[root@om01 cert]#


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6. hostsの設定 ★DNSに登録するまでは暫定で追加する
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[root@om01 jobarg-build]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.26.4.45 om01.sasio.jp om01
172.26.4.45 jobarg.sasio.jp jobarg
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
7. IPv6の無効化
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★課題
Dockerのイメージ取得でIPv6で突然行わなれる可能性があるためOSインストール時に設定置いたほうが良いかもしれません。

────────────────────────────────────────────────────────
/etc/docker/daemon.json

[root@om01 zabbix]# cat /etc/docker/daemon.json
{
"ipv6": false,
"dns": ["8.8.8.8", "1.1.1.1"]
}

[root@om01 zabbix]#

systemctl restart docker
-----------------------------------------------------------------------------------------------------------------

[root@om01 zabbix]# cat /etc/docker/daemon.json
{
"ipv6": false,
"dns": ["8.8.8.8", "1.1.1.1"]
}

[root@om01 zabbix]#

────────────────────────────────────────────────────────
nmcli connection modify ens192 ipv6.method disabled

nmcli connection modify ens224 ipv6.method disabled

nmcli connection modify ens256 ipv6.method disabled

nmcli connection reload

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
8. DockerNetworkの作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
まず、コンテナが通信するためのネットワークと、データを保存するためのディレクトリを作成します。

(1).ネットワークの事前作成(※かなり重要)
# ネットワークがない場合は作成(すでにある場合はエラーになりますが無視してOK)
docker network create monitor_net
docker network create gitlab_net
docker network create mail_net

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
9. Nginxかつサーバー証明書の格納先の準備
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(1).ディレクトリの作成
mkdir -p /Container/cert
mkdir -p /Container/nginx/conf.d
mkdir -p /Container/nginx/logs

(2).フォルダの有無の確認
ls -la /Container/cert
ls -l /Container/nginx/conf.d

[root@om01 jobarg-build]# ls -la /Container/cert
合計 40
drwxr-xr-x 2 root root 4096 5月 15 01:29 .
drwxr-xr-x. 8 root root 4096 4月 21 07:19 ..
-rw-r--r-- 1 root root 2855 4月 18 13:49 gitlab_cert.pem
-rw------- 1 root root 227 4月 18 13:50 gitlab_privkey.pem
-rw-r--r-- 1 root root 2855 5月 15 01:29 jobarg_cert.pem
-rw------- 1 root root 227 5月 15 01:29 jobarg_privkey.pem
-rw-r--r-- 1 root root 2847 4月 18 07:55 mail_cert.pem
-rw------- 1 root root 227 4月 18 07:55 mail_privkey.pem
-rw-r--r-- 1 root root 2855 4月 21 07:23 zabbix_cert.pem
-rw------- 1 root root 227 4月 21 07:23 zabbix_privkey.pem
[root@om01 jobarg-build]#
[root@om01 cert]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
10. Zabbixコンテナのコードの格納先の準備
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(1).ディレクトリの一括作成
mkdir -p /Container/zabbix/mysql/data
mkdir -p /Container/zabbix/mysql/conf.d

(2)追加機能向けのディレクトリの一括作成
mkdir -p /Container/zabbix/jobarg-build
mkdir -p /Container/zabbix/web-modules

(3)パーミッションの変更
chown -R root:root /Container/zabbix/web-modules
chmod -R 755 /Container/zabbix/web-modules

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11.zabbix-webコンテナの追加機能の圧縮ファイルの展開(jobarranger)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

tar --strip-components=1 \
-xzf /Container/zabbix/jobarg-build/jobarranger-7.2.1.tar.gz \
-C /Container/zabbix/web-modules

[root@om01 jobarg-build]# ls -la /Container/zabbix/web-modules/
合計 136
drwxr-xr-x 12 root root 4096 5月 6 09:36 .
drwxr-xr-x 5 root root 4096 5月 5 20:05 ..
-rwxrwxrwx 1 root root 32 1月 26 12:25 AUTHORS
-rwxrwxrwx 1 root root 18332 1月 26 12:26 COPYING
-rwxrwxrwx 1 root root 122 1月 26 12:26 ChangeLog
-rwxrwxrwx 1 root root 19776 1月 26 12:26 Makefile.am
-rwxrwxrwx 1 root root 53 1月 26 12:26 NEWS
-rwxrwxrwx 1 root root 1124 1月 26 12:26 README.md
drwxrwxrwx 4 root root 4096 1月 26 12:33 conf
-rwxrwxrwx 1 root root 11136 1月 26 12:26 configure.ac
drwxrwxrwx 5 root root 4096 1月 26 12:33 database
drwxrwxrwx 3 root root 4096 1月 26 12:33 docker
drwxrwxrwx 3 root root 4096 1月 26 12:33 frontend
-rwxrwxrwx 1 root root 1249 1月 26 12:26 go.mod
-rwxrwxrwx 1 root root 10156 1月 26 12:26 go.sum
-rwxrwxrwx 1 root root 207 1月 26 12:26 install-gen.sh
drwxrwxrwx 2 root root 4096 1月 26 12:33 man
drwxrwxrwx 5 root root 4096 1月 26 12:33 misc
drwxrwxrwx 5 root root 4096 1月 26 12:33 specs
drwxrwxrwx 13 root root 4096 1月 26 12:33 src
drwxrwxrwx 4 root root 4096 1月 26 12:33 tools
drwxrwxrwx 4 root root 4096 1月 26 12:33 vendor

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12. Nginxコンテナの再構築情報のコンテナの作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
nano /Container/nginx/compose.yml

[root@om01 jobarg-build]# cat /Container/nginx/compose.yml
services:
nginx:
image: nginx:latest
container_name: nginx
restart: always

ports:
- "80:80"
- "443:443"

volumes:
- /Container/nginx/conf.d:/etc/nginx/conf.d
- /Container/nginx/logs:/var/log/nginx
- /Container/cert:/etc/nginx/cert

networks:
- gitlab_net
- monitor_net # ★ Zabbix に接続するため追加

networks:
gitlab_net:
external: true
monitor_net:
external: true
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
13. Nginxコンテナからzabbixへの接続の設定ファイルの作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下の内容で各設定ファイルを作成・配置してください。
nano /Container/nginx/conf.d/zabbix.conf

[root@om01 jobarg-build]# cat /Container/nginx/conf.d/zabbix.conf
server {
listen 443 ssl;
server_name zabbix.sasio.jp;

ssl_certificate /etc/nginx/cert/zabbix_cert.pem;
ssl_certificate_key /etc/nginx/cert/zabbix_privkey.pem;

# ★ Docker内部のDNSサーバー(名前解決の即死を防ぐ)
resolver 127.0.0.11 valid=30s;

# SSLの推奨設定(セキュリティ向上)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';

# =========================================================================
# ★【最重要:新規追加】
# zabbix.sasio.jp/jobarranger 宛てのリダイレクトパケットが来たら、
# Zabbix側ではなく、JobArrangerの画面実体がある「jobargコンテナの80番」へバイパスします。
# =========================================================================
location /jobarranger {
set $jobarg_endpoint http://jobarg:80;
proxy_pass $jobarg_endpoint;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;

# 中のApacheが「http://...」で返してきたリダイレクトURLを「https://...」に自動補正
proxy_redirect http:// https://;
}

# =========================================================================
# 通常のZabbixの通信(ルートパス)の処理
# Zabbix公式Webの仕様に合わせて、内部ポート「8080」へ正しく転送します(既存のまま)
# =========================================================================
location / {
set $upstream_endpoint http://zabbix-web:8080;
proxy_pass $upstream_endpoint;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
}
}
[root@om01 jobarg-build]#

----------------------------------------------------------------------------------------------------------------
[root@om01 jobarg-build]# cat /Container/nginx/conf.d/jobarg.conf
server {
listen 443 ssl;
server_name jobarg.sasio.jp;

ssl_certificate /etc/nginx/cert/jobarg_cert.pem;
ssl_certificate_key /etc/nginx/cert/jobarg_privkey.pem;

resolver 127.0.0.11 valid=30s;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';

location / {
set $upstream_endpoint http://jobarg:80;
proxy_pass $upstream_endpoint;

# ★ 修正:Hostヘッダーをコンテナ名に固定せず、本来のドメイン名($host)のまま渡します
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;

proxy_redirect http:// https://;
}
}
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
14. 事前準備としてzabbixのDB圧縮ファイルを取得する
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
docker run --rm --user root zabbix/zabbix-server-mysql:latest \
sh -c "cat /usr/share/doc/zabbix-server-mysql/create.sql.gz" > /Container/zabbix/mysql/conf.d/create.sql.gz

[root@om01 ~]# docker run --rm --user root zabbix/zabbix-server-mysql:latest \
> sh -c "cat /usr/share/doc/zabbix-server-mysql/create.sql.gz" > /Container/zabbix/mysql/conf.d/create.sql.gz
Unable to find image 'zabbix/zabbix-server-mysql:latest' locally
latest: Pulling from zabbix/zabbix-server-mysql
6a0ac1617861: Pull complete
d764f9797cc7: Pull complete
940c279f6983: Pull complete
4f4fb700ef54: Pull complete
08a37832fa7c: Pull complete
7c1589460779: Pull complete
9a4a826b506f: Pull complete
13d239f8e7f6: Pull complete
44833abc7568: Pull complete
1f919662e15f: Download complete
064dd68848e9: Download complete
Digest: sha256:4cddcdaff354b097c234625afc2990b10be355639c329cf297170c8ae0686248
Status: Downloaded newer image for zabbix/zabbix-server-mysql:latest
[root@om01 ~]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
15. 事前準備としてLDAPの設定情報の追加作業実施
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(1)対象フォルダに移動する
cd /Container/zabbix/mysql/conf.d;pwd

(2)圧縮ファイルを解凍する
gunzip create.sql.gz

(3)下記のファイルを開いて最終行に追加する
nano /Container/zabbix/mysql/conf.d/create.sql

[Ctrl]+[End]を押して再就業に移動する

-- ================================================================================================================
-- Custom LDAP Configuration (Added for Initial Build)
-- ================================================================================================================
-- ① userdirectoryテーブルへの登録
-- カラム名を実機に合わせて「provision_status」に修正済み
INSERT INTO userdirectory (userdirectoryid, name, description, idp_type, provision_status)
VALUES (1, 'SASIO-AD', 'Auto-configured', 1, 1);

-- ② userdirectory_ldapテーブルへの登録
-- 各カラム名(host, port, base_dn, bind_dn等)が実機と一致していることを確認済み
INSERT INTO userdirectory_ldap (
userdirectoryid, host, port, base_dn, search_attribute,
bind_dn, bind_password, start_tls, search_filter
) VALUES (
1, '172.26.4.43', 389, 'DC=sasio,DC=jp', 'sAMAccountName',
'CN=Administrator,CN=Users,DC=sasio,DC=jp', 'get04F15fr34!x07r008', 0, ''
);

-- ③ 認証全体のスイッチをONにする(今回の検証で判明した重要ポイント)
-- Default authentication を LDAP に切り替え
UPDATE settings SET value_int = 1 WHERE name = 'authentication_type';

-- ④ 使用するディレクトリを ID:1 (SASIO-AD) に指定する
-- すでにレコードがある場合は更新、ない場合は挿入する安全な構文です
INSERT INTO settings (name, type, value_userdirectoryid, value_str)
VALUES ('userdirectoryid', 2, 1, '')
ON DUPLICATE KEY UPDATE value_userdirectoryid = 1;

-- ⑤ 「Enable LDAP authentication」のチェックボックスをONにする
INSERT INTO settings (name, type, value_int, value_str)
VALUES ('ldap_auth_enabled', 0, 1, ''),
('ldap_jit_status', 0, 1, '')
ON DUPLICATE KEY UPDATE value_int = 1;

-- ⑥ ステップA: マッピングルール(パターンとロール)を登録
-- userdirectoryid は SASIO-AD のID(通常は 1 または 2)を確認して指定する
INSERT INTO userdirectory_idpgroup (userdirectory_idpgroupid, userdirectoryid, name, roleid)
SELECT
1, -- ここでIDを指定
ud.userdirectoryid,
'*', -- LDAP group pattern
r.roleid -- Super admin role のID
FROM userdirectory ud, role r
WHERE ud.name = 'SASIO-AD' AND r.name = 'Super admin role';

-- ⑦ ステップB: 上記のマッピングと Zabbixグループ(Zabbix administrators)を紐付け
-- 明示的に userdirectory_usrgrpid に '1'、親IDにも '1' を指定します
INSERT INTO userdirectory_usrgrp (userdirectory_usrgrpid, userdirectory_idpgroupid, usrgrpid)
SELECT
1, -- 自身のIDを指定
1, -- ステップAで指定した親IDを指定
ug.usrgrpid
FROM usrgrp ug
WHERE ug.name = 'Zabbix administrators';

-- ⑧ JITプロビジョニング自体のスイッチをONにする
INSERT INTO settings (name, type, value_int, value_str)
VALUES ('jit_provisioning_enabled', 0, 1, '')
ON DUPLICATE KEY UPDATE value_int = 1;

-- ⑨ 「受け皿グループ(Disabled)」を設定して保存エラーを回避する
-- 先ほどの実機 DESC 確認結果に基づき value_usrgrpid を使用
INSERT INTO settings (name, type, value_usrgrpid, value_str)
VALUES ('disabled_usrgrpid', 1, 9, '')
ON DUPLICATE KEY UPDATE value_usrgrpid = 9;

-- ⑩ ID管理テーブルを更新し、構築後のGUI操作での衝突を防ぐ
INSERT INTO ids (table_name, field_name, nextid)
VALUES ('userdirectory_idpgroup', 'userdirectory_idpgroupid', 2),
('userdirectory_usrgrp', 'userdirectory_usrgrpid', 2)
ON DUPLICATE KEY UPDATE nextid = 2;

────────────────────────────────────────────────────────────
(4)下記のコマンドで設定を確認する

[root@om01 jobarg-build]# cat /Container/zabbix/mysql/conf.d/create.sql | tail -n 72

-- ================================================================================================================
-- Custom LDAP Configuration (Added for Initial Build)
-- ================================================================================================================
-- ① userdirectoryテーブルへの登録
-- カラム名を実機に合わせて「provision_status」に修正済み
INSERT INTO userdirectory (userdirectoryid, name, description, idp_type, provision_status)
VALUES (1, 'SASIO-AD', 'Auto-configured', 1, 1);

-- ② userdirectory_ldapテーブルへの登録
-- 各カラム名(host, port, base_dn, bind_dn等)が実機と一致していることを確認済み
INSERT INTO userdirectory_ldap (
userdirectoryid, host, port, base_dn, search_attribute,
bind_dn, bind_password, start_tls, search_filter
) VALUES (
1, '172.26.4.43', 389, 'DC=sasio,DC=jp', 'sAMAccountName',
'CN=Administrator,CN=Users,DC=sasio,DC=jp', 'get04F15fr34!x07r008', 0, ''
);

-- ③ 認証全体のスイッチをONにする(今回の検証で判明した重要ポイント)
-- Default authentication を LDAP に切り替え
UPDATE settings SET value_int = 1 WHERE name = 'authentication_type';

-- ④ 使用するディレクトリを ID:1 (SASIO-AD) に指定する
-- すでにレコードがある場合は更新、ない場合は挿入する安全な構文です
INSERT INTO settings (name, type, value_userdirectoryid, value_str)
VALUES ('userdirectoryid', 2, 1, '')
ON DUPLICATE KEY UPDATE value_userdirectoryid = 1;

-- ⑤ 「Enable LDAP authentication」のチェックボックスをONにする
INSERT INTO settings (name, type, value_int, value_str)
VALUES ('ldap_auth_enabled', 0, 1, ''),
('ldap_jit_status', 0, 1, '')
ON DUPLICATE KEY UPDATE value_int = 1;

-- ⑥ ステップA: マッピングルール(パターンとロール)を登録
-- userdirectoryid は SASIO-AD のID(通常は 1 または 2)を確認して指定する
INSERT INTO userdirectory_idpgroup (userdirectory_idpgroupid, userdirectoryid, name, roleid)
SELECT
1, -- ここでIDを指定
ud.userdirectoryid,
'*', -- LDAP group pattern
r.roleid -- Super admin role のID
FROM userdirectory ud, role r
WHERE ud.name = 'SASIO-AD' AND r.name = 'Super admin role';

-- ⑦ ステップB: 上記のマッピングと Zabbixグループ(Zabbix administrators)を紐付け
-- 明示的に userdirectory_usrgrpid に '1'、親IDにも '1' を指定します
INSERT INTO userdirectory_usrgrp (userdirectory_usrgrpid, userdirectory_idpgroupid, usrgrpid)
SELECT
1, -- 自身のIDを指定
1, -- ステップAで指定した親IDを指定
ug.usrgrpid
FROM usrgrp ug
WHERE ug.name = 'Zabbix administrators';

-- ⑧ JITプロビジョニング自体のスイッチをONにする
INSERT INTO settings (name, type, value_int, value_str)
VALUES ('jit_provisioning_enabled', 0, 1, '')
ON DUPLICATE KEY UPDATE value_int = 1;

-- ⑨ 「受け皿グループ(Disabled)」を設定して保存エラーを回避する
-- 先ほどの実機 DESC 確認結果に基づき value_usrgrpid を使用
INSERT INTO settings (name, type, value_usrgrpid, value_str)
VALUES ('disabled_usrgrpid', 1, 9, '')
ON DUPLICATE KEY UPDATE value_usrgrpid = 9;

-- ⑩ ID管理テーブルを更新し、構築後のGUI操作での衝突を防ぐ
INSERT INTO ids (table_name, field_name, nextid)
VALUES ('userdirectory_idpgroup', 'userdirectory_idpgroupid', 2),
('userdirectory_usrgrp', 'userdirectory_usrgrpid', 2)
ON DUPLICATE KEY UPDATE nextid = 2;
[root@om01 jobarg-build]#
────────────────────────────────────────────────────────
(5)-c オプションで元のファイルを残しつつ、.gz ファイルを作成します

gzip -c create.sql > create.sql.gz

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
16. 事前準備としてzabbix-serverからzabbix-mysqlへのコンテナの流し込みの許可の設定ファイルの準備
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vi /Container/zabbix/mysql/conf.d/init.sql

[root@om01 jobarg-build]# cat /Container/zabbix/mysql/conf.d/init.sql
-- ① 既存の不完全なDBを消し、Zabbix 7.0専用の規格で作り直す
DROP DATABASE IF EXISTS zabbix;
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

-- ② 関数作成の制限を解除(インポートの中断防止)
SET GLOBAL log_bin_trust_function_creators = 1;

-- ③ 権限の付与
GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'%';
[root@om01 jobarg-build]#


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
16. Dockerfile
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[root@om01 jobarg-build]# cat /Container/zabbix//Dockerfile
FROM zabbix/zabbix-web-apache-mysql:latest

USER root

# OSアップデート + 必要パッケージ (Alpine Linuxベース用)
RUN apk update && \
apk upgrade && \
apk add --no-cache \
curl \
tar \
gzip

# JobArranger ダウンロード・展開
WORKDIR /tmp

RUN curl -L -o jobarranger.tar.gz \
https://www.jobarranger.info/download/7.2.1/Other/jobarranger-7.2.1.tar.gz && \
mkdir -p /tmp/jobarg_extracted && \
tar -xzf jobarranger.tar.gz -C /tmp/jobarg_extracted

# JobArranger 全体を共通ディレクトリに一旦配置
RUN mkdir -p /usr/share/jobarranger && \
cp -R /tmp/jobarg_extracted/*/* /usr/share/jobarranger/ 2>/dev/null || \
cp -R /tmp/jobarg_extracted/* /usr/share/jobarranger/

# ★【改善ポイント1】コピーを行う「前」に、大元のすべての localhost を一括で置換します
# 1. 各種URLを正規ドメイン(HTTPS)に置換
RUN sed -i "s|http://localhost/jobarranger|https://zabbix.sasio.jp/jobarranger|g" \
/usr/share/jobarranger/frontend/jobarranger/modules/JazManager/config/jam.module.config.php

RUN sed -i "s|http://localhost/zabbix|https://zabbix.sasio.jp/zabbix|g" \
/usr/share/jobarranger/frontend/jobarranger/api/app/config/jam.config.php

# 2. セットアップのDBホスト名初期値も localhost からコンテナ名に安全に書き換え
RUN sed -i "s|'localhost'|'zabbix-mysql'|g" /usr/share/jobarranger/frontend/jobarranger/api/app/config/jam.config.php && \
sed -i 's|"localhost"|"zabbix-mysql"|g' /usr/share/jobarranger/frontend/jobarranger/api/app/config/jam.config.php

# ★【改善ポイント2】置換が「完了した綺麗な状態のフォルダ」を Zabbix の modules 直下へピンポイントコピー
RUN mkdir -p /usr/share/zabbix/modules && \
if [ -d "/usr/share/jobarranger/frontend/jobarranger/modules/JazManager" ]; then \
cp -R /usr/share/jobarranger/frontend/jobarranger/modules/JazManager /usr/share/zabbix/modules/; \
fi

# 不要ファイル削除
RUN rm -rf /tmp/jobarg_extracted /tmp/jobarranger.tar.gz

# 権限を公式Webコンテナの「zabbix」ユーザー(1997)に合わせて最適化
RUN chown -R 1997:0 /usr/share/jobarranger /usr/share/zabbix/modules && \
chmod -R 755 /usr/share/zabbix/modules

USER 1997
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
17. Zabbixコンテナの構築情報
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
nano /Container/zabbix/compose.yml

[root@om01 jobarg-build]# cat /Container/zabbix/compose.yml
services:
mysql:
image: mysql:8.0
container_name: zabbix-mysql
restart: always
command: --log-bin-trust-function-creators=1 --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
environment:
TZ: Asia/Tokyo
MYSQL_ROOT_PASSWORD: zabbixroot
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbixpass
volumes:
- /Container/zabbix/mysql/data:/var/lib/mysql
- /Container/zabbix/mysql/conf.d:/etc/mysql/conf.d
- /Container/zabbix/mysql/conf.d/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
networks:
- monitor_net
# ★ 自分自身のDBサーバーへの接続確認(healthcheck)を追加
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-pzabbixroot", "--ssl-mode=DISABLED"]
interval: 60s
timeout: 10s
retries: 5
start_period: 480s

zabbix-server:
image: zabbix/zabbix-server-mysql:latest
container_name: zabbix-server
restart: always
volumes:
# ★ カスタムした「最強の設計図」をマウント
- /Container/zabbix/mysql/conf.d/create.sql.gz:/usr/share/doc/zabbix-server-mysql/create.sql.gz:ro
environment:
TZ: Asia/Tokyo
DB_SERVER_HOST: mysql
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbixpass
MYSQL_DATABASE: zabbix
healthcheck:
# サーバーが起動し、設定を読み込める状態かを5分おきに確認
test: ["CMD", "zabbix_server", "-R", "config_cache_reload"]
interval: 300s
timeout: 60s
retries: 3
# ★次回の「スナップショット戻し」後の初期化に備えて1時間に設定
start_period: 3600s
depends_on:
mysql:
condition: service_healthy # MySQLが完全に「Healthy」になるのを待つ
ports:
- "10051:10051"
networks:
- monitor_net

zabbix-web:
image: zabbix-jobarranger:latest
container_name: zabbix-web
restart: always
environment:
DB_SERVER_HOST: zabbix-mysql
DB_SERVER_PORT: 3306
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbixpass
MYSQL_DATABASE: zabbix
ZBX_SERVER_HOST: zabbix-server
ZBX_SERVER_PORT: 10051
PHP_TZ: Asia/Tokyo
ZBX_LOGIN: ldap
ZBX_LDAP_HOST: "172.26.4.43"
ZBX_LDAP_PORT: "389"
ZBX_LDAP_BASE_DN: "DC=sasio,DC=jp"
ZBX_LDAP_BIND_DN: "CN=Administrator,CN=Users,DC=sasio,DC=jp"
ZBX_LDAP_BIND_PASSWORD: "get04F15fr34!x07r008"
ZBX_LDAP_SEARCH_ATTRIBUTE: "sAMAccountName"
ZBX_NGINX_PROXY_READ_TIMEOUT: 3600
ZBX_NGINX_PROXY_SEND_TIMEOUT: 3600
depends_on:
mysql:
condition: service_healthy
zabbix-server:
condition: service_healthy
ports:
- "8080:8080"
networks:
- monitor_net
- mail_net
- gitlab_net

networks:
monitor_net:
external: true
mail_net:
external: true
gitlab_net:
external: true
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
18.コンテナの構築の実施
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(1)構築のコマンド

cd /Container/zabbix;pwd

docker build -t zabbix-jobarranger:latest .

docker compose up -d

----------------------------------------------------------------------------------------------------------------
(2)構築後のサーバー証明書の配置確認

[root@om01 cert]# docker exec -it nginx ls -la /etc/nginx/cert/
total 40
drwxr-xr-x 2 root root 4096 May 17 03:37 .
drwxr-xr-x 1 root root 4096 Apr 18 07:09 ..
-rw-r--r-- 1 root root 2855 Apr 18 04:49 gitlab_cert.pem
-rw------- 1 root root 227 Apr 18 04:50 gitlab_privkey.pem
-rw-r--r-- 1 root root 2851 May 17 03:37 jobarg_cert.pem
-rw------- 1 root root 227 May 17 03:37 jobarg_privkey.pem
-rw-r--r-- 1 root root 2847 Apr 17 22:55 mail_cert.pem
-rw------- 1 root root 227 Apr 17 22:55 mail_privkey.pem
-rw-r--r-- 1 root root 2855 Apr 20 22:23 zabbix_cert.pem
-rw------- 1 root root 227 Apr 20 22:23 zabbix_privkey.pem
[root@om01 cert]#

----------------------------------------------------------------------------------------------------------------
(3)構築後の接続確認
https://zabbix.sasio.jp/zabbix.php?action=authentication.edit

ユーザー名:Admin
パスワード:zabbix

Enable JIT provisioningで有効→無効→有効

techopでログインができるyようになった

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
19.追加オプションの新規設定(Job Arranger)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[root@om01 jobarg-build]# cat /Container/zabbix/jobarg-build/Dockerfile
FROM almalinux:9

# 1. パッケージインストール
RUN dnf install -y epel-release && \
dnf install -y https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm && \
dnf install -y --allowerasing \
mariadb-connector-c \
net-snmp-libs \
curl \
libvterm \
mariadb \
mysql-community-libs \
httpd \
php \
php-mysqlnd \
php-gd \
php-xml \
php-mbstring \
php-ldap

# 2. JobArranger RPMインストール
RUN curl -L -O https://www.jobarranger.info/download/7.2.1/Server/jobarranger-server-7.2.1-1.el9.x86_64.rpm && \
curl -L -O https://www.jobarranger.info/download/7.2.1/LinuxAgent/jobarranger-agentd-7.2.1-1.el9.x86_64.rpm && \
curl -L -O https://www.jobarranger.info/download/7.2.1/Manager/jobarranger-manager-7.2.1-1.el9.x86_64.rpm && \
dnf localinstall -y jobarranger-*.rpm && \
rm -f jobarranger-*.rpm

# 3. jobarg_server.conf の詳細設定修正
RUN sed -i -e '/^DBType=/d' \
-e '/^DBHost=/d' \
-e '/^DBName=/d' \
-e '/^DBUser=/d' \
-e '/^DBPassword=/d' \
-e '/^DBPort=/d' \
-e '/^DBPasswordExternal=/d' \
-e '/^JazDBHost=/d' \
-e '/^JazDBName=/d' \
-e '/^JazDBUser=/d' \
-e '/^JazDBPassword=/d' \
-e '/^JazDBPort=/d' \
-e '/^ListenIP=/d' \
-e '/^ListenPort=/d' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: DBType$/a DBType=mysql' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: DBHost$/a DBHost=zabbix-mysql' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: DBName$/a DBName=zabbix' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: DBUser$/a DBUser=zabbix' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: DBPassword$/a DBPassword=zabbixpass' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: DBPort$/a DBPort=3306' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: JazDBHost$/a JazDBHost=zabbix-mysql' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: JazDBName$/a JazDBName=zabbix' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: JazDBUser$/a JazDBUser=zabbix' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: JazDBPassword$/a JazDBPassword=zabbixpass' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: JazDBPort$/a JazDBPort=3306' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: ListenIP$/a ListenIP=0.0.0.0' /etc/jobarranger/jobarg_server.conf && \
sed -i '/### Option: ListenPort$/a ListenPort=10061' /etc/jobarranger/jobarg_server.conf

# 4. Zabbixモジュールのコピー
RUN mkdir -p /usr/share/zabbix/modules/ && \
cp -R /usr/share/jobarranger/modules/JazManager /usr/share/zabbix/modules/

# 5. Manager/API設定の修正
RUN CONFIG_PATH="/usr/share/jobarranger/api/app/config/jam.config.php" && \
if [ ! -f "$CONFIG_PATH" ]; then \
if [ -f "${CONFIG_PATH}.example" ]; then cp "${CONFIG_PATH}.example" "$CONFIG_PATH"; \
elif [ -f "${CONFIG_PATH}.dist" ]; then cp "${CONFIG_PATH}.dist" "$CONFIG_PATH"; \
else \
echo "<?php " > "$CONFIG_PATH"; \
echo "define('DB_HOST' , 'localhost');" >> "$CONFIG_PATH"; \
echo "define('JA_DB_HOST' , 'localhost');" >> "$CONFIG_PATH"; \
echo "define('DB_NAME' , 'jobarranger');" >> "$CONFIG_PATH"; \
echo "define('JA_DB_NAME' , 'jobarranger');" >> "$CONFIG_PATH"; \
echo "define('DB_PASS' , 'zabbix');" >> "$CONFIG_PATH"; \
echo "define('JA_DB_PASS' , 'zabbix');" >> "$CONFIG_PATH"; \
echo "define('ZBX_API_ROOT', '');" >> "$CONFIG_PATH"; \
echo "define('ZBX_REDIRECT_URL', '');" >> "$CONFIG_PATH"; \
echo "define('ZBX_API_LOCAL', true);" >> "$CONFIG_PATH"; \
echo "define('SSL_VERIFICATION', 1);" >> "$CONFIG_PATH"; \
fi \
fi && \
sed -i "s/define('DB_HOST' , '.*');/define('DB_HOST' , 'zabbix-mysql');/" "$CONFIG_PATH" && \
sed -i "s/define('JA_DB_HOST' , '.*');/define('JA_DB_HOST' , 'zabbix-mysql');/" "$CONFIG_PATH" && \
sed -i "s/define('DB_NAME' , '.*');/define('DB_NAME' , 'zabbix');/" "$CONFIG_PATH" && \
sed -i "s/define('JA_DB_NAME' , '.*');/define('JA_DB_NAME' , 'zabbix');/" "$CONFIG_PATH" && \
sed -i "s/define('DB_PASS' , '.*');/define('DB_PASS' , 'zabbixpass');/" "$CONFIG_PATH" && \
sed -i "s/define('JA_DB_PASS' , '.*');/define('JA_DB_PASS' , 'zabbixpass');/" "$CONFIG_PATH" && \
sed -i "s|define('ZBX_API_ROOT', '.*');|define('ZBX_API_ROOT', 'http://zabbix-web:8080/');|g" "$CONFIG_PATH" && \
sed -i "s|define('ZBX_REDIRECT_URL', '.*');|define('ZBX_REDIRECT_URL', 'https://jobarg.sasio.jp');|g" "$CONFIG_PATH" && \
sed -i "s/define('ZBX_API_LOCAL', .*/define('ZBX_API_LOCAL', false);/" "$CONFIG_PATH" && \
sed -i "s/define('SSL_VERIFICATION', .*/define('SSL_VERIFICATION', 0);/" "$CONFIG_PATH" && \
echo 'if (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") { $_SERVER["HTTPS"] = "on"; }' >> "$CONFIG_PATH"

# 6. Agent設定の修正
RUN sed -i -e '/^Server=/d' -e '/^Hostname=/d' /etc/jobarranger/jobarg_agentd.conf && \
sed -i '/### Option: Server$/a Server=127.0.0.1' /etc/jobarranger/jobarg_agentd.conf && \
sed -i '/### Option: Hostname$/a Hostname=jobarg-server' /etc/jobarranger/jobarg_agentd.conf

# 7. Apache設定の修正
RUN rm -f /etc/httpd/conf.d/jobarranger.conf && \
echo 'Alias /jobarranger "/usr/share/jobarranger"' > /etc/httpd/conf.d/jobarranger.conf && \
echo '<Directory "/usr/share/jobarranger">' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' DirectoryIndex index.html index.php' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' Options +FollowSymLinks' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' AllowOverride All' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' Require all granted' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' <FilesMatch \.php$>' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' SetHandler "proxy:fcgi://127.0.0.1:9000"' >> /etc/httpd/conf.d/jobarranger.conf && \
echo ' </FilesMatch>' >> /etc/httpd/conf.d/jobarranger.conf && \
echo '</Directory>' >> /etc/httpd/conf.d/jobarranger.conf

# PHP-FPMの設定修正
RUN sed -i 's|^listen = .*|listen = 127.0.0.1:9000|' /etc/php-fpm.d/www.conf || true

# 8. API用の一時ディレクトリ準備
RUN mkdir -p /usr/share/jobarranger/api/app/tmp && \
chmod -R 777 /usr/share/jobarranger/api/app/tmp

EXPOSE 80 10061

# 9. 実行設定
CMD echo 'Setting permissions...'; \
mkdir -p /usr/share/jobarranger/api/app/tmp /var/log/jobarranger/manager /run/php-fpm; \
chown -R apache:apache /usr/share/jobarranger /var/log/jobarranger /run/php-fpm; \
chmod -R 777 /usr/share/jobarranger/api/app/tmp /var/log/jobarranger/manager; \
chown -R zabbix:zabbix /var/log/jobarranger /usr/local/bin/jobarranger/server_socks; \
\
echo 'Waiting for MySQL connection...'; \
until mysqladmin ping -h zabbix-mysql -u zabbix -pzabbixpass --silent; do \
echo 'MySQL is unavailable - sleeping'; \
sleep 3; \
done; \
echo 'MySQL is up - executing SQL scripts...'; \
\
echo 'Updating Database...'; \
# ★修正箇所:不確実な検索処理を全削除し、先ほど存在を確認した本物のパスを直接指定して流し込みます。
mysql -h zabbix-mysql -u zabbix -pzabbixpass zabbix -f < /usr/share/doc/jobarranger-server/database/mysql/MySQL_JA_CREATE_TABLE.sql; \
mysql -h zabbix-mysql -u zabbix -pzabbixpass zabbix -f < /usr/share/doc/jobarranger-server/database/data/JA_2_INSERT_TABLE.sql; \
\
echo 'Starting Services...'; \
php-fpm; \
/usr/local/sbin/jobarg_agentd; \
/usr/local/sbin/jobarg_server -c /etc/jobarranger/jobarg_server.conf; \
\
NGINX_IP=$(getent hosts nginx | awk '{ print $1 }'); \
if [ -n "$NGINX_IP" ]; then \
hosts_content=$(cat /etc/hosts | sed '/zabbix.sasio.jp/d'); \
echo "$hosts_content" > /etc/hosts && echo "$NGINX_IP zabbix.sasio.jp" >> /etc/hosts; \
fi; \
\
/usr/sbin/httpd -D FOREGROUND
[root@om01 jobarg-build]#
─────────────────────────────────────────────────────────────

[root@om01 jobarg-build]# cat /Container/zabbix/jobarg-build/compose.yml
services:
job-arg-server:
build: .
image: local/jobarg-server:7.2.1
container_name: jobarg
restart: always
ports:
- "10061:10061"
environment:
- TZ=Asia/Tokyo
- MYSQL_ROOT_PASSWORD=zabbixroot
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbixpass
- DB_SERVER_HOST=zabbix-mysql
# --- ここを追加 ---
extra_hosts:
- "jobarg.sasio.jp:host-gateway"
# ------------------
networks:
- monitor_net

networks:
monitor_net:
external: true
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
20.追加オプションの新規設定(Job Arranger)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

cd /Container/zabbix/jobarg-build;pwd

docker build --network=host -t local/jobarg-server:7.2.1 .

[root@om01 jobarg-build]# docker build --network=host -t local/jobarg-server:7.2.1 .
[+] Building 2465.3s (13/13) FINISHED docker:default
=> [internal] load build definition from Dockerfile 0.1s
=> => transferring dockerfile: 8.07kB 0.0s
=> [internal] load metadata for docker.io/library/almalinux:9 3.4s
=> [internal] load .dockerignore 0.1s
=> => transferring context: 2B 0.0s
=> [1/9] FROM docker.io/library/almalinux:9@sha256:606be3c7b71a40dd3b024646e9b5a0b5023d0fdf111060f249b08f04cec0 54.2s
=> => resolve docker.io/library/almalinux:9@sha256:606be3c7b71a40dd3b024646e9b5a0b5023d0fdf111060f249b08f04cec0c 0.2s
=> => sha256:bf33987844e0293cd84c3d97bb714d6e871f8790237b923f70a2eb541b43d4df 71.28MB / 71.28MB 17.9s
=> => extracting sha256:bf33987844e0293cd84c3d97bb714d6e871f8790237b923f70a2eb541b43d4df 34.1s
=> [2/9] RUN dnf install -y epel-release && dnf install -y https://dev.mysql.com/get/mysql80-community-re 1555.8s
=> [3/9] RUN curl -L -O https://www.jobarranger.info/download/7.2.1/Server/jobarranger-server-7.2.1-1.el9.x86_6 97.9s
=> [4/9] RUN sed -i -e '/^DBType=/d' -e '/^DBHost=/d' -e '/^DBName=/d' -e '/^DB 5.3s
=> [5/9] RUN mkdir -p /usr/share/zabbix/modules/ && cp -R /usr/share/jobarranger/modules/JazManager /usr/sha 2.0s
=> [6/9] RUN CONFIG_PATH="/usr/share/jobarranger/api/app/config/jam.config.php" && if [ ! -f "$CONFIG_PATH" 2.6s
=> [7/9] RUN sed -i -e '/^Server=/d' -e '/^Hostname=/d' /etc/jobarranger/jobarg_agentd.conf && sed -i '/### 2.3s
=> [8/9] RUN rm -f /etc/httpd/conf.d/jobarranger.conf && echo 'Alias /jobarranger "/usr/share/jobarranger"' 1.4s
=> [9/9] RUN mkdir -p /usr/share/jobarranger/api/app/tmp && chmod -R 777 /usr/share/jobarranger/api/app/tmp 1.4s
=> exporting to image 726.3s
=> => exporting layers 296.9s
=> => exporting manifest sha256:7e05ce850e57d2fb2feb79a547d0e92bc9ee87672061f0f3fb3c34bbab751831 0.8s
=> => exporting config sha256:5c58022a0865ea4f3dea6d29fe6f56b9ec85dc5a71b8b2224352f96dc7d59504 1.1s
=> => exporting attestation manifest sha256:6847f25e1be96ae4bdc853f041f6caf8e6ca520cd3e08d9f07350bbaf31b5669 4.5s
=> => exporting manifest list sha256:9905a4f251f1c9e3500ecf5f9825613e3daad222616543727a6a81e7307c01ff 0.9s
=> => naming to docker.io/local/jobarg-server:7.2.1 0.7s
=> => unpacking to docker.io/local/jobarg-server:7.2.1 417.5s

1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 111)
[root@om01 jobarg-build]#

----------------------------------------------------------------------------------------------------------------
(1)新規コンテナの作成
# コンテナ起動(サービス名は job-arg-server)
docker compose up -d

[root@om01 jobarg-build]# docker compose up -d
[+] up 1/1
✔ Container jobarg Started 20.8s
[root@om01 jobarg-build]#


(3)テーブル数の確認
作成後にすぐできず502エラーはしばらく続くのでしばらく待機するため下記のコマンドで確認する
watch -n 2 'docker exec -i jobarg mysql -h zabbix-mysql -u zabbix -pzabbixpass zabbix -e "SHOW TABLES;" | grep -v "Tables_in_zabbix" | wc -l'

[実行結果]
Every 2.0s: docker exec -i jobarg mysql -h zabbix-mysql -u zabbix -pzabbixpa... om01.sasio.jp: Sun May 17 16:09:18 2026
mysql: [Warning] Using a password on the command line interface can be insecure.
264

----------------------------------------------------------------------------------------------------------------
(4)ブラウザでのアクセス
https://jobarg.sasio.jp/jobarranger/

(5)初期設定
zabbix-mysql
3306
zabbix
zabbix
zabbixpass

Zabbix URL
https://zabbix.sasio.jp/
Zabbix Redirect URL
https://zabbix.sasio.jp/jobarranger/redirect

■Disable SSL Verification

/var/log/jobarranger/manager
jobarg_manager.log

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
21.標準機能のZabbixテーブルの一覧の確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★ノウハウ
時間経過

[root@om01 jobarg-build]# docker exec -it jobarg mysql -h zabbix-mysql -u zabbix -pzabbixpass zabbix -e "SHOW TABLES;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----------------------------------+
| Tables_in_zabbix |
+-----------------------------------+
| acknowledges |
| actions |
| alerts |
| auditlog |
| autoreg_host |
| changelog |
| conditions |
| config_autoreg_tls |
| connector |
| connector_tag |
| corr_condition |
| corr_condition_group |
| corr_condition_tag |
| corr_condition_tagpair |
| corr_condition_tagvalue |
| corr_operation |
| correlation |
| dashboard |
| dashboard_page |
| dashboard_user |
| dashboard_usrgrp |
| dbversion |
| dchecks |
| dhosts |
| drules |
| dservices |
| escalations |
| event_recovery |
| event_suppress |
| event_symptom |
| event_tag |
| events |
| expressions |
| functions |
| globalmacro |
| globalvars |
| graph_discovery |
| graph_theme |
| graphs |
| graphs_items |
| group_discovery |
| group_prototype |
| ha_node |
| hgset |
| hgset_group |
| history |
| history_bin |
| history_log |
| history_str |
| history_text |
| history_uint |
| host_discovery |
| host_hgset |
| host_inventory |
| host_proxy |
| host_rtdata |
| host_tag |
| hostmacro |
| hostmacro_config |
| hosts |
| hosts_groups |
| hosts_templates |
| housekeeper |
| hstgrp |
| httpstep |
| httpstep_field |
| httpstepitem |
| httptest |
| httptest_field |
| httptest_tag |
| httptestitem |
| icon_map |
| icon_mapping |
| ids |
| images |
| interface |
| interface_discovery |
| interface_snmp |
| item_condition |
| item_discovery |
| item_parameter |
| item_preproc |
| item_rtdata |
| item_rtname |
| item_tag |
| items |
| ja_2_calendar_control_table |
| ja_2_calendar_detail_table |
| ja_2_define_extjob_table |
| ja_2_define_run_log_message_table |
| ja_2_define_value_jobcon_table |
| ja_2_filter_control_table |
| ja_2_flow_control_table |
| ja_2_host_lock_table |
| ja_2_icon_agentless_table |
| ja_2_icon_calc_table |
| ja_2_icon_end_table |
| ja_2_icon_extjob_table |
| ja_2_icon_fcopy_table |
| ja_2_icon_fwait_table |
| ja_2_icon_if_table |
| ja_2_icon_info_table |
| ja_2_icon_job_table |
| ja_2_icon_jobnet_table |
| ja_2_icon_reboot_table |
| ja_2_icon_release_table |
| ja_2_icon_task_table |
| ja_2_icon_value_table |
| ja_2_icon_zabbix_link_table |
| ja_2_index_table |
| ja_2_job_command_table |
| ja_2_job_control_table |
| ja_2_jobnet_control_table |
| ja_2_object_lock_table |
| ja_2_parameter_table |
| ja_2_ran_flow_table |
| ja_2_ran_job_table |
| ja_2_ran_job_variable_table |
| ja_2_ran_jobnet_summary_table |
| ja_2_ran_jobnet_table |
| ja_2_ran_jobnet_variable_table |
| ja_2_ran_log_table |
| ja_2_ran_value_job_table |
| ja_2_ran_value_jobcon_table |
| ja_2_run_action_table |
| ja_2_run_flow_table |
| ja_2_run_job_table |
| ja_2_run_job_variable_table |
| ja_2_run_jobnet_summary_table |
| ja_2_run_jobnet_table |
| ja_2_run_jobnet_variable_table |
| ja_2_run_log_table |
| ja_2_run_timeout_table |
| ja_2_run_value_job_table |
| ja_2_run_value_jobcon_table |
| ja_2_schedule_control_table |
| ja_2_schedule_detail_table |
| ja_2_schedule_jobnet_table |
| ja_2_send_message_table |
| ja_2_session_table |
| ja_2_value_job_table |
| ja_2_value_jobcon_table |
| ja_2_zbx_hosts_table |
| lld_macro_export |
| lld_macro_path |
| lld_override |
| lld_override_condition |
| lld_override_opdiscover |
| lld_override_operation |
| lld_override_ophistory |
| lld_override_opinventory |
| lld_override_opperiod |
| lld_override_opseverity |
| lld_override_opstatus |
| lld_override_optag |
| lld_override_optemplate |
| lld_override_optrends |
| maintenance_tag |
| maintenances |
| maintenances_groups |
| maintenances_hosts |
| maintenances_windows |
| media |
| media_type |
| media_type_message |
| media_type_oauth |
| media_type_param |
| mfa |
| mfa_totp_secret |
| module |
| opcommand |
| opcommand_grp |
| opcommand_hst |
| opconditions |
| operations |
| opgroup |
| opinventory |
| opmessage |
| opmessage_grp |
| opmessage_usr |
| optag |
| optemplate |
| permission |
| problem |
| problem_tag |
| profiles |
| proxy |
| proxy_autoreg_host |
| proxy_dhistory |
| proxy_group |
| proxy_group_rtdata |
| proxy_history |
| proxy_rtdata |
| regexps |
| report |
| report_param |
| report_user |
| report_usrgrp |
| rights |
| role |
| role_rule |
| scim_group |
| script_param |
| scripts |
| service_alarms |
| service_problem |
| service_problem_tag |
| service_status_rule |
| service_tag |
| services |
| services_links |
| sessions |
| settings |
| sla |
| sla_excluded_downtime |
| sla_schedule |
| sla_service_tag |
| sysmap_element_trigger |
| sysmap_element_url |
| sysmap_link_threshold |
| sysmap_shape |
| sysmap_url |
| sysmap_user |
| sysmap_usrgrp |
| sysmaps |
| sysmaps_element_tag |
| sysmaps_elements |
| sysmaps_link_triggers |
| sysmaps_links |
| tag_filter |
| task |
| task_acknowledge |
| task_check_now |
| task_close_problem |
| task_data |
| task_remote_command |
| task_remote_command_result |
| task_result |
| timeperiods |
| token |
| trends |
| trends_uint |
| trigger_depends |
| trigger_discovery |
| trigger_queue |
| trigger_tag |
| triggers |
| ugset |
| ugset_group |
| user_scim_group |
| user_ugset |
| userdirectory |
| userdirectory_idpgroup |
| userdirectory_ldap |
| userdirectory_media |
| userdirectory_saml |
| userdirectory_usrgrp |
| users |
| users_groups |
| usrgrp |
| valuemap |
| valuemap_mapping |
| widget |
| widget_field |
+-----------------------------------+
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
21.追加オプションの設定ファイルの確認(Job Arranger)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[root@om01 jobarg-build]# docker exec -it jobarg mysql -h zabbix-mysql -u zabbix -pzabbixpass zabbix -e "SELECT * FROM ja_2_index_table;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------+---------------------+
| count_id | nextid |
+----------+---------------------+
| 1 | 1 |
| 2 | 1500000000000000000 |
| 3 | 1600000000000000000 |
| 20 | 1 |
| 30 | 1 |
| 40 | 1 |
| 100 | 1 |
| 101 | 1 |
| 102 | 1 |
| 103 | 1 |
+----------+---------------------+
[root@om01 jobarg-build]#
[root@om01 jobarg-build]#
[root@om01 jobarg-build]#
[root@om01 jobarg-build]# docker exec -it jobarg ps aux | grep -E "httpd|php-fpm|jobarg"
root 15 0.0 0.1 181992 11660 ? Ss 12:14 0:00 php-fpm: mast
apache 16 0.0 0.1 184016 12988 ? S 12:14 0:00 php-fpm: pool
apache 17 0.0 0.1 184016 12988 ? S 12:14 0:00 php-fpm: pool
apache 18 0.0 0.1 184016 12988 ? S 12:14 0:00 php-fpm: pool
apache 19 0.0 0.1 184016 12988 ? S 12:14 0:00 php-fpm: pool
apache 20 0.0 0.1 184016 12992 ? S 12:14 0:00 php-fpm: pool
zabbix 31 0.0 0.0 1671892 6616 ? Sl 12:14 0:00 jobarg_manage
zabbix 55 0.0 0.0 1672148 8844 ? Sl 12:14 0:00 jobarg_server
[root@om01 jobarg-build]#
[root@om01 jobarg-build]#
[root@om01 jobarg-build]#
[root@om01 jobarg-build]# docker exec -it jobarg cat /usr/share/jobarranger/api/app/config/jam.config.php
<?php
// Zabbix Database params
define('DATA_SOURCE_NAME' , 'mysql'); //mysql=MySQL,pgsql=PostgreSQL
define('DB_HOST' , 'zabbix-mysql');
define('DB_USER' , 'zabbix');
define('DB_PASS' , 'zabbixpass');
define('DB_NAME' , 'zabbix');
define('DB_PORT' , '3306');

// Job Arranger Database params
define('JA_DB_HOST' , 'zabbix-mysql');
define('JA_DB_USER' , 'zabbix');
define('JA_DB_PASS' , 'zabbixpass');
define('JA_DB_NAME' , 'zabbix');
define('JA_DB_PORT' , '3306');


// Used for Zabbix Database TLS connection.
define('DB_ENCRYPTION', 0);
define('DB_CA_FILE', '');
define('DB_KEY_FILE', '');
define('DB_CERT_FILE', '');
define('DB_VERIFY_HOST', 0);
define('DB_CIPHER_LIST', '');

// Used for Job Arranger Database TLS connection.
define('JA_DB_ENCRYPTION', 0);
define('JA_DB_CA_FILE', '');
define('JA_DB_KEY_FILE', '');
define('JA_DB_CERT_FILE', '');
define('JA_DB_VERIFY_HOST', 1);
define('JA_DB_CIPHER_LIST', '');

//ZABBIX API URL
define('ZBX_API_ROOT', 'https://zabbix.sasio.jp/');
define('ZBX_REDIRECT_URL', 'https://jobarg.sasio.jp');

//SSL VERIFICATION 0=No 1=Yes
define('SSL_VERIFICATION', 0);

//Application Log Path (Dynamic links)
define('APPLICATION_LOG_PATH', '/var/log/jobarranger/manager/jobarg_manager.log');

//Application Log Level (Dynamic)
define('APPLICATION_LOG_LEVEL', 'INFO');

//Permission To access SETUP screen 0=No 1=Yes
define('CONFIG_CREATION_PERMISSION',1);
if (isset($_SERVER["HTTP_X_FORWARDED_PROTO"]) && $_SERVER["HTTP_X_FORWARDED_PROTO"] === "https") { $_SERVER["HTTPS"] = "on"; }
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
22.新規コンテナ構築の起動確認と設定確認(Job Arranger)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

# 状態確認
docker ps -f name=jobarg

[root@om01 jobarg-build]# docker ps -f name=jobarg
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
28f0cb8952c3 local/jobarg-server:7.2.1 "/bin/sh -c 'echo 'S…" 3 minutes ago Up 3 minutes 80/tcp, 0.0.0.0:10061->10061/tcp, [::]:10061->10061/tcp jobarg
[root@om01 jobarg-build]#

────────────────────────────────────────────────────────────
[root@om01 jobarg-build]# docker exec -it jobarg rpm -qa | grep jobarranger
jobarranger-agentd-7.2.1-1.el9.x86_64
jobarranger-server-7.2.1-1.el9.x86_64
jobarranger-manager-7.2.1-1.el9.x86_64
[root@om01 jobarg-build]#

────────────────────────────────────────────────────────────
③ ネットワーク待ち受け確認
ホストOSから 10061 ポートで接続を受け付ける準備ができているか確認します。

ss -nlt | grep 10061

[root@om01 jobarg-build]# ss -nlt | grep 10061
LISTEN 0 4096 0.0.0.0:10061 0.0.0.0:*
LISTEN 0 4096 [::]:10061 [::]:*
[root@om01 jobarg-build]#

────────────────────────────────────────────────────────────
① プロセス稼働確認
Server と Agent がコンテナ内で共存して動いているかを確認します。

docker exec -it jobarg-server ps aux | grep jobarg

[root@om01 jobarg-build]# docker exec -it jobarg ps aux | grep jobarg
zabbix 42 0.0 0.0 1672148 6732 ? Sl 09:39 0:00 jobarg_manage
zabbix 66 0.0 0.0 1672148 8820 ? Sl 09:39 0:00 jobarg_server
[root@om01 jobarg-build]#

────────────────────────────────────────────────────────────
② 接続ログの確認(最重要)
設定ファイル (jobarg_server.conf) の DBName 等の修正が正しく反映され、DB接続に成功しているかをログで確認します。

docker exec -it jobarg-server tail -n 50 /var/log/jobarranger/jobarg_server.log

[root@om01 jobarg-build]# docker exec -it jobarg-server tail -n 50 /var/log/jobarranger/jobarg_server.log
1:20260511:112525.320 [INFO] [JASERVER000001] Starting Job Arranger Server. Job Arranger 7.2.1 (revision 3786).
1:20260511:112525.320 [INFO] [JASERVER000003] server #0 started [main process]
33:20260511:112525.320 [INFO] [JASERVER000004] server #0 started [jobarg_server_monitor #1]
35:20260511:112525.322 [INFO] [JASERVER000004] server #1 started [notification_manager #1]
54:20260511:112526.657 [INFO] [JASERVER000004] server #2 started [zabbix_link_manager #1]
35:20260511:112527.657 [ERROR] [JAFRAMEWORK200009 notificationmanager] Parent process not found.Exiting the process. manager: notificationmanager
35:20260511:112527.657 [INFO] [JAFRAMEWORK000003 notificationmanager] Exiting go manager framework. manager: notificationmanager
54:20260511:112527.698 [ERROR] [JAFRAMEWORK200009 zabbixlinkmanager] Parent process not found.Exiting the process. manager: zabbixlinkmanager
54:20260511:112527.698 [INFO] [JAFRAMEWORK000003 zabbixlinkmanager] Exiting go manager framework. manager: zabbixlinkmanager
35:20260511:112537.666 [WARNING] [JAFRAMEWORK300001 notificationmanager] Stopping workers timeout.Sending SIGKILL. manager: notificationmanager
54:20260511:112537.706 [WARNING] [JAFRAMEWORK300001 zabbixlinkmanager] Stopping workers timeout.Sending SIGKILL. manager: zabbixlinkmanager
[root@om01 jobarg-build]#

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
22.zabbix-serverからzabbix-mysqlへの接続確認
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

docker exec zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT count(*) FROM information_schema.tables WHERE table_schema='zabbix';"

docker exec -it zabbix-server bash

mysql -h mysql -uzabbix -pzabbixpass --skip-ssl

MySQL [(none)]> USE zabbix;

SHOW TABLES LIKE 'config';

SELECT count(*) FROM information_schema.tables WHERE table_schema='zabbix';


[root@om01 zabbix]# docker exec -it zabbix-server bash
57082fc4c465:~$
57082fc4c465:~$
57082fc4c465:~$ mysql -h mysql -uzabbix -pzabbixpass --skip-ssl
mysql: Deprecated program name. It will be removed in a future release, use '/usr/bin/mariadb' instead
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.46 MySQL Community Server - GPL

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]>
MySQL [(none)]> USE zabbix;

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
23.zabbix-mysqlのレコード状態の確認(実行結果)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[root@om01 jobarg-build]# docker exec -it zabbix-mysql mysql -u root -pzabbixroot -e "SHOW GRANTS FOR 'zabbix'@'%';"
mysql: [Warning] Using a password on the command line interface can be insecure.
+---------------------------------------------------------+
| Grants for zabbix@% |
+---------------------------------------------------------+
| GRANT USAGE ON *.* TO `zabbix`@`%` |
| GRANT ALL PRIVILEGES ON `jobarranger`.* TO `zabbix`@`%` |
| GRANT ALL PRIVILEGES ON `zabbix`.* TO `zabbix`@`%` |
+---------------------------------------------------------+
[root@om01 jobarg-build]#

────────────────────────────────────────────────────────────────────────────────────────

[root@om01 zabbix]# docker exec zabbix-mysql mysql -uroot -pzabbixroot zabbix -t -e "SELECT host, port, base_dn, bind_dn FROM userdirectory_ldap WHERE userdirectoryid = 1;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------+------+----------------+------------------------------------------+
| host | port | base_dn | bind_dn |
+-------------+------+----------------+------------------------------------------+
| 172.26.4.43 | 389 | DC=sasio,DC=jp | CN=Administrator,CN=Users,DC=sasio,DC=jp |
+-------------+------+----------------+------------------------------------------+
[root@om01 zabbix]#

────────────────────────────────────────────────────────────────────────────────────────

[root@om01 zabbix]# docker exec zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT userdirectoryid, name, provision_status FROM userdirectory WHERE userdirectoryid = 1;"
mysql: [Warning] Using a password on the command line interface can be insecure.
userdirectoryid name provision_status
1 SASIO-AD 1

────────────────────────────────────────────────────────────────────────────────────────

[root@om01 zabbix]# docker exec -it zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT userdirectoryid, name FROM userdirectory;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+-----------------+----------+
| userdirectoryid | name |
+-----------------+----------+
| 1 | SASIO-AD |
+-----------------+----------+
[root@om01 zabbix]#

────────────────────────────────────────────────────────────────────────────────────────

[root@om01 zabbix]# docker exec zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT host, port, base_dn, bind_dn FROM userdirectory_ldap WHERE userdirectoryid = 1;"
mysql: [Warning] Using a password on the command line interface can be insecure.
host port base_dn bind_dn
172.26.4.43 389 DC=sasio,DC=jp CN=Administrator,CN=Users,DC=sasio,DC=jp


[root@om01 zabbix]# docker exec zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT count(*) FROM information_schema.tables WHERE table_schema='zabbix';"
mysql: [Warning] Using a password on the command line interface can be insecure.
count(*)
207
[root@om01 zabbix]#
[root@om01 zabbix]# docker exec -it zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT * FROM settings WHERE name IN ('authentication_type', 'userdirectoryid');"
mysql: [Warning] Using a password on the command line interface can be insecure.
+---------------------+------+-----------+-----------+----------------+-------------------+-----------------------+-------------+
| name | type | value_str | value_int | value_usrgrpid | value_hostgroupid | value_userdirectoryid | value_mfaid |
+---------------------+------+-----------+-----------+----------------+-------------------+-----------------------+-------------+
| authentication_type | 2 | | 0 | NULL | NULL | NULL | NULL |
+---------------------+------+-----------+-----------+----------------+-------------------+-----------------------+-------------+
[root@om01 zabbix]#

────────────────────────────────────────────────────────────────────────────────────────
[root@om01 zabbix]# docker exec -it zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "SELECT name, host, bind_password FROM userdirectory JOIN userdirectory_ldap USING(userdirectoryid);"
mysql: [Warning] Using a password on the command line interface can be insecure.
+----------+-------------+----------------------+
| name | host | bind_password |
+----------+-------------+----------------------+
| SASIO-AD | 172.26.4.43 | get04F15fr34!x07r008 |
+----------+-------------+----------------------+
[root@om01 zabbix]#

────────────────────────────────────────────────────────────────────────────────────────
docker exec -t zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "
SELECT '--- [userdirectory] ---' AS table_name;
SELECT userdirectoryid, name, idp_type FROM userdirectory;

SELECT '--- [userdirectory_ldap] ---' AS table_name;
SELECT host, port, base_dn, search_attribute FROM userdirectory_ldap;

SELECT '--- [settings (Auth Status)] ---' AS table_name;
SELECT name, value_int, value_userdirectoryid FROM settings WHERE name IN ('authentication_type', 'userdirectoryid');
"

[root@om01 zabbix]# docker exec -t zabbix-mysql mysql -uroot -pzabbixroot zabbix -e "
> SELECT '--- [userdirectory] ---' AS table_name;
> SELECT userdirectoryid, name, idp_type FROM userdirectory;
>
> SELECT '--- [userdirectory_ldap] ---' AS table_name;
> SELECT host, port, base_dn, search_attribute FROM userdirectory_ldap;
>
> SELECT '--- [settings (Auth Status)] ---' AS table_name;
> SELECT name, value_int, value_userdirectoryid FROM settings WHERE name IN ('authentication_type', 'userdirectoryid');
> "
mysql: [Warning] Using a password on the command line interface can be insecure.
+-------------------------+
| table_name |
+-------------------------+
| --- [userdirectory] --- |
+-------------------------+
+-----------------+----------+----------+
| userdirectoryid | name | idp_type |
+-----------------+----------+----------+
| 1 | SASIO-AD | 1 |
+-----------------+----------+----------+
+------------------------------+
| table_name |
+------------------------------+
| --- [userdirectory_ldap] --- |
+------------------------------+
+-------------+------+----------------+------------------+
| host | port | base_dn | search_attribute |
+-------------+------+----------------+------------------+
| 172.26.4.43 | 389 | DC=sasio,DC=jp | sAMAccountName |
+-------------+------+----------------+------------------+
+----------------------------------+
| table_name |
+----------------------------------+
| --- [settings (Auth Status)] --- |
+----------------------------------+
+---------------------+-----------+-----------------------+
| name | value_int | value_userdirectoryid |
+---------------------+-----------+-----------------------+
| authentication_type | 1 | NULL |
| userdirectoryid | 0 | 1 |
+---------------------+-----------+-----------------------+
[root@om01 zabbix]#

────────────────────────────────────────────────────────────────────────────────────────

[root@om01 zabbix]#
[root@om01 zabbix]#
[root@om01 zabbix]# docker exec -t zabbix-mysql mysql -uzabbix -pzabbixpass zabbix -e "
> SELECT
> uig.name AS pattern,
> r.name AS role,
> ug.name AS zabbix_group
> FROM userdirectory_idpgroup uig
> JOIN role r ON uig.roleid = r.roleid
> JOIN userdirectory_usrgrp uug ON uig.userdirectory_idpgroupid = uug.userdirectory_idpgroupid
> JOIN usrgrp ug ON uug.usrgrpid = ug.usrgrpid;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+---------+------------------+-----------------------+
| pattern | role | zabbix_group |
+---------+------------------+-----------------------+
| * | Super admin role | Zabbix administrators |
+---------+------------------+-----------------------+
[root@om01 zabbix]#
(14-14/14)