クライアント証明書が必要なWEB監視

クライアント証明書が必要なWebページの監視を行いたいのですが、zabbixのWeb監視機能からではクライアント証明書を指定できないため、
CURLの環境変数にクライアント証明書を指定し、強制的にクライアント証明書を使用させるようにして、うまく監視ができません。
error doing curl_easy_perform: SSL connect error
となってしまいます。

curlコマンドで直接実行すると環境変数を見に行って正しい結果が返ってくるのですが、
zabbixでは環境変数を見に行ってくれないのでしょうか。

PHPファイルのどこかに記述があるのでしょうが、プログラミングに疎く、皆様のご協力をいただけると助かります。

コメント表示オプション

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

curlコマンドを直接呼び出すのではなく、curlコマンドを呼び出す
スクリプトを作成して、そのスクリプトの中で、

 1.必要な環境変数をすべて設定する
 2.curlコマンドを呼び出す

というような処理を行うようにし、そのスクリプトを呼び出す形に
してみてはいかがでしょうか?

ユーザー ikemo の写真

TNKさん
通常のWeb監視はWeb監視機能を利用してまして、クライアント証明書が必要なURLに関してもWeb監視機能で一元管理したかったのですが、難しいですね。
貴重な情報提供ありがとうございます。検討させて頂こうと思います。
curlの環境変数でクライアント証明書を登録しておけば、zabbix側のWeb監視機能をそのまま使って監視できるのでは、と思い調査していました。
何か進展ありましたらここに報告しようと思います。

ユーザー TNK の写真

ZabbixのWeb監視の機能は、設定はPHPを利用して行いますが、実際
の監視のための呼び出し処理は、C言語で書かれたzabbix_serverプ
ログラムから行われます。

環境変数を参照して動いてくれるかはわかりませんが、ZABBIX-JP
のRPMを利用されている場合、zabbix_serverの起動スクリプト内で
環境変数の設定を行うと、zabbix_serverプロセスから環境変数を
参照できたと思いますので、試しに起動スクリプト内で環境変数の
設定を行ってみてはいかがでしょうか?

ユーザー ikemo の写真

TNKさん
情報ありがとうございます。
少々調べたのですが、exportでProxy指定するような方法はWeb上に記載あったのですが、環境変数でクライアント証明書を指定するような記述方法が思いつきませんでした。
自分が記述したcurlの環境設定ファイル(.curlrc)はcurlコマンドに対してのものようです。
zabbixではC内でlibcurlを使用している雰囲気なので、やはりCのどこかで記載が必要なのかもしれないですね。

ユーザー H.Itou の写真

私もクライアント証明書を使用した監視をしたく思考錯誤しています。

ZABBIX FEATURE REQUESTSでクライアント証明書のWeb監視機能追加の要求が挙がってるみたいです。
ZBXNEXT-1563:SSL Client Certificate Support for Webchecks

https://support.zabbix.com/browse/ZBXNEXT-1563