2017-12-19 18 views
0

인증 herader 토큰을 /usr/local/nagios/etc/resource.cfg 파일에 쓰도록 bash 스크립트를 작성했습니다. 배쉬 스크립트는 Nagios 내 명령에서 파일의 속성 값을 읽으려면 어떻게해야합니까?

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

내가 위의 파일에서 인증 헤더를 읽을 필요가 Nagios의 서비스를 구성 할 때, 다음과 같이 저장되어 미세하고 토큰 값을은 resource.cfg에서 작동합니다.

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

check_http 플러그인은 파일에서 직접 헤더를로드 할 수 없으므로 $USERx$ 매크로의 사용자 이름이나 비밀번호와 같은 중요한 데이터를 저장하는 데 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 : 당신은 하나의 매크로이 모두를 저장할 수 없습니다 왜냐하면 Nagios 매크로는 공백을 포함 할 수 없으므로 문자입니다.