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/… […]

一日一回だけスクリプトを実行したい!Zabbix3.2.4 更新間隔:定期設定にて制御する – TECH1000 へ返信する コメントをキャンセル

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

関連記事

便利なWEBツール(パスワード自動作成・差分確認・PDF結合)

日々の業務で非常に便利なWEBツールを紹介します。 パソコンにツールをインストールして利用するのもいいですが、インストール作業自体がめんどくさいですよね(わたしはそうです) exeファイルをダウンロー …

ESXi 5.5.0 仮想マシン作成後に仮想マシンのHDD容量を増やす方法

ESXi 5.5.0にて(ファームが古く役立つ情報か微妙ですが・・・)仮想マシンのHDD容量を増やす方法を ご紹介したいと思います。 私が困ったことの経緯としては下記の作業を実施し、新規で作成した仮想 …

冗長化試験などに最適!Ciscoでconfigロールバックを実施する方法

Ciscoのネットワーク機器でもconfigのロールバックができることがわかったのでやりかたをご紹介したいと思います。 ※configのロールバックとは、設定変更前のconfigに切り戻すことです。 …

WordPress記事の文字数をカウントするプラグイン。Word Countをインストールする

WordPressでブログを運営されているかたは、各記事の文字数が気になりますよねー 私は各記事をコピペして文字数カウントツールを利用していました。全記事をチェックしようとするとかなり面倒ですよね・・ …

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

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