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

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

関連記事

不要なアラートの抑制。Zabbix3.2.4 メンテナンス期間の設定方法

皆さんZabbixを運用・監視業務に利用していますか? Zabbixでは「メンテナンス期間」というとても便利な機能を利用することができます。 メンテナンス期間とは、ネットワーク機器やサーバのメンテナン …

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

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

Wordへの画像貼り付け自動化!画像貼り付けマクロの記載方法

運用・保守業務を実施されている方は月次、年次で報告書を提出することが多いと思います。 報告書の中には対応した内容や、サーバーのリソース状況、運用状況等を記載することが わたしは多いですが、中でも画像を …

パソコンがインターネットにつながらない!切り分けコマンド色々

パソコンがインターネットにつながらない!という障害対応は多々あるかと思います。 そんなときにパソコン側で実施したい切り分けコマンドをいくつか紹介したいと思います。 いざというときに役に役に立つのでぜひ …

メールアカウント作成作業を短縮!bashスクリプトによるメールアカウント一括作成

メールサーバー新規構築時等、メールアカウント作成作業って単純だけど手間ですよね・・ メールアカウント数が10とか20とかならまだしも1000とかあったら地獄!しかもメールアカウント作成に加え、パスワー …