2016-11-30 12 views
1

nscaを分散監視の目的でNagiosに実装していますが、どこにでも答えが見つからないという奇妙な点を除いて、すべてが機能しているようです。

パッシブチェックは送受信されますが、出力には常に初期化されていない4番目の変数が表示されるため、$OUTPUT$と表示されます。それは、小切手が非中央サーバに適切な情報を表示しているかのように見えますが、送信されると、正しく補間されていないように見えます。

commands.cfg

define command{ 
     command_name submit_check_result 
     command_line  /usr/share/nagios3/plugins/eventhandlers/submit_check_result $HOSTNAME$ '$SERVICEDESC$' $SERVICESTATE$ '$OUTPUT$' 
     } 

submit_check_result

#!/bin/sh 
return_code=-1 

    case "$3" in 
     OK) 
        return_code=0 
       ;; 
      WARNING) 
       return_code=1 
        ;; 
      CRITICAL) 
       return_code=2 
        ;; 
      UNKNOWN) 
       return_code=-1 
        ;; 
    esac 

    /usr/bin/printf "%s\t%s\t%s\t%s\n" "$1" "$2" "$return_code" "$4" | /usr/sbin/send_nsca 192.168.40.168 -c /etc/send_nsca.cfg 

例サービス

define service { 
     host_name    example_host 
     service_description  PING 
     check_command   check_icmp 
     active_checks_enabled 1 
     passive_checks_enabled 0 
     obsess_over_service  1 
     max_check_attempts  5 
     normal_check_interval 5 
     retry_check_interval 3 
     check_period   24x7 
     notification_interval 30 
     notification_period  24x7 
     notification_options w,c,r 
     contact_groups   admins 
} 

非中央サーバのログからの出力は示しています

Nov 29 22:52:52 nagios-server nagios3: SERVICE ALERT: example_host;PING;OK;HARD;5;OK - 192.168.1.1: rta nan, lost 0% 

中央サーバーにログの出力は示しています。中央のサーバー(Webインターフェイス)上の

EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;example_host;PING;0;$OUTPUT$ 

ステータス情報を示しています

PING OK 2016-11-29 22:54:50 0d 0h 54m 6s 1/5 $OUTPUT$ 

それはどちらかだけで、このサービスではありません。すべてのサービス(Nagiosサーバ自体が "check_load、check_proc、etc."のために本質的に事前設定されているものを含む)。

ご協力いただければ幸いです。

答えて

0

問題が見つかりました。上記のsubmit_check_resultスクリプトは、チェック結果をリモートサーバに送信するために適切にフォーマットされていません。それは実行されますが、ステータスを正しく説明しません。以下は適切なスクリプトです:

#!/bin/sh 
# SUBMIT_CHECK_RESULT_VIA_NSCA 
# Written by Ethan Galstad ([email protected]) 
# Last Modified: 10-15-2008 
# 
# This script will send passive check results to the 
# nsca daemon that runs on the central Nagios server. 
# If you simply want to submit passive checks from the 
# same machine that Nagios is running on, look at the 
# submit_check_result script. 
# 
# Arguments: 
# $1 = host_name (Short name of host that the service is 
#  associated with) 
# $2 = svc_description (Description of the service) 
# $3 = return_code (An integer that determines the state 
#  of the service check, 0=OK, 1=WARNING, 2=CRITICAL, 
#  3=UNKNOWN). 
# $4 = plugin_output (A text string that should be used 
#  as the plugin output for the service check)s 
# 
# 
# Note: 
# Modify the NagiosHost parameter to match the name or 
# IP address of the central server that has the nsca 
# daemon running. 

printfcmd="/usr/bin/printf" 

NscaBin="/usr/sbin/send_nsca" 
NscaCfg="/etc/send_nsca.cfg" 
NagiosHost="central_host_IP_address" 

# Fire the data off to the NSCA daemon using the send_nsca script 
$printfcmd "%s\t%s\t%s\t%s\n" "$1" "$2" "$3" "$4" | $NscaBin -H $NagiosHost -c $NscaCfg 

# EOF 

もっと良い結果が得られます。

関連する問題