使用python脚本编写的nagios核心外部代理

问题描述 投票:0回答:1

我有一个用于执行被动检查的bash脚本,即外部代理/应用程序。我尝试将bash脚本转换为python,但是当我执行该文件时,我没有在我的nagios核心界面上看到任何关于我的被动检查结果的响应。

import os
import datetime

CommandFile='/usr/local/nagios/var/rw/nagios.cmd'
datetime = datetime.datetime.now()
os.stat(CommandFile)
f = open(CommandFile, 'w')
f.write("/bin/echo " + str(datetime) + " PROCESS_SERVICE_CHECK_RESULT;compute-1;python dummy;0;I am dummy python")
f.close()

我的bash脚本代码是:

#!/bin/sh

# Write a command to the Nagios command file to cause
# it to process a service check result

echocmd="/bin/echo"

CommandFile="/usr/local/nagios/var/rw/nagios.cmd"

# get the current date/time in seconds since UNIX epoch
datetime=`date +%s`

# create the command line to add to the command file
cmdline="[$datetime] PROCESS_SERVICE_CHECK_RESULT;host-name;dummy bash;0;I am dummy bash"

# append the command to the end of the command file
`$echocmd $cmdline >> $CommandFile`
python nagios
1个回答
0
投票

改变了我的代码,现在它的工作非常好。我可以在Nagios界面中看到响应。

import time
import sys

HOSTNAME = "compute-1"

service = "python dummy"

return_code = "0"

text = "python dummy is working .....I am python dummy"

timestamp = int(time.time())

nagios_cmd = open("/usr/local/nagios/var/rw/nagios.cmd", "w")

nagios_cmd.write("[{timestamp}] PROCESS_SERVICE_CHECK_RESULT;{hostname};{service};{return_code};{text}\n".format

                    (timestamp = timestamp,

                     hostname = HOSTNAME,

                     service = service,

                     return_code = return_code,

                     text = text))


nagios_cmd.close()
© www.soinside.com 2019 - 2024. All rights reserved.