◀ 4.

JP1/Baseとは|ユーザー認証・ユーザーマッピング・イベントサービスの仕組みと主要コマンド

▶
この記事の要点
  • JP1/Base は JP1 製品群の土台。JP1/AJS3 や JP1/IM の前提製品で、各ホストに入れる
  • 主な機能は ユーザー認証(JP1 ユーザーと権限)、ユーザーマッピング(JP1 ユーザーを OS ユーザーに対応付け)、イベントサービス(JP1 イベントの保存と転送)
  • アプリのログ行を JP1 イベントに変える ログファイルトラップ、Windows の イベントログトラップもここに含まれる
  • プロセスのハングアップや異常終了を検知するヘルスチェック機能(初期設定は無効)、イベントを契機にコマンドを動かすローカルアクションもある
  • 状態確認は jbs_spmd_status(イベントサービス以外)と jevstat(イベントサービス)

JP1/Base とは

JP1/Base は、日立の JP1 製品群に共通する基盤機能を提供するプログラムです。ジョブ管理の JP1/AJS3 も、統合管理の JP1/IM も、JP1/Base を前提製品として動きます。単独で業務に使う製品というより、「JP1 を入れるなら各ホストにまず入れておくもの」と考えるのが実態に近いでしょう。

JP1/Base が担う仕事は、大きく次の 3 つです。

  1. 誰が何をしてよいかを管理する(ユーザー認証・権限管理)
  2. どの OS ユーザーで実行するかを決める(ユーザーマッピング)
  3. 何が起きたかを JP1 イベントとして記録し、上位のサーバーへ届ける(イベントサービス)

JP1/AJS3 でジョブが「起動失敗」になる、JP1/IM にイベントが上がってこない、といったトラブルの原因は JP1/Base の設定にあることが少なくありません。この記事では、日立の公式マニュアル「JP1/Base 運用ガイド」(Version 13)をもとに、各機能の仕組みと確認方法を整理します。

ユーザー認証:JP1 ユーザーと認証サーバ

JP1/AJS3 - View や JP1/IM - View からマネージャーにログインするときは、OS のアカウントではなく JP1 ユーザーを使います。JP1 ユーザー名とパスワードは認証サーバに登録され、ログイン時の照合は認証サーバ上で行われます。認証サーバは、JP1/Base がインストールされたホストであればどれでもかまいません。

  • JP1 資源グループ: ジョブやジョブネットなどの操作対象(JP1 資源)をグループ化したもの。JP1/IM では JP1/IM の各種設定が JP1 資源グループとして扱われる
  • JP1 権限レベル: JP1 資源グループに対して、そのユーザーが何をできるか。JP1/AJS3 用には JP1_AJS_Admin や JP1_AJS_Operator などがある
  • パスワードポリシー: 最小文字数(6〜32 バイト)と最小文字種(数字・英大文字・英小文字・記号)をチェックできる

認証圏とセカンダリー認証サーバ

同じ認証サーバを参照しているホストの集まりをユーザー認証圏と呼びます。同じ認証圏の中なら、たとえば JP1/IM - View でログインした状態から別ホストの JP1/AJS3 - View のモニター画面を呼び出すときに、ログインし直す必要がありません。

認証サーバが止まるとログインもジョブ操作もできなくなるため、1 つの認証圏にプライマリーとセカンダリーの 2 台を置けます。プライマリーに接続できないと自動でセカンダリーに切り替わり、接続に失敗した側は「閉塞状態」になります。切り替えが起きるのは通信障害や認証サーバ停止のときだけで、パスワードの入力ミスでは切り替わりません。プライマリー復旧後に閉塞状態を手動で解除する必要がある点は運用手順に入れておきましょう。

ユーザーマッピング:ジョブを OS ユーザーで動かす仕組み

JP1 ユーザーが他のホストでジョブやコマンドを実行するとき、実際の処理はそのホストの OS ユーザーの権限で動きます。そのため、実行先ホストで「どの JP1 ユーザーからの命令を」「どのサーバホストからなら」「どの OS ユーザーで実行するか」の 3 点を対応付けます。これがユーザーマッピングです。

JP1/AJS3 の場合は、ジョブを実行する Agent ホストだけでなく、View からログインする Manager ホストでもマッピングが必要です。JP1/IM の場合は、画面からコマンドを実行するホストや自動アクションの実行先ホストで設定します。

マッピングは定義ファイル jp1BsUmap.conf(UNIX は /etc/opt/jp1base/conf/user_acl/)に 1 行 1 エントリーで書き、jbsmkumap で反映します。書式は「JP1 ユーザー名:サーバホスト名:ユーザーリスト」で、* はすべての JP1 ユーザー、またはすべてのサーバホストを表します。

; JP1ユーザー名:サーバホスト名:OSユーザー名(複数ならカンマ区切り、先頭がプライマリー)
jp1admin:*:Administrator
jp1user1:ajsmgr01:batchuser
# 定義ファイルの内容を登録(既存のマッピングは置き換わる)
jbsmkumap

# 登録済みのマッピングを確認
jbsgetumap

# 1 件だけ追加する場合
jbssetumap -u jp1user1 -sh ajsmgr01 -o batchuser

Windows では OS ユーザーのパスワードも JP1/Base 側で管理します(jbspassmgr などで登録)。Windows で OS ユーザーのパスワードを変更したら、JP1/Base のパスワード情報も更新しないと、マッピングを使うジョブが動かなくなります。また、jbsmkumap や jbssetumap でマッピングを更新している間は JP1/AJS3 のジョブ実行などができないため、大量の変更はメンテナンス時間に行うよう公式マニュアルで案内されています。

イベントサービス:JP1 イベントの保存と転送

イベントサービスは、システムで起きた事象を JP1 イベントとして登録・管理する機能で、イベントサーバというプログラムが担います。できることは次の 2 つです。

  • 保存: JP1 イベントを各ホストのイベント DBに蓄積する。イベント DB はデータ・インデックス・転送情報がそれぞれ 2 面あり、容量(設定ファイルの db-size)や保管期限に達すると面を切り替え、古い面は消して再利用する
  • 転送: 転送設定ファイル(forward)のイベントフィルターに従い、重要なイベントだけを上位の管理サーバへ転送する。失敗時は自動でリトライする

イベント DB はサイズが一定でローテーションするため、古いイベントは自動的に消えます。長期保存が必要なら JP1/IM の統合監視 DB やイベントの CSV 出力(jevexport)を使います。また、イベントサービスの稼働中に OS コマンドやバックアップソフトでイベント DB をバックアップ・リストアすると破損するおそれがある、と注意喚起されています。

JP1 イベントの中身

JP1 イベントは基本属性と拡張属性で構成されます。基本属性にはイベント ID(8 バイトの値)、メッセージ、登録時刻、発行元イベントサーバ名、イベント DB 内の通し番号などが入ります。拡張属性の共通情報には SEVERITY(重大度)、PRODUCT_NAME、OBJECT_NAME、RESULT_CODE などがあります。重大度に指定できる値は Emergency・Alert・Critical・Error・Warning・Notice・Information・Debug の 8 種類です。

jevsend で独自の JP1 イベントを発行する

運用スクリプトから JP1 イベントを出したいときは jevsend を使います。イベント ID は 0〜1FFF または 7FFF8000〜7FFFFFFF の範囲、メッセージは 1,023 バイトまでです。重大度は -e SEVERITY=値 の拡張属性で指定し、値は先頭だけ大文字にします。-s は重大度ではなく送信元イベントサーバ名なので取り違えないよう注意してください。

# イベントID 111、重大度 Error のイベントを発行
jevsend -i 111 -m "daily_batch: 売上集計が異常終了しました" -e SEVERITY=Error

ログファイルトラップとイベントログトラップ

ログファイルトラップは、アプリケーションのログファイルを監視し、条件に合う行を JP1 イベントに変換してイベント DB に登録する機能です。監視するログの形式と変換条件を「ログファイルトラップ動作定義ファイル」に書き、jevlogstart で開始します。1 つのログファイルトラップで複数のログを監視でき、複数のトラップを同時に動かすこともできます。

# 動作定義ファイルを指定して、5 秒間隔でログを監視(監視名 app1)
jevlogstart -f /etc/opt/jp1base/conf/app1_trap.conf -t 5 -a app1 /var/log/app1/app.log

# ログファイルトラップ管理デーモンの状態確認
jevlogdstat

監視間隔 -t は 1〜86,400 秒で、省略時は 10 秒です。JP1 イベントとして登録できるメッセージは、-m を省略した場合 511 バイトまでで、超えた部分は切り捨てられます。-m を指定すると 1,023 バイトまで登録できます。Windows では、イベントログを JP1 イベントに変換するイベントログトラップも使えます。

ヘルスチェック機能とローカルアクション

ヘルスチェック機能は、JP1/Base のプロセスのハングアップ(無限ループやデッドロックで要求を受け付けない状態)や異常終了を検知し、メッセージや JP1 イベントで通知する機能です。監視対象はプロセス管理(jbs_spmd)、認証サーバ(jbssessionmgr)、イベントサービス(jevservice)、ログファイルトラップ(jevlogd など)、ローカルアクション(jbslcact)などで、初期設定では無効なので使う場合は有効化の設定が必要です。なお、OS の kill コマンドで強制終了された場合は「異常終了」ではなく「応答がない状態」として検知されます。

ローカルアクションは、エージェントホストで発生した JP1 イベントを契機に、そのホスト上で登録済みのコマンドを自動実行する機能です。マネージャーとの通信を介さないため、ネットワーク負荷を抑えられ、ネットワーク障害中でも実行できます。どのイベントで何を実行するかは「ローカルアクション実行定義ファイル」に定義します。

主要コマンド

用途コマンド補足
起動・停止(UNIX)jbs_start / jbs_stop/etc/opt/jp1base/。イベントサービスを含めた JP1/Base 全体
状態確認jbs_spmd_statusイベントサービス以外のプロセス群。戻り値 0 全起動、4 一部起動、8 全停止
イベントサービスの状態jevstatイベントサービスの状態確認
JP1 ユーザーの登録・一覧・削除jbsadduser / jbslistuser / jbsrmuser認証サーバに対して実行する
操作権限の登録・表示jbssetacl / jbslistaclJP1 資源グループと権限レベルの設定
マッピングjbsmkumap / jbssetumap / jbsgetumap / jbsrmumap一括登録 / 個別登録 / 一覧 / 個別削除
JP1 イベントjevsend / jevexport発行 / イベント DB の CSV 出力
転送設定の再読み込みjevreloadforward を変更したあとに実行
ログファイルトラップjevlogstart / jevlogstop / jevlogstat開始 / 停止 / 状態
# 自動起動を有効にする(UNIX、インストール後に一度だけ)
cd /etc/opt/jp1base
cp -p jbs_start.model jbs_start

# 起動して状態を確認
/etc/opt/jp1base/jbs_start
/opt/jp1base/bin/jbs_spmd_status

# JP1 ユーザーを登録(パスワードは対話で入力)
/opt/jp1base/bin/jbsadduser jp1user1

JP1 ユーザー名は小文字のみ、1〜31 バイトです。jbs_start をリモートシェルから実行する場合は、標準入出力を /dev/null に向けておかないとシェルが戻らないことがある、という注意も公式マニュアルにあります。

トラブル時の確認ポイント

  1. プロセスは動いているか: jbs_spmd_status と jevstat で確認する
  2. ログインできない: 認証サーバの設定(jbslistsrv)と閉塞状態、JP1 ユーザーの登録(jbslistuser)を確認する
  3. ジョブやコマンドが起動失敗する: 実行先ホストの jbsgetumap でマッピングを確認する。サーバホスト名は hostname コマンドで表示される名前と一致させ、DNS でドメイン名を使う場合は FQDN の定義も追加する
  4. イベントが上位に届かない: 転送設定ファイルのフィルター条件と、変更後に jevreload したかを確認する

関連

公式情報: JP1/Base 運用ガイド(日立製作所)

Post Share
子ページ

子ページはありません

同階層のページ
  1. JP1/AJS3 とは
  2. JP1/AJS3 のコマンド一覧
  3. JP1/IM とは
  4. JP1/Base とは
  5. JP1/FTP(JP1/FTS)とは

最近更新/作成されたページ