用于监控LOG文件的Nagios插件用于多个单词

时间:2013-11-24 06:18:28

标签: linux bash shell nagios

我正在尝试创建一个简单的shell脚本插件,通过nagios监视日志文件中日志文件中的特定单词。但是当我尝试使用nagios运行脚本时,它返回错误的结果。总是说明他最后一行脚本并忽略所有其他命令。但是当我尝试在终端上运行脚本时,脚本工作正常。关于剧本,请任何人帮助我。

!/斌/庆典

word1 =“flag”

word2 =“subscriber_master”

word3 =“成功”

word4 = “Queryyyyselect”

的word5 = “STDOUT”

word6 = “CALLSTART”

word7 = “HFA”

word8 = “SVA”

word9 = “SCA”

word10 = “SLBSA”

WORD11 = “SFA”

word12 = “EMVA”

word13 = “EMCA”

word14 = “EMLBSA”

word15 = “EMFA”

WORD16 = “DEACT”

word17 = “MSISDN”

word18 =“ADD HIT”

word19 = “巴德迪”

word20 = “EmergencyRetry”

word21 = “USSDR”

word22 = “ExtendedEmergencyRetry”

word23 =“DELET AUDIO”

word24 = “IVREmergencyLogger”

word25 = “VAACTION”

word26 = “PRS”

word27 = “YNO”

文件名= “/根/桌面/ server.log中”

ECHO = “/斌/回声”

GREP = “/斌/ egrep的”

TAIL = “的/ usr /斌/ tailf”

returnStateOK = 0

returnStateWarning = 1

returnStateCritical = 2

returnStateUnknown = 3

A = timeout 2 "$TAIL" "$filename"

{

单词$ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21 ,22,23,24,25,26,27}

如果[[$(“$ ECHO”“$ a”|“$ GREP”-wo“$ word”)=〜“$ word”]]

然后

“$ ECHO”“OK:”$ word“found”

出口= $ returnSTateOK

fi

如果[[$(“$ ECHO”“$ a”|“$ GREP”-wo“$ word”)!=“$ word”]]

然后

“$ ECHO”“警告:”$ word“not found”

出口= $ returnStateCritical

fi

完成

}

2 个答案:

答案 0 :(得分:0)

根据经验,我的猜测是这是一个权限问题:nagios用户(插件/​​脚本正在运行)没有读取文件的权限。您可以修复文件和目录权限(如果可能,可以登录到其他路径?)或使用sudo运行脚本。

答案 1 :(得分:0)

值得尝试:看起来你在第一个条件下错误拼写了OK返回变量。

exit=$returnSTateOK