2016-03-22 3 views
1

Я хотел бы использовать Sensu Core для мониторинга скриптов python, и я смущен, как это сделать.Как контролировать скрипты Python с помощью Sensu?

Из документации Sensu для этого требуется Sensu Checks. В указанном примере рубинового скрипта проверяет, что шеф-клиент работает:

#!/usr/bin/env ruby 

# get the current list of processes 
processes = `ps aux` 

# determine if the chef-client process is running 
running = processes.lines.detect do |process| 
    process.include?('chef-client') 
end 

# return appropriate check output and exit status code 
if running 
    puts 'OK - Chef client process is running' 
    exit 0 
else 
    puts 'WARNING - Chef client process is NOT running' 
    exit 1 
end 

Как осуществить такую ​​проверку для конкретного сценария и не приложение? То есть, как я могу отслеживать конкретный скрипт python (например, test.py), а не питон вообще?

ответ

2

Итак, я был запущен несколько питона сценариев в смысле этого слова для моих клиентов AWS Linux успешно, это хороший пример моего определения проверки:

{ 
"checks": { 
"check-rds-limit": { 
    "interval": 86400, 
    "command": "/etc/sensu/plugins/rds-limit-check.py", 
    "contacts": [ 
    "cloud-ops" 
    ], 
    "occurrences": 1, 
    "subscribers": [ 
    "cloud-ops-subscription" 
    ], 
    "handlers": [ 
    "email", 
    "slack" 
    ] 
} 
    } 
} 

И ваш питон плагин может начать с определением пути хижины :

#!/usr/bin/env python 
import sys 
... 
... 
//<code condition for warning> 
sys.exit(1) 
//<code condition for critical> 
sys.exit(2) 
//<code condition where everything is fine> 
sys.exit(0) 
0

В общем, приведенный выше сценарий ищет строку chef-client в запущенных процессах. Вы можете заменить его любой другой строкой, например test.py, которая будет определять, имеет ли какая-либо программа test.py в ее имени. (Вы, возможно, потребуется, чтобы соответствовать подстроку test.py, если вы запустите программу с python test.py, я не знаю, рубин.)

Я хотел бы предложить, что вы используете Sensu process check plugin для более общей функции, которая включает в себя более настройки. Посмотрите на другой sensu plugins тоже.

0

Почему бы не отслеживать ожидаемый результат или работу скрипта, а не сам процесс. Как правило, мы будем устанавливать проверки для мониторинга конечной точки, в случае веб-приложения или наблюдаемого поведения, например сообщений в базе данных, для определения того, работает ли приложение.

Бывают случаи, когда процесс технически работает, но ничего не происходит из-за ошибки или проблемы с ресурсами. Мониторинг ожидаемого результата - намного лучший вариант, чем просмотр процесса.

+0

к сожалению, цель состоит в том, чтобы следить за длительные услуги, которые не «выхода», если не возникает непредвиденная ошибка – Greg

+0

Как покажет разницу между клиновидным процессом, который технически работает и имеет действующий идентификатор процесс, и процесс, который мально. Единственный способ, который я знаю, - измерить ожидаемые результаты долгого процесса. Этот процесс должен производить, файл, записи журнала или что-то в составе обработки, которые можно измерить. –

Смежные вопросы