IT・ICT

Zabbix 3.2.4でスクリプトによる監視(UserParameter)

投稿日:2017年11月10日 更新日:

今回はZabbixのデフォルトで用意されていない監視を実施できるUserParameterという

機能を紹介していきます。

Zabbixはサーバ側に設置したスクリプトを利用し、監視項目として

取得することができます。※UserParameterという機能を利用します。

例えば監視対象のサーバがインターネットへ接続できているか等。

プロセス監視はそのプロセスの死活しか監視できませんが、実際に動いて

成功しているかまで監視することができます。

例) nslookup コマンドを実行し、tech1000.net の名前解決ができているか等

実際の設定例を紹介させていただきます。

 

どのような動きになるか

スクリプトを利用した監視の概要として、下記の図のようになります。

今回は監視対象のサーバが名前解決できているか、という構成で説明していきます。

 

 

①Zabbixサーバは監視対象のサーバにインストールされているZabbix Agentへスクリプト実行の命令を出します。

②監視対象サーバのZabbix Agentはスクリプトを実行します。

③、④ 実行された結果をZabbixサーバへ返します。

⑤実行され返ってきた値を元に障害(名前解決に成功、失敗)を判定します。

 

設定する内容

スクリプトを利用した監視の場合、下記の内容を設定する必要があります。

【監視対象サーバ側】

監視対象サーバのZabbix agentにてUserParameterの定義

監視対象サーバへスクリプトを設置

設置したスクリプトの権限設定

 

【Zabbixサーバ側】

Zabbixサーバへスクリプト監視のアイテム、トリガーの設定

 

監視対象サーバ側設定

 

監視対象サーバのZabbix agentにてUserParameterの定義

監視対象サーバでUserParameterを定義します。

監視対象サーバへログインし、ZabbixAgentコンフィグを編集します。

編集ファイル:/etc/zabbix/zabbix_agentd.conf

上記ファイルへ下記を追記します。

UserParameter=[アイテム名],[設置パス][スクリプト名]

 

$ vi /etc/zabbix/zabbix_agentd.conf

<<省略>>

### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=&lt;key&gt;,&lt;shell command&gt;
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=nslookup,/home/user/nslookup.sh  ← 左記を追記

<<省略>>

 

監視対象サーバへスクリプトを設置

UserParameterで定義したパスへスクリプトを設置します。

今回は/home/user/を定義しているので、そこへスクリプトを設置します。

 

cd /home/user/ ← 設置場所へ移動

vi nslookup.sh ← 新規ファイル作成

<<以下スクリプト内容>>

#!/bin/bash

# nslookupコマンドを実行し、「tech1000.net」のIPアドレスだけ表示
nslookup tech1000.net | grep "Address" | grep -v "#53" | cut -d" " -f2

 

上記スクリプトを実行すると下記が返ってきます。

[root@test ~]# sh ./nslookup.sh
157.7.107.196

 

設置したスクリプトの権限設定

Zabbixがスクリプトを実行することができるようにスクリプトファイルに権限を付与します。

chmod 755 nslookup.sh

 

Zabbixサーバ側設定

アイテムの設定

設定したUserParameterのアイテムをZabbbixサーバ側で設定します。

 

アイテムの新規作成より下記で作成します。

名前:名前解決

タイプ:Zabbixエージェント

キー:nslookup

データ型:文字列

 

トリガーの作成

作成したアイテムのトリガーを作成します。

実際にnslookupコマンドにて取得したIPが一致しない場合アラートとして発砲する

というトリガーを作成します。

 

名前:名前解決失敗

条件式:{www.town.motobu.okinawa.jp:nslookup.str(“157.7.107.196“)}=0

 

デフォルトで用意されていない監視項目を自分で作成できるので、運用業務等で

とても重宝しますので、ぜひ実施してみてください。

 

以上、皆さんの参考になれば幸いです。

 

-IT・ICT


  1. […]  TECH1000 Zabbix 3.2.4でスクリプトによる監視(UserParameter)http://tech1000.net/… […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Zabbix 3.2.4 自動で監視項目作成(LLD:ローレベルディスカバリ)

大量の監視対象機器がある場合、監視設定ってとっても大変ですよね。 ましてやネットワーク機器等は数も多いので大変だと思います。   Zabbixには監視項目を自動で作成するローレベルディスカバ …

アクセスポイント(AP)設計・構築時に確認しておくべきこと、押さえて置きたいポイント

まだまだ未熟者のネットワークエンジニアですが、少しずつ設計や機器選定に 関わらせてもらえるようになってきました。 オフィスやホテルなど、小~中規模のWiFi設計・構築を行う際に失敗したことや苦労したこ …

繰り返し作業を短縮できる!サクラエディタのキーマクロ機能を使う

皆さんサクラエディタを使っていますか? もし日々の業務で繰り返しの作業に時間をとられ、業務が圧迫されているのであれば サクラエディタの「キーマクロ」機能を利用して、作業を圧縮できるかもしれません。 & …

ESXi 5.5.0 redo ログ破損エラーによる仮想マシン起動不可時の対応方法

管理している仮想マシンが突如ダウンし、起動不可に陥る現象が発生しました。 特に予兆もなく、急に発生したのでとてもあせりました・・・ エラー内容は下記 「仮想マシン名」-000001.vmdk の re …

ローカルユーザからドメインユーザへの移行方法(バッチ使用)

ある環境でActiveDirectory(以下AD)を導入する機会がありました。 そこで課題となったのが、ローカルユーザからドメインユーザへのデータ引き継ぎです。 たとえばデスクトップ上のファイルや、 …