ジョブ管理・監視
ジョブ管理・監視とは
ジョブ管理と監視は、業務システムを安定して運用するための 2 つの柱である。ジョブ管理 はバッチ処理のスケジュール実行や異常時の対応を制御する仕組みであり、監視 はシステムの稼働状態をリアルタイムに把握して異常を検知する仕組みである。
SIer の業務システムでは、ユーザーが画面から操作するオンライン処理だけでなく、夜間や月末に自動実行されるバッチ処理が大量に存在する。これらを確実に実行し、問題が発生した際に速やかに対応するための基盤がジョブ管理と監視である。
なぜ SIer で重要か
SIer が構築する業務システムは「止まってはいけないシステム」が多い。銀行の口座振替、自治体の給与計算、ECサイトの在庫更新など、バッチ処理が正常に完了しなければ業務に直接的な影響が出る。
また、システム障害が発生した際には迅速な検知と対応が求められる。監視の仕組みがなければ、障害の発生に気づくのが「ユーザーからのクレーム」になってしまう。開発者であっても、障害対応やバッチ処理のトラブルシューティングに関わる場面は多いため、ジョブ管理と監視の基礎を理解しておく必要がある。
基本概念
ジョブ管理
ジョブとは
ジョブとは、システムが自動実行する処理の単位である。業務システムでは以下のようなバッチ処理がジョブとして定義される。
| ジョブの種類 | 実行タイミング | 例 |
|---|---|---|
| 日次バッチ | 毎日(多くは夜間) | 売上集計、ログローテーション、データ連携 |
| 月次バッチ | 月末・月初 | 請求書作成、給与計算、月次レポート生成 |
| 年次バッチ | 年度末・年度初 | 年次決算処理、マスターデータ更新 |
| 随時バッチ | 必要に応じて手動実行 | データ移行、緊急パッチ適用 |
ジョブネット
ジョブネットとは、複数のジョブの実行順序と依存関係を定義したものである。
ジョブネットの例(日次売上集計):
[売上データ取込] → [データ検証] → [売上集計] → [レポート生成] → [メール通知]
│
├→ 正常終了 → 次のジョブへ
└→ 異常終了 → アラート通知 + 処理停止
前のジョブが正常に完了しないと次のジョブは実行されない。異常が発生した場合は処理を停止し、運用担当者に通知する。原因を調査・修正した後に、異常が発生したジョブから再実行(リラン)することも可能である。
主なジョブ管理製品
| 製品名 | 開発元 | 特徴 |
|---|---|---|
| JP1/AJS | 日立製作所 | SIer で圧倒的なシェア。日本の業務システムの標準 |
| Systemwalker | 富士通 | 富士通系の案件で使用。統合運用管理製品 |
| A-AUTO | ユニリタ | メインフレームからオープン系まで対応 |
| 千手 | NRI | NRI グループの案件で使用 |
cron との違い
Linux の cron でもジョブのスケジュール実行は可能だが、エンタープライズ向けのジョブ管理製品は以下の点で優れている。
| 機能 | cron | JP1/AJS 等 |
|---|---|---|
| スケジュール実行 | 可能 | 可能 |
| ジョブの依存関係管理 | 不可 | 可能(ジョブネット) |
| 異常時のリラン | 手動で再実行 | GUI から対象ジョブを再実行 |
| カレンダー管理 | 不可 | 営業日・休日を考慮した実行制御 |
| 実行履歴の管理 | ログを自前で管理 | GUI で実行結果・ログを一元管理 |
| 複数サーバーの統合管理 | サーバーごとに設定 | 一元管理(マネージャー/エージェント構成) |
監視
監視の種類
システム監視には、目的に応じた複数の種類がある。
| 監視の種類 | 対象 | 説明 |
|---|---|---|
| 死活監視 | サーバー、サービス | サーバーやプロセスが動作しているかを確認(ping、ポート応答) |
| リソース監視 | CPU、メモリ、ディスク | ハードウェアリソースの使用率を監視。閾値超過でアラート |
| ログ監視 | アプリケーションログ | ログファイルに特定の文字列(ERROR 等)が出力されたら検知 |
| プロセス監視 | AP サーバー等のプロセス | 対象プロセスが稼働しているかを監視 |
| URL 監視 | Web アプリケーション | HTTP リクエストを送信し、正常なレスポンスが返るかを確認 |
主な監視製品
| 製品名 | 開発元 | 特徴 |
|---|---|---|
| Zabbix | Zabbix LLC | OSS。SIer でも採用が増加中。柔軟なカスタマイズ |
| Hinemos | NTTデータ | OSS。日本製の統合運用管理ツール |
| Nagios | Nagios Enterprises | OSS。監視ツールの老舗。プラグインが豊富 |
| JP1/IM | 日立製作所 | JP1 シリーズの統合監視。JP1/AJS と連携 |
| Datadog | Datadog | SaaS 型。クラウド環境の監視に強い |
アラートと障害対応
監視ツールが異常を検知した場合、以下の流れで対応が行われる。
障害対応フロー:
[監視ツールが異常検知]
│
▼
[アラート通知] ← メール、電話、チャット(Slack 等)
│
▼
[一次対応] ← 運用チームが状況確認・暫定対応
│
├→ 運用手順書で対応可能 → 手順に沿って復旧
│
└→ 対応不可 → エスカレーション(開発チーム・上位者に連絡)
│
▼
[二次対応] ← 原因調査・本格復旧
SIer での使われ方
運用体制
SIer の大規模システムでは、運用チームが 24 時間 365 日の監視体制を敷いていることが多い。開発チームとは別に運用チームが存在し、夜間や休日の障害にも対応する。
開発者は直接監視画面を見ることは少ないが、以下の場面でジョブ管理・監視に関わる。
- バッチ処理の設計 --- ジョブの実行順序、依存関係、異常時の処理を設計書に記載する
- 障害対応 --- 運用チームからエスカレーションされた障害の原因調査を行う
- リリース時のジョブ登録 --- 新しいバッチ処理を追加する際、ジョブ管理ツールへの登録を依頼する
監視項目の設計
システムの非機能要件として、どのような監視を行うかを設計段階で定義する。
監視設計の例:
┌────────────┬──────────┬───────────┬──────────┐
│ 監視対象 │ 監視種類 │ 閾値 │ 通知先 │
├────────────┼──────────┼───────────┼──────────┤
│ Web サーバー │ 死活監視 │ 応答なし 30秒 │ 運用チーム │
│ AP サーバー │ CPU 使用率 │ 80% 超過 │ 運用チーム │
│ AP サーバー │ ヒープ使用率 │ 90% 超過 │ 開発チーム │
│ DB サーバー │ ディスク使用率│ 85% 超過 │ インフラチーム│
│ アプリログ │ ログ監視 │ ERROR 検知 │ 開発チーム │
└────────────┴──────────┴───────────┴──────────┘
まとめ
- ジョブ管理はバッチ処理のスケジュール実行・依存関係管理・異常時対応を行う仕組みであり、JP1/AJS が SIer で最も広く使われている
- 監視はシステムの稼働状態をリアルタイムに把握し、死活監視・リソース監視・ログ監視等で異常を検知する仕組みである
- 障害検知時はアラート通知 → 一次対応 → エスカレーション → 二次対応の流れで対応する
- 開発者もバッチ処理の設計や障害対応を通じてジョブ管理・監視に関わる場面がある
- 監視項目と閾値は非機能要件として設計段階で定義する