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 開発者ツール メニューの説明

推薦する

2つのシンプルなメニューナビゲーションバーの例

メニューバーの例 1: コードをコピーコードは次のとおりです。 <!DOCTYPE html ...

MySQLユーザー管理操作例の分析

この記事では、MySQL ユーザー管理操作について説明します。ご参考までに、詳細は以下の通りです。こ...

VMware ESXi のインストールと使用記録(ダウンロード付き)

目次1. ESXiをインストールする2. ESXiをセットアップする3. ESXiを起動するESXi...

mysqldump でデータベースをバックアップするときに特定のライブラリを除外する例

例: mysqldump –all-databases を使用すると、すべてのライブラリがエクスポー...

CentOS8でルートパスワードを素早く変更する方法

Centos8仮想マシンを起動し、上下キーを押して図1のインターフェースの最初の行を選択します。図1...

LinuxにNginxをインストールする詳細な手順

1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...

MySQLトリガーの概念、原理、使用法の詳細な説明

この記事では、例を使用して、MySQL トリガーの概念、原則、および使用方法を説明します。ご参考まで...

MySQL のテーブル内のレコード数を制限する方法

目次1. トリガーソリューション2. パーティションテーブルソリューション3. 一般的な表領域ソリュ...

MySQL 8.0.17 winx64 (Navicat 付き) 手動構成バージョンのインストール チュートリアル図

1. ダウンロードアドレス: mysql-8.0.17-winx64ダウンロードして解凍する2. フ...

Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

初心者の Linux ユーザーとして、私は単純なgcc/g++操作を何度も使用してきましたが、少し複...

td セルを結合した場合の td 幅の問題

以下の例では、名前が入っている td の幅が 60px のとき、2 行目の文字数が少ない場合は正常に...

Baota LinuxパネルにFTP接続できない問題の解決方法の詳細な説明

Alibaba Cloud Server を使用している場合は、セキュリティ グループ設定でポート ...

Alpine イメージに Ansible サービスを追加する方法

apk add ansible を使用して、alpine イメージに ansible サービスを追加...

Nginx ロードバランシング クラスタの実装

(1)実験環境youxi1 192.168.5.101 ロードバランサーyouxi2 192.168...