簡體   English   中英

Bash腳本,允許Nagios報告其他兩台Linux機器之間的ping

[英]Bash Script to allow Nagios to report ping between two other Linux machines

我正在尋找替代方法來計算兩台機器(mA和mB)之間的ping,並將其報告給Nagios(在mC上)。

我目前的想法是編寫一個BASH腳本,該腳本將對cron作業中的計算機執行ping操作,將數據輸出到文件中,然后使用Nagios可以用來讀取該文件的另一個bash腳本。 但是,這感覺不是最好/正確的方法嗎?

這是我計划在cron作業中運行的腳本:

#!/bin/bash

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]
then
   echo $0: usage: $0 file? ip? pingcount? deadline?
   exit 126
else
   FILE=$1
   IP=$2
   PCOUNT=$3
   DLINE=$4

   while read line
   do
      if [[ $line == rtt* ]]
      then

         #replace forward slash with underscore
         line=${line////_}

         #replace spaces with underscore
         line=${line// /_}

         #get the 8 item when splitting string on underscore
         #echo $line| cut -d'_' -f 8 >> $FILE #Append
         #echo $line| cut -d'_' -f 8 > $FILE #Overwrite
         echo $line| cut -d'_' -f 8
      fi

   done < <(ping $IP -c $PCOUNT -q -w $DLINE) #-q output summary / -w deadline / -c pint count

我雖然使用跟蹤路由,但是我認為這會產生較慢的ping ?,是否還有另一種方法可以實現我想要的?

注意:我知道Nagios可以直接ping機器,但這不是我想要做的,也不會告訴我我想要什么。 這也是我的第二個腳本,所以可能是垃圾。 另外,如果ICMP被阻止,我還有什么選擇?

您是否看過NRPE和check_ping? 這將使nagios機器(mC)要求mA ping mB,然后mA會將結果報告給mC。 您需要在mA上安裝和配置NRPE和nagios-plugins才能起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM