Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法

Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法

シナリオシミュレーション:

国内企業の中には、重要な業務をサポートするために特定のウィンドウ プログラム (.exe など) を実行する必要があるところもあります。これらの重要なウィンドウ プログラムが中断されると、莫大な経済的損失が発生したり、作業効率に影響したりして、結果は非常に深刻です。そこで、Zabbix を通じて複数のプログラムの状態を監視したいと考えました。これらの重要なウィンドウ プログラムが中断されると、アラームが生成され、運用および保守担当者に修復するように通知されます。

事前に 2 つの bat スクリプトを用意します。finde.bat (監視対象の exe プログラムを自動的に検出する)、check_exe_status.bat (監視対象の exe プログラムのステータスを取得する)
ステップ 1 – bat スクリプトを準備します。

findexe.batスクリプトの内容は次のとおりです。

@エコーオフ

setlocal 有効遅延拡張

/an=0 を設定する

/a n1=0 を設定する

%%i in (%*) の場合、(set /a n+=1) を実行します。

@echo {"データ":[

%%a の (%*) に対して (

/a n1+=1 を設定する

@echo {"{#サーバー名}":"%%a"

!n1! または !n! の場合 (

@エコー },

) それ以外 (

@エコー }

)

)

エコー]}

check_exe_status.batスクリプトの内容は次のとおりです@echo off

タスクリスト|検索文字列 ^%1 >/NUL 2>&1

%errorlevel% == 0 の場合 (

「実行中」をエコーする

) それ以外 (

「実行なし」をエコーし​​ます

)

tasklist|findstr ^%1 >/NUL 2>&1 は、監視プログラム exe が実行されているかどうかを確認するために使用されることに注意してください。

ステップ2 – 監視テンプレートを作成する

ここに画像の説明を挿入

テンプレートを作成するには「追加」をクリックします

次に、先ほどのcheck_exe_statusテンプレートで自動検出ルールを作成します。

ここに画像の説明を挿入

図のキー値は findexe です。キー値のパラメータは、顧客が監視する複数のプロセスであり、二重引用符で囲まれ、スペースで区切られています。

findexe[“firefox.exe chrome.exe xxxlll.exe”]

監視する他の exe プログラムがある場合は、スペースで区切って空白を埋めてください。

次に、この自動検出ルールの下で、新しい監視項目のプロトタイプを作成します。

ここに画像の説明を挿入

プロトタイプの {#SERVERNAME} の値は固定されており、findexe.bat の最初のステップで定義されます。

ステップ3 – zabbix_agent.confでカスタムキーを設定する

ここに画像の説明を挿入

スクリプトパスをカスタマイズし、カスタムキーの値はテンプレート名と一致している必要があります。

zabbix_agentを再起動する

ステップ4 – 複数のexeプログラムの状態を確認する

ここに画像の説明を挿入

3 つの exe プログラム名が自動的に検出されます。そのうち、xxxll.exe は存在しない exe です。効果を確認するには、firefox.exe プログラムを閉じて、最新のデータが norunning として表示されるかどうかを確認します。

ここに画像の説明を挿入

検証に成功しました。

Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法についての記事はこれで終わりです。Zabbix と bat スクリプトの組み合わせの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Python スクリプトは、Zabbix の複数行ログ監視プロセス分析を実装します。
  • Python スクリプト Zabbix カスタム キーを使用して Oracle 接続ステータスを監視する
  • ZABBIX3.2 で監視レポートを実装するための Python スクリプトの使用方法
  • Zabbix動的実行監視収集スクリプトの実装原理

<<:  JavaScript で支払いの 10 秒カウントダウンを実現

>>:  IE8 開発者ツール メニューの説明

推薦する

HTML フレームセットのサンプルコード

この記事では、Frameset が作成した、できるだけシンプルなフレームワークを紹介します。さて、ま...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

Vue Element フロントエンドアプリケーション開発: Vuex での API ストアビューの使用

目次概要1. フロントエンドとバックエンドの分離とWeb APIの優先ルート設計2. Axiosネッ...

CSSは、マウスを線の上に置くと線全体の色を変える効果を実現します。

まとめ:以下のように、CSS で指定した行にマウスを置いたときに行全体の色を変更する方法を示します。...

JavaScript でのカスタム スワイパー コンポーネントの詳細な説明

目次エフェクト表示コンポーネント設定ステップ1ステップ2ステップ3コンポーネントの使用ステップ1ステ...

JSキャンバスは描画ボードと署名ボードの機能を実現します

この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...

Ubuntu 18.04の下のディレクトリにディスクをマウントします

導入この記事では、Ubuntu 18.04 デスクトップ システムでディスクを目的のディレクトリにマ...

impress.js プレゼンテーション層フレームワーク (デモツール) - 初めての体験

半年もブログを書いていなかったので、少し恥ずかしいです... 正月休みは、Dota をプレイしたり ...

Tomcat のパフォーマンス最適化のための Apr モジュールの構築方法

序文Tomcat は、無数のチューニング オプションを備えた、広く使用されている Java Web ...

TypeScript で時間を費やした場所の概要

TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...

MySql5.7.21 インストールポイント記録メモ

ダウンロードしたバージョンは、Zip 解凍版、Windows システムです。長い間 Windows ...

JavaScriptはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機能を実装するためのJavaScriptの具体的なコードを紹介し...

CentOS 7 ブートカーネルの切り替えとブートモードの切り替えの説明

Centos7 スイッチブートカーネル注: 必要に応じて、最初にyum update -yを実行して...

JS を使用してバイナリ ツリー トラバーサル アルゴリズムのサンプル コードを実装する

目次序文1. バイナリツリー1.1. 二分木の走査1.2. jsを使用してバイナリツリーを表現する1...

IdeaでMySQLデータベースに接続すると中国語の文字化けが発生する問題

問題: JDBCを使用してMySQLデータベースに接続すると、中国語の文字を挿入すると文字化けした文...