Форум » » Мониторинг » Ответить

Мониторинг

RuckShot1: Добрый день! А как вообще правильно осуществляется мониторинг работы контроллера. В симпле есть System monitor, но там по сути я могу смотреть запущена программа или нет, а если контроллер завис или умер через это я узнать не могу. По сути задача - один контроллер стоит который мониторит работу других и в случае чего выдает сообщение.

Ответов - 4

Вячеслав: Как вариант на главном контроллере поднять серверы (на разных портах) по числу контролируемых контроллеров, на всех контролируемых поднять клиенты. С клиентских контроллеров по осциллятору (раз в 50с) отправлять статус типа "alive" (или любого удобного вам типа). На серверной стороне приход статуса сбрасывает предыдущий wait и открывает новый wait с таймером ожидания например в 60с. Если очередная посылка не получена,сработает тело wait в котором вы определите свою реакцию (отправка sms, email, звуковая или визуальная сигнализация). Можете усложнить задачу и контролировать еще и загрузку процессора (top). Но я так понимаю не на всех процессорах эта команда выдает результат. P/S Серверов поднимать приходится несколько, потому как crestron держит лишь одно активное входящее соединение одновременно.(

RuckShot1: Вячеслав про серверы это интересно! а можно подробнее? Или ссылку на материал. Так как представления как это на крестроне делается в принципе нет!

Вячеслав: Достаточно просто. TCP/IP Server добавляется так же как и панель. Он присутствует в списке устройств добавляемых на IP интерфейс контроллера. В свойствах указываете адрес 0.0.0.0 (допустимо подключения клиента с любого IP адреса) В свойствах элемента указываете порт на котором сервер будет слушать. Например 60000d. С клиентской стороны точно так же добавляете TCP/client в настройках которого пишете IP адрес центрального контроллера и порт 60000d. Так повторяете для каждой связки сервер-клиент. Только номера портов меняете. Остается написать модуль для обработки посылок от клиентов подтверждающих их работоспособность и реакцию на случай если посылка от клиента не пришла в ожидаемый интервал. В простейшем виде что то типа: DIGITAL_INPUT start_control; STRING_INPUT RX[100]; DIGITAL_OUTPUT Device_alarm_fb; Function Function_send_alarm() { //you reaction for event not responce } Function function_wait_responce() { Wait(600) { Device_alarm_fb=1; Function_send_alarm(); } } PUSH start_control { function_wait_responce(); } CHANGE RX { CancelAllWait(); Device_alarm_fb=0; function_wait_responce(); } На стороне клиента модуль будет содержать всего то: DIGITAL_INPUT oscillator; STRING_OUTPUT TX; PUSH oscillator { TX="I'am is alive"; } Все (кроме модуля обработчика) это можно было бы замутить и через элемент Ethernet intersytem communication если он вам знаком больше. Но этот вариант выглядит для меня несколько избыточно под данную задачу.


RuckShot1: Вячеслав Теперь все ясно стало! Спасибо большое! Буду пробовать!)



полная версия страницы