web-dev-qa-db-ja.com

Zabbixはカスタムアラートスクリプトを実行しません

Debian8とZabbix3.2を実行しています。

ターミナルで実行すると正常に実行されるカスタムアラートスクリプトを作成しました。

/bin/sh /usr/lib/zabbix/alertscripts/send_sms.sh 4483222740 Hello

これは、Twilio経由でSMSを送信し、正常に機能します。

私のzabbix_server.confには次のものがあります。

AlertScriptsPath=/usr/lib/zabbix/alertscripts

次のカスタムメディアタイプを作成しました https://www.zabbix.com/documentation/3.2/manual/config/notifications/media/script

しかし、スクリプトは呼び出されていません。正しくトリガーされている電子メールの一般的なメディアタイプがあります。

スクリプトに対する私の権限は次のとおりです。

ls -alh
total 12K
drwxr-xr-x 2 root root 4.0K Mar  9 09:04 .
drwxr-xr-x 4 root root 4.0K Feb  3 13:36 ..
-rwxr--r-- 1 root root  165 Mar  9 09:12 send_sms.sh

/ var/log /ディレクトリで「send_sms」をgrepしてエラーが発生したかどうかを確認しようとしました。何もない。

スクリプトをで終了します

exit 0

デバッグする方法は?

2
Michael Nielsen

a)引用する権限、-rwxr--r-- 1 root root 165 Mar 9 09:12 send_sms.sh、スクリプトの実行をrootユーザー(スクリプトの所有者)にのみ許可します。 Zabbixデーモンは通常zabbixユーザーとして実行されるため、そのユーザーにはスクリプトを実行する権限がありません。スクリプトはすでに世界中で読み取り可能であるため、権限を755に変更しても問題はなく、Zabbixがスクリプトを実行できるようになります。

b)スクリプトが環境変数に依存している場合は、必ずスクリプト自体にそれらを設定してください-Zabbixは、プロファイルや、これらの変数を設定するために期待されるその他のものをソースしません

3
Richlv

権限を開く代わりに、zabbixユーザーがスクリプトを実行できるようにするsudoersファイルを作成できます。 Sudoersの構文は非常に細心の注意が必要です。これを台無しにすると、誤ったファイルまたは行を削除するまでSudoが完全に壊れてしまうので注意してください。

zabbix ALL=NOPASSWD: /usr/lib/zabbix/alertscripts/send_sms.sh * zabbixとALLの間にスペースではなくタブ文字が必要です。そのため、エディターでこれを置き換えないようにしてください。このサイトはそうしているようですので、それを直接コピーして貼り付けないでください。

たとえば、その行を/etc/sudoers.d/zabbixにドロップします。これをrootとして実行して、誤ってSudoを自分で壊した場合にロックアウトされないようにします。後でvisudo -cf /etc/sudoers.d/zabbixを使用して構文をテストできます。

編集:繰り返しますが、これの私のユースケースは、rootを必要とするapt-getを使用した更新に関連するチェックです。 Twilioはおそらくまだ機能しており、ファイルを読み取って実行するだけです。

1
Okänd