外部チェックの引数について

質問があります。
ipmiを外部チェックにて、監視を行おうと想うのですが、
アイテムにipmi_check.sh[引数1,引数2,引数3]のように設定し、
ipmi_check.shの中で、$2 $3 $4として利用したいのですが、
$2に「引数1,引数2,引数3」と全部入ってきてしまうのですが、、、
なぜでしょうか。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー KAZ の写真

okazabbixさん

マニュアル等に例が載ってます。
参考にどうぞ。

↓マニュアル
https://www.zabbix.com/documentation/jp/1.8/manual/config/user_parameters

↓こんな使い方です。
UserParameter=wc[*],grep “$2” $1|wc -l

ユーザー TNK の写真

シェルスクリプトの記述方法に誤りがあるかもしれません。
どのように引数を処理しようとされているかをご提示ください。

あと、利用されているZabbixのバージョンもお教えください。

よろしくお願いいたします。

ユーザー okazabbix の写真

zabbix server 1.8.15です。

外部ファイル場所:/etc/zabbix/externalscripts/ipmitool-sdr-errorlist-include.sh

アイテムにて、次のように取得、「ipmitool-sdr-errorlist-include.sh[{$IPMI_IP},{$IPMI_USER},{$IPMI_PASS}]


#!/bin/sh
# 概要:
# SDR(Sensor Data Repository)の結果にokかns以外のステータスがあったら出力する。
#

PATH="/bin:/usr/sbin:/usr/bin"

RESULT=$(ipmitool -I lanplus -C 1 -H $2 -U $3 -P $4 sdr 2>&1 | \grep -vE "(ok|ns)$" | sed -r 's/\s+/ /g' | tr "\n" "#" | sed 's/#/ # /g')
echo ${RESULT:-"NO Errors"}

になります。

ユーザー kodai の写真

外部チェックは引数の渡し方が通常のアイテムのキーの書き方とは異なります。オプションは$2や$3といった引数で渡されるのではなく、記載した内容がそのままシェルのオプションとして渡されるようになっています。アイテムのキーに

ipmi_check.sh[引数1,引数2,引数3]

と設定した場合、Zabbix 1.8では

ipmi_check.sh ホストのIPアドレス 引数1,引数2,引数3

Zabbix 2.0では

ipmi_check.sh 引数1,引数2,引数3

とシェルが実行されます。シェルスクリプト側で$2や$3などで処理したい場合はカンマ区切りではなくスペースで区切ってみてください。

外部チェックのマニュアルもご参考ください。
https://www.zabbix.com/documentation/jp/1.8/manual/config/items#外部チェック

ユーザー KAZ の写真

okazabbixさん

失礼しました。
ユーザパラメータではなく、外部チェックについての質問でしたね。
すいません、取り違えました。

TNKさん、kodaiさん
フォローすいません。m(__)m
下記の違いで良かったでしたっけ?

■外部チェック
Zabbixサーバに登録したシェルをssh接続して実行する

■ユーザパラメータ
Zabbixエージェントに登録したシェルを実行する

ユーザー TNK の写真

外部チェックでssh接続はしていなかったと思います。
Zabbixサーバ上でシェルスクリプトをexecで呼び出していただけで
はなかったでしょうか。

ユーザパラメータは、書かれている通りだと思います。

ユーザー KAZ の写真

TNKさん、返信ありがとうございます。

現在、手元にZabbixいじれる環境がないので、もう一度マニュアルを読み直してみます。A(^^;
ありがとうございました。