Мониторинг состояния системы

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Logrus
Сообщения: 2079
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Мониторинг состояния системы

Сообщение Logrus » Пн окт 01, 2018 7:26 am

я тогда из- за этого уточнял, обошел так, в коннекте есть

Код: Выделить всё

if ($online == 1) {
 $this->setProperty('status', 'Включен');
 $this->setProperty('statuscolor', 'green');
 if ($Sensor) {
  sg($Sensor . '.status', 1);
 }
} else {
 $this->setProperty('status', 'Выключен');
 $this->setProperty('statuscolor', 'red');
 if ($Sensor) {
  sg($Sensor . '.status', 0);
 }
}
п.с. 1 - онлайн, 2 - оффлайн, 0 -
если в устройствах онлайн привязано в объект.свойство
За это сообщение автора Logrus поблагодарил:
Samir77 (Сб окт 06, 2018 11:40 pm)
Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение ansid » Пн сен 09, 2019 3:36 pm

Вопрос: есть много методов проверяющих доступность по пингу разных узлов, переменные каждого метода работают только в нем? т.е. если в разных методах будут переменные red, details и т.д., то не будут ли они мешать друг другу?
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

Re: Мониторинг состояния системы

Сообщение Chainik » Пн сен 09, 2019 3:52 pm

ansid писал(а):
Пн сен 09, 2019 3:36 pm
Вопрос: есть много методов проверяющих доступность по пингу разных узлов, переменные каждого метода работают только в нем? т.е. если в разных методах будут переменные red, details и т.д., то не будут ли они мешать друг другу?
Переменные с одинаковым названием, расположенные внутри разных методов, мешать друг другу не будут.
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение ansid » Пн сен 09, 2019 5:30 pm

Chainik писал(а):
Пн сен 09, 2019 3:52 pm
ansid писал(а):
Пн сен 09, 2019 3:36 pm
Вопрос: есть много методов проверяющих доступность по пингу разных узлов, переменные каждого метода работают только в нем? т.е. если в разных методах будут переменные red, details и т.д., то не будут ли они мешать друг другу?
Переменные с одинаковым названием, расположенные внутри разных методов, мешать друг другу не будут.
Создал класс remoteState, свойства remColor, remDetails, remTitle, методы remchanged и remcheck, объект remping. Метод remcheck с таким содержанием:

Код: Выделить всё

$details=array();

$red_state=0;
$yellow_state=0;

if (!isOnline('ansid')) {  // в модуле "Устройства Online" должна быть запись с IP-адресом либо названием "192.168.0.1"
 $red_state=1;
 $details[]="Не доступен шлюз и беспроводная сеть";
}

if ($red_state) {
 $state='red';
 $state_title='Красный'; 
} elseif ($yellow_state) {
 $state='yellow';
 $state_title='Жёлтый';  
} else {
 $state='green';
 $state_title='Зелёный';   
}

$this->setProperty('remDetails',implode(". ",$details));

if ($this->getProperty('remColor')!=$state) {
 $this->setProperty('remColor',$state);
 $this->setProperty('remTitle',$state_title);
 if ($state!='green') {
  say("Уровень системы связи изменился на ".$state_title.".");
  say(implode(". ",$details));
 } else {
  say("Уровень системы связи восстановился на ".$state_title);
 }
 $this->callMethod('remChanged');
}
и пункт меню с таким содержанием:

Код: Выделить всё

ANSID:  <span style="color:%remping.remColor%">%remping.remTitle%</span> %remping.remDetails%
показывает просто "ANSID"
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Мониторинг состояния системы

Сообщение nick7zmail » Вт сен 10, 2019 7:34 am

Метод то выполняется? Проверяли ручным запуском?
ansid писал(а):
Пн сен 09, 2019 3:36 pm
Вопрос: есть много методов проверяющих доступность по пингу разных узлов, переменные каждого метода работают только в нем? т.е. если в разных методах будут переменные red, details и т.д., то не будут ли они мешать друг другу?
В соседних методах на одном уровне - нет. А вот метод объекта, к примеру, если он настроен отдельно, может:
1) отключить родительский метод класса
2) перезаписать переменные (точнее не совсем переменные, а свойства...на переменные, как таковые, не должен вроде влиять...хотя не проверял), которые там выставлялись (или наоборот классовый перезапишет, в зависимости от порядка запуска)
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение ansid » Вт сен 10, 2019 9:46 am

nick7zmail писал(а):
Вт сен 10, 2019 7:34 am
Метод то выполняется? Проверяли ручным запуском?
Не могу найти, где вручную запустить метод.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Мониторинг состояния системы

Сообщение nick7zmail » Вт сен 10, 2019 10:05 am

Либо командой cm('Объект.метод'); либо где то в редактировании метода была ссылочка test внизу...ну это у метода объекта (не класса).
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение ansid » Вт сен 10, 2019 10:57 am

nick7zmail писал(а):
Вт сен 10, 2019 10:05 am
Либо командой cm('Объект.метод'); либо где то в редактировании метода была ссылочка test внизу...ну это у метода объекта (не класса).
Добился, того, что показывает "ANSID: Красный Не доступен", но не реагирует на реальное состояние хоста. В pinghosts состояние online, а метод этого не видит. Метод переделал в такой вид(взял из systemState):

Код: Выделить всё

$details=array();
$red_state=0;
$yellow_state=0;

if (!isOnline('192.168.9.109')) {
 $yellow_state=1;
 $details[]=LANG_GENERAL_NO_INTERNET_ACCESS;
}

if ($red_state) {
 $state='red';
 $state_title=LANG_GENERAL_RED; 
} elseif ($yellow_state) {
 $state='yellow';
 $state_title=LANG_GENERAL_YELLOW;  
} else {
 $state='green';
 $state_title=LANG_GENERAL_GREEN;   
}

$new_details=implode(". ",$details);
if ($this->getProperty("remDetails")!=$new_details) {
 $this->setProperty('remDetails',$new_details);
}

if ($this->getProperty('remColor')!=$state) {
 $this->setProperty('remColor',$state);
 $this->setProperty('remTitle',$state_title);
 if ($state!='green') {
  say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title.".");
  say(implode(". ",$details));
 } else {
  say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title);
 }
 $this->callMethod('remChanged');
}
Аватара пользователя
ansid
Сообщения: 22
Зарегистрирован: Пн сен 09, 2019 2:52 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Мониторинг состояния системы

Сообщение ansid » Вт сен 10, 2019 11:11 am

Совсем запутался. Создается класс remoteState, в нем объект remping, в объекте свойства (remTitle, remColor, remDetails) и методы remcheck и remchanged. Правильно? Добрался до создания методов, нет кнопки добавить метод.
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

Re: Мониторинг состояния системы

Сообщение Divan » Вт сен 10, 2019 11:43 am

Методы можно добавлять только в основном объекте, а в под объекте, методы можно только настраивать. Смотрите скриншот ниже.
Вложения
Безымянный.jpg
Безымянный.jpg (71.92 КБ) 3446 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Ответить