

LoadStar SchedulerをZabbixで監視!ジョブ・プロセス異常検知から通知まで
こんにちは。システムマネジメントサービス1部 運用プロダクトサービスアカウント LSSチームの大畑です。
『ちょうどいいジョブ管理システム』として当社が紹介しているジョブ管理システム「LoadStar Scheduler(ロードスタースケジューラ)」はもうチェックしていただけたでしょうか。
LoadStar Schedulerは、シンプルで分かりやすいジョブ管理を実現します。加えて、実はZabbixのような監視ツールとの親和性が高いのも特長です。LoadStar Schedulerにない監視・通知機能をZabbixに任せれば、インフラ環境からジョブの実行状況まで、監視を一元化できます。
そう。通知機能がないなら、使い慣れた監視ツールに通知を任せれば良いんです!
本記事では、ジョブ管理システム「LoadStar Scheduler」と監視ツール「Zabbix」を連携させます。それぞれの役割を「ジョブ実行」と「監視・通知」に明確に分担することで、低コストでも現実的な運用に耐えるジョブ運用基盤を作る――そんなアイデアを紹介します。
LoadStar Scheduler × Zabbix の連携
今回は、実際にLoadStar Schedulerで実行したジョブの実行状況をZabbixで監視し、異常検知から通知まで行えることを検証します。
検証環境
本記事では、RHEL 9系のサーバーを2台準備し、それぞれにLoadStar SchedulerマネージャーとZabbixサーバーをインストールしています。また、通知方式として、メール通知およびTeams通知の2パターンを紹介したいと思います。それでは、具体的な構成とテスト内容を見ていきましょう。
LoadStar Schedulerマネージャーサーバー
- LoadStar Scheduler V1.9.3
- MariaDB 10.5.29
- Zabbix Agent2 7.0.28
Zabbixサーバー
- Zabbix Server 7.0.28
- PostgreSQL 13.23
- Postfix 3.5.25
テスト用ジョブ(LoadStar Scheduler)
下図のようなテストジョブを作成しました。今回はテスト用なので、スケジュール設定はせず、好きな時に実行できるよう「随時実行」のジョブとして作成しています。


上図の赤枠で囲われているジョブの終了コードによって、正常/警告/異常を判断し、後続のスイッチジョブへと処理が分岐していく造りになっています。分岐後は、残りの2パターンの処理はSKIPされます(実行されない)。
このジョブの実行状況と、実行ツールであるLoadStar Schedulerそのものの監視設定を、Zabbixに登録していきます。
システム連携時の制約事項
LoadStar SchedulerとZabbixの連携にあたって、一つだけ制約があります。それは、LoadStar SchedulerマネージャーとZabbixサーバーを別々のサーバーに導入する必要があるという点です。
LoadStar Schedulerはデータ保持・管理のためにMariaDBを使用します。同じようにDBで多くのデータを扱うようなZabbixを一つのサーバーに同居させてしまうと、システムリソース競合による処理遅延や動作が不安定になるなどの問題が発生する可能性が高くなることから、サーバーの同居は推奨されません。
Zabbixで補う「ジョブ運用管理」2つのアプローチ
まずは、ZabbixでどのようにLoadStar Schedulerを監視するのかについて簡単に解説します。
解説と言っても、LoadStar Schedulerの監視にはZabbixの基本的な監視機能しか使いません。そのため、Zabbixを使ったことのある方にとっては分かりやすい設定かと思います。
アプローチ① 実行ログの監視によりジョブ実行状況を把握する
ジョブの実行ログを常時監視し、ジョブの異常終了や終了遅延などを瞬時に検知します。
LoadStar Schedulerでは、ジョブの実行状態やスケジュールアラート、LoadStar Scheduler内部プロセスに関する情報など、さまざまなログを出力します。具体的には、以下のようなログを監視することで、ジョブの実行状況を把握できます。
- 正常終了
- 警告終了
- 異常終了
- 終了遅延
- スケジュール設定なし
- スケジュール期限切れ …などなど
使用するZabbixアイテムキーはlogrtです。logrtでは、ローテーションされるログファイルを監視します。
以下は、LoadStar Schedulerによるジョブ実行状況のログを監視するアイテム設定画面(一例)です。ここでは、ジョブの正常終了を出力するログメッセージをキーワードに指定しています。


アプローチ② 製品自体の「プロセス監視」で盤石にする
LoadStar Scheduler自体のマネージャーやエージェント、関連サービスが停止していないかを監視します。
使用するZabbixアイテムキーはproc.numです。proc.numはプロセス数を返してくれるアイテムキーです。LoadStar Schedulerの稼働に必要なプロセスや、MariaDBやApacheといった関連サービスのプロセスを監視します。
以下は、LoadStar Schedulerマネージャープロセスの監視アイテム設定画面(一例)です。


関連サービスのプロセス監視を全て設定すると、最新データの取得画面で以下のようにプロセスの死活状況が確認できます。値のマッピングを利用すれば、アイテムキーにより取得したプロセスの起動数だけでなく、UP/DOWNのように任意の文字列を指定し、プロセスの死活状況をより直感的に分かりやすく把握できます。


ZabbixによるLoadStar Schedulerの障害検知および障害通知
では、前項で設定した監視項目の障害検知および障害通知について確認していきましょう。本記事では、ジョブの実行ログを例に見ていきます。
障害を検知した際のZabbixダッシュボードは以下のようになります。


ホスト名やイベント名を工夫することで、どのサーバーで何が起こっているのか、ダッシュボード画面を見ただけで概要を把握できるのが便利です。
ジョブ実行状況の障害検知
正常終了の検知
以下は、ジョブが正常終了したログを監視するアイテムのヒストリ画面です。


LoadStar Schedulerの実行ログには、検知対象ジョブのフルパスが含まれます。そのため、ジョブが実行されるサーバーに直接ログインしなくても、Zabbixの検知画面を見るだけで、どのジョブでどのような状況になっているかが一目で分かるようになります。
ジョブが正常に実行されるたびにログを検知し続けると、Zabbixが使用するDBに大量のデータが蓄積されることになるため、当社としては採取する実行ログの種類は取捨選択することを推奨しています。これは社内でのログデータ保管方針やZabbixサーバーのスペックにあわせて考える必要があります。
異常終了の検知
続いて、ジョブが異常終了した際のログを見てみましょう。


本検証で作成したテスト用ジョブのうち、判定元となるジョブ(画像赤枠)の終了コードが『異常』になるように編集してからジョブを実行します。(LoadStar Schedulerではこのような設定も簡単にできるため、検証が捗って大変助かります。)


こちらも、正常終了ログ同様に対象ジョブのフルパスが含まれます。
フルパス情報があるため、LoadStar Schedulerの管理画面から異常終了したジョブを検索するのも簡単です。管理画面上で対象ジョブのプロパティを表示すると、ジョブの終了コード情報が分かります。


また、連携アプリケーションからエラーメッセージが出力されている場合には、その内容を管理画面上から確認することもできます。メッセージは、標準出力と標準エラー出力がそれぞれ別タブで表示されます。


ジョブ実行状況の障害通知
続いて、Zabbixによる障害通知を見ていきます。
通知条件は運用現場にあわせて設定できますが、今回は監視対象ホストを「LSS Servers」というホストグループに所属させ、
- ホストグループ「LSS Servers」に所属している
- イベント名に「[LSS]Log」を含む
の2点を通知条件として設定しました。
通知内容も幅広くカスタムすることができます。今回はオーソドックスに
- 障害発生時刻
- 対象ホスト
- 障害内容(Zabbixが用意しているマクロ {ITEM.VALUE} を用いて障害ログ本文を添付)
などの情報を盛り込んでみます。
メール通知
まずは、メールによる障害通知から見てみましょう。


通知メールの中に、運用担当者の欲しい情報を全て盛り込むことができます。このような情報がジョブの実行結果に応じて通知されるため、担当者は通知メールを確認すれば障害状況を把握できます。ジョブの稼働状況を常に気にする必要がなくなります。
Teams通知
続いて、Teamsによる障害通知を見てみます。
今回はPower Automateを使用して、ZabbixからのWebhook通知をTeamsの特定のチャネルへ投稿するような設定を組んでみました。投稿メッセージの書式は、メール通知と同じ形にそろえています。


いかがでしょうか。
業務でTeamsを使う現場では、メールよりTeamsの方が気づきやすいこともあるでしょう。Teamsによる通知を利用する場合でも、メール通知と同じように通知メッセージを柔軟にカスタムできるため、メール通知と同様、管理者が欲しい情報を全て盛り込むことができます。
普段業務で使うツールを駆使して、ジョブの実行状況の把握が簡単かつ確実になる――なかなか便利な連携だと思いませんか?
まとめ
LoadStar Schedulerは、大手商用ジョブ管理システムと比べると機能面ではシンプルかもしれません。ですが、外部ツールと連携することで、低コストを維持したまま、より実用的で痒い所に手が届くシステム管理を実現できるんです。
特に、既にZabbixによる監視環境がある場合には、新たにサーバーを用意して外部ツールの導入を検討する必要がありません。LoadStar Schedulerそのものを監視するだけでなく、ジョブの実行状況をリアルタイムに監視し、異常時には即時発報できます。また、Zabbixのダッシュボードを見るだけで障害状況を一目で把握できるため、対象サーバーにログインする必要もありません。
低コストかつ柔軟なシステム運用を目指す方々にとって、非常に有力な選択肢となり得るのではないでしょうか。そんな方の参考になれば幸いです。
LoadStar Schedulerについてより詳しく知りたくなった方は、ぜひ、当社のポータルサイトをご覧ください。













