2017-12-19 21 views
0

私は、認可heraderトークンを/usr/local/nagios/etc/resource.cfgファイルに書き込むためのbashスクリプトを書いています。私は上記のファイルから認証ヘッダーを読み取る必要がNagiosのサービスを設定する場合はbashスクリプトが正常に動作してresource.cfgにトークン値は以下のように保存され、Nagios私のコマンドでファイルから属性値を読み取るにはどうすればよいですか?

ACCESS_TOKEN="Authorization: Bearer 38255d19-724a-4e2c-b8bc-1234retff13" 

define command{ 
    command_name check_post_https_with_args 
    command_line /usr/local/nagios/libexec/check_http -H $HOSTADDRESS$ -S -u $ARG1$ -k /usr/local/nagios/etc/resource.cfg echo $ACCESS_TOKEN --method=POST --post $ARG2$ -T 'application/json' 
} 

define service{ 
    use    generic-service 
    host_name   www.cardgen.com 
    service_description  post request checker 
    is_volatile   0 
    check_period   24x7 
    check_interval     1 
    max_check_attempts  3 
    normal_check_interval  1 
    retry_check_interval  1 
    contact_groups   admin_group 
    notification_interval  120 
    notification_period  24x7 
    notification_options  w,u,c,r 
    check_command check_post_https_with_args!/api/load/validatereadDetails=true!'{\"referenceId:145\",\"amount:500\"}' 
} 

これは動作していないようですが、誰かがファイルの読み込みによってコマンドのヘッダー値にアクセスする方法について教えてくれますか?

答えて

0

プラグインはファイルから直接ヘッダーを読み込むことができませんので、というユーザー名やパスワードのような機密データの保存にはresource.cfgを使用してください。

だから、あなたのresource.cfgファイルは次のように含まれている必要があります

$USER3$=Bearer 
$USER4$=38255d19-724a-4e2c-b8bc-1234retff13 

をそして、これはあなたのコマンド定義する必要があります:

define command{ 
    command_name check_post_https_with_args 
    command_line /usr/local/nagios/libexec/check_http -H $HOSTADDRESS$ -S -u $ARG1$ -k "Authorization: $USER3$ $USER4$" --method=POST --post $ARG2$ -T 'application/json' 
} 

PS:あなたは1つのマクロでこのすべてを格納することはできませんなぜならNagiosマクロはのスペースを含むことができないからです。文字です。

関連する問題