внешний агент nagios core с использованием сценариев Python - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть скрипт 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`

1 Ответ

0 голосов
/ 14 февраля 2019

Изменил мой код, теперь он работает отлично.Я вижу ответ в интерфейсе 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()
...