0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JS7® JobScheduler Open-AudITインベントリ収集のスケジューリング連携

0
Last updated at Posted at 2026-03-19

1.インベントリ収集のスケジューリング

Open-AudITでは、有償のProfessional版、Enterprise版を使用することにより、Tasksにてスケジュールを作成することにより、作成した対象のDiscoveriesを選択し、定期的にインベントリ収集を行うことができます。
Community版では本機能を使用することができないため、独SOS社(Software- und Organisations-Service GmbH)によって開発されている、JS7®JobSchedulerを使用し、定期的にインベントリ収集をスケジューリングする方法を記載します。

Open-AudIT

Open-AudITの詳細は以下をご参照ください。

Open-AudITのインストール方法につきましては以下をご参照ください

JS7

JS7の詳細な情報については、以下をご覧下さい。

JS7® JobSchedulerの概要及びインストール方法については以下を参照ください
Dockerでのインストール手順 https://qiita.com/satoruf/items/360fee5293611433ed33
Windowsでのインストール手順 https://qiita.com/Yoshitami/items/6804584592956a483364
Linux/CLIでのインストール手順 https://qiita.com/satoruf/items/fa9846f4376d1a50a67e
Linux/インストールスクリプト手順 https://qiita.com/Yoshitami/items/c2bf066368b4c5cf486e
JS7® JobSchedulerクイックスタート https://qiita.com/satoruf/items/96f21ef25bcb35e47b21

2.インストール環境

JS7サーバインストール環境

  • Red Hat Enterprise Linux release 9.7 (Plow)
  • JS7 2.8.2
  • PostgreSQL 13.23
  • openjdk 17.0.2
  • スタンドアロン構成
  • JOC、Controller、Agent、DBは同居
  • JS7インストールユーザ:scheduler
  • SELinuxはDisabled、Firewalldは停止されていること

※JS7サーバのJOC、Controller、Agentはインストール、初期設定済みとします。
 インストール、初期設定の方法は上記のインストール手順をご参照ください。

Open-AudITサーバインストール環境

  • Red Hat Enterprise Linux release 9.7 (Plow)
  • Open-AudIT 6.0.2
  • MariaDB 15.1
  • Apache 2.4
  • PHP 8.3
  • JS7 2.8.2
  • openjdk 17.0.2
  • JS7インストールユーザ:scheduler
  • SELinuxはDisabled、Firewalldは停止されていること

※Open-AudITサーバのOpen-AudITはインストール、初期設定済みとします。
 インストール、初期設定の方法は上記のインストール手順をご参照ください。

3.Open-AudITサーバへJS7 Agentのインストール

Open-AudITサーバへ、ジョブが実行できるように、JAVAとAgentをインストールします。

JAVAのインストール

以下より、JAVAダウンロードし、適当なディレクトリに配置します。

・ファイル名:openjdk-17.0.2_linux-x64_bin.tar.gz
・配置先:/root/work

# mkdir /root/work
# cd /root/work
# wget https://download.java.net/java/GA/jdk17.0.2/dfd4a8d0985749f896bed50d7138ee7f/8/GPL/openjdk-17.0.2_linux-x64_bin.tar.gz
# mkdir -p /usr/java
# tar zxvf openjdk-17.0.2_linux-x64_bin.tar.gz -C /usr/java/
# alternatives --install /usr/bin/java java /usr/java/jdk-17.0.2/bin/java 1
# alternatives --install /usr/bin/javac javac /usr/java/jdk-17.0.2/bin/javac 1
# ln -s /usr/java/jdk-17.0.2 /usr/java/latest
# ln -s /usr/java/latest /usr/java/default

javaインストール確認

# java --version
openjdk 17.0.2 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)
# javac --version
javac 17.0.2

Agentインストールユーザの作成

Agentのインストールユーザを作成します。

# useradd scheduler
[root@js7rhel ~]# passwd scheduler
ユーザー scheduler のパスワードを変更。
新しい パスワード: <パスワードを入力>

以下を追記します。

scheduler ALL=(ALL)       NOPASSWD: ALL

Agentインストーラをダウンロード

以下からの作業はインストールユーザのschedulerで作業します。

# su - scheduler

以下のサイトからJS7のAgentのパッケージ、インストールスクリプトをダウンロードし、配置します。

・ファイル名:js7_agent_unix.2.8.2.tar.gz
       js7_install_agent.sh
・配置先:/root/work

$ mkdir /home/scheduler/work
$ cd /home/scheduler/work/
$ wget https://download.sos-berlin.com/JobScheduler.2.8/js7_agent_unix.2.8.2.tar.gz
$ wget https://download.sos-berlin.com/JobScheduler.2.8/js7_install_agent.sh

Agentのインストール

ダウンロードしたインストールスクリプトを使用してAgentのインストールを行います。
Agentのインストール先はデフォルトの以下とします。

ホームディレクトリ:/opt/sos-berlin.com/js7/agent
データディレクトリ:<ホームディレクトリ>/var_4445

$ cd /home/scheduler/work/
$ ./js7_install_agent.sh \
--tarball=js7_agent_unix.2.8.2.tar.gz \
--home=/opt/sos-berlin.com/js7/agent \
--http-port=4445 \
--home-owner=scheduler \
--make-dirs \
--make-service \
--service-name=agent_4445 \
--exec-start=StartService

Agentの登録

Open-AudITサーバにインストールしたAgentをJS7へ登録を行います。

JOCのWebUIにログインします。

http://<JS7サーバのIPアドレス>:4446
アカウント:root
パスワード:root

ログイン後、設定 > コントローラ/エージェント管理 に移動し、「単独エージェント追加」を選択します。

12.png

Agent情報を入力し登録します。

image.png

本書では以下の設定とします。

エージェントID:oa_agent
エージェント名:oa_agent
URL:http://<Open-AudITサーバのIPアドレス>:4445

登録後、追加したAgentを選択し配置します。
配置後、ステータスが「同期済」になることを確認します。

13.png

4.JS7 Open-AudITインベントリ収集のスケジューリング連携

Open-AudIT3.3.0未満のバージョンだと「discover_subnet.vbs」、「discover_subnet.sh」のスクリプトを使用することにより、ディスカバリを実行することをができましたが、3.3.0以降は、「discover_subnet.vbs」、「discover_subnet.sh」は廃止されているためスクリプトからの実行は行えません。
そのため、スクリプトではなく、REST APIを使用して実行する必要があります。

使用するAPI

本書では以下のREST APIは以下を使用します。

・ログイン

Section
URL POST http://<Open-AudITのIPアドレス>/open-audit/index.php/logon
Headers Accept application/json
Body Type form-data
Key username <Opne-Auditのユーザ名>
password <Opne-Auditのパスワード>

※ユーザはREST APIの実行権限があるユーザを指定します

・サブネットの更新

Section
URL PATCH http://<Open-AudITのIPアドレス>/open-audit/index.php/discoveries/<ディスカバリID>
Headers Accept application/json
Cookie $COOKIEFL (認証済みセッション情報)
Body Type x-www-form-urlencoded
Key data {"data":{"id":"<ディスカバリID>","type":"discoveries","attributes":{"subnet":"<サブネット>"}}}

・ディスカバリの実行

Section
URL GET http://<Open-AudITのIPアドレス>/open-audit/index.php/discoveries/<ディスカバリID>/execute
Headers Cookie $COOKIEFL (認証済みセッション情報)

その他のAPIや使用方法の詳細は以下になります。

スクリプトの作成

Open-AudITサーバにログインし、スクリプトを作成します。
※スクリプト内にてDiscoveries IDを使用します、そのため事前にOpen-AudITにて作成する必要があります。

・対象:Open-AudITサーバ
・配置先:/usr/local/sbin
・スクリプト:discoveries.sh
・オーナグループ:scheduler
・パーミッション:755

# cd /usr/local/sbin
# vim discoveries.sh
# chown scheduler. discoveries.sh 
# chmod +x discoveries.sh

discoveries.shの中身は以下になります。
※以下のスクリプトはあくまでサンプルとなるため参考程度でお願いします。

#!/bin/bash

# Open-AudITアクセス情報
HOST=localhost
URL=http://$HOST/open-audit/index.php
USER=admin
PASS=password

# cookie保存先
COOKIEDIR=/var/tmp
COOKIEFL=$COOKIEDIR/cookies.txt

# DiscoveriesID 事前にOpen-AudITのWebUIで作成しIDを確認すること
DSCID=3

# インベントリ収集を行うサブネット
SUBNET="
192.168.9.129
192.168.9.181
192.168.110.245
"

echo -e "Open-AudIT Inventory Collection Script Initiation.\n"

## Tokenの取得
TOKEN=`curl -X POST -d "username=$USER&password=$PASS" -H "application/json" -c $COOKIEFL $URL/logon -o /dev/null -w '%{http_code}\n' -s`

if [ "$TOKEN" -eq 200 ]
then
        for DSCSUBNET in $SUBNET
        do
                ## インベントリ収集を行うサブネットを更新
                echo "Discoveries subnet update. SUBNET=$DSCSUBNET"
                SUBNETUPDATE=`curl -X PATCH $URL/discoveries/$DSCID -H "application/json" -b $COOKIEFL  \
                                --data-urlencode "data={\"data\":{\"id\":\"$DSCID\",\"type\":\"discoveries\", \
                                \"attributes\":{\"subnet\":\"$DSCSUBNET\"}}}" \
                                -o /dev/null -w '%{http_code}\n' -s`
                if [ "$SUBNETUPDATE" -eq 200 ]
                then
                        ## ディスカバリの実行
                        EXECUTE=`curl -s -X GET $URL/discoveries/$DSCID/execute -b $COOKIEFL -o /dev/null -w '%{http_code}\n' -s`
                        if [ "$EXECUTE" -eq 200 ]
                        then
                                echo "Execute discovery subnet = $DSCSUBNET"
                                sleep 10
                        else
                                echo "Execute Discovery failed. Status code: $EXECUTE"
                                exit 1
                        fi

                else
                        echo "Discoveries subnet update failed. Status code: $SUBNETUPDATE "
                        exit 1
                fi
        done

else
        echo "Open-AudIT access failed. Status code: $TOKEN"
        exit 1
fi

rm -f $COOKIEFL


echo -e "\nFinish Open-AudIT Inventory Collection Script"

#

ワークフローの作成

JS7にてワークフローを作成します。
ワークフローの詳細は以下をご参照ください。

JOCのWebUIにログインし、ジョブ設定に移動します。
http://<JS7サーバのIPアドレス>:4446

新規フォルダーを作成します。
本書では「Open-AudIT」とします。

image.png

作成したフォルダーの「Open-AudIT」にワークフローを作成します。
本書では、「Discoveries」とします。

image.png

必要情報を入力し、ジョブを作成し配置します。
本書では以下とします。

17.png

名称:Discoveries
ラベル:Discoveries
エージェント:oa_agent
スクリプトの内容は以下になります。
※以下のスクリプトはあくまでサンプルとなるため参考程度でお願いします。

#!/bin/bash

## インベントリ収集スクリプトの実行
/usr/local/sbin/discoveries.sh

RCODE=$?

exit ${RCODE}

## 

実行計画の作成

定期的にワークフローを実行するためにスケジュール設定を行います。
実行計画、スケジュール詳細について以下をご参照ください。

作成したフォルダーの「Open-AudIT」にカレンダーを作成します。
本書では、「OACalendar」とします。

image.png

作成した「OACalendar」に周期を追加し、リリースします。
本書では、以下の画像のようにします。

image.png

次にスケジュールを作成します。
本書では、「OAShedule」とします。

image.png

ランタイムにて作成した「OACalendar」を営業日カレンダーに指定し、開始時間を追加します。
本書では、以下とします。

image.png

繰返間隔:シングルスタート
開始時刻:18:00:00
休日:デフォルト

ワークフロー名で、作成した「Discoveries」を指定します。

image.png

本日分も実行する場合は「本日の最新オーダを含む」にチェックを入れリリースします。

16.png

実行計画のタブにて、本日のオーダが作成されていることを確認します。

image.png

インベントリ収集の確認

JS7にて作成したスケジュールの時間にワークフローが実行されたか確認を行います。

ワークフローのタブにて実行されたワークフロー「Discoveries」のオーダー履歴を確認し正常に終了していることを確認します。

18.png

また、Open-AudITのWebUIにてDiscovery Logでもログの確認を行います。

DiscoveriesのタブにてLogsを確認し正常にディスカバリが実行されていることを確認します。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?