Мониторинг удаленных серверов

 
Как можно следить за теминалом(работает он или нет) которой стоит на удаленном сервере, без использования удаленного рабочего стола?
Была идея реализовать это с помощью отложенного ордера, у которого последнее время сервера кодируется в тэйкпрофите, но как то коряво получаеться, да и наверно не каждый ДЦ примет отложенный ордер с профитом 2359,0000.
 
Можно использовать отправку сообщений на web-сайт через ftp. Смотрите https://www.mql5.com/ru/search/sendftp
 
Можно использовать отправку сообщений на web-сайт через ftp. Смотрите https://www.mql5.com/ru/search/sendftp


Или с таим же успехом SendMAil.

Если сотовый оператор имеет почтовый шлюз то и смс можно организовать. Делал работает.
 
пробывал с SendMAil все хорошо, но нужно отправлять отчет что терминал рухнул, т.е не торгует. Вот как по проще это отследить.
 
Так всетаки рухнул или не торгует?
 
А разницы никакой, но в итоге не торгует :-)
Остановился на кодировании времени в тэйкпрофите
 
Нет отчета в нужное время - значит не торгует. "Ошибку резидента" разве не читали/смотрели?
 
А разницы никакой, но в итоге не торгует :-)
Остановился на кодировании времени в тэйкпрофите



Да нет есть маленькая разница если терминал рухнул и надо узнать об этом нужен альтернативный способ доставки отчета, а так может просто нет соединения и поэтому нет ни отчета нет и торговли, но соединение восстановится и все заработает.
 
А разницы никакой, но в итоге не торгует :-)
Остановился на кодировании времени в тэйкпрофите



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

Отчет будет посылать мой компьютер если задержка времени будет больше чем эн-минут, так же в коменте будет выведена доп. информация. Как закончу выложу здесь.
 
Вот сообразил :-) в тестере работает, а на реале в выходные не проверить :-(

//+------------------------------------------------------------------+
//|                                                 1_WorkServer.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

extern int MinutesModifyOrder =10;//через сколько минут модифицировать ордер
extern int ServerOrClient     =1; //сервер-0, клиент -1
extern int SendReportClient   =12;// через сколько минут посылать отчет
extern int MailReport         =1;// 0-не посылать отчет, 1-послать

int iPoint=1000;
int SendReport=0;
datetime timeServer;
string  nameGlobalVariable="GlobalTicketWorkTime";
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
  
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

      if(IsTesting())
      {
         Server();
         Client();
      }
      else
      {
      if(ServerOrClient==0)Server();
      if(ServerOrClient==1)Client();      
      }
//----
   return(0);
  }


int Server()
{
   int ticket;

   if(TimeCurrent()>=timeServer+MinutesModifyOrder*60)
   {
     ticket=openOrder();
     if(ticket>0)timeServer=TimeCurrent();
   }
}

int openOrder()
{
   double minLot=MarketInfo(Symbol(),MODE_MINLOT);
   int ticket=GlobalVariableGet(nameGlobalVariable);
   if (modOrder(ticket)==-1)
   {
      ticket=OrderSend(Symbol(),OP_BUYSTOP,minLot,Ask+iPoint*Point,3,0,0,nameGlobalVariable,0,0,CLR_NONE);
      GlobalVariableSet(nameGlobalVariable,ticket);
      modOrder(ticket);
   }
return(ticket);
}

int modOrder(int ticket)
{
  int min=Minute();
  int ihour=Hour()*60;
  if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
  { 
      OrderModify(OrderTicket(),Ask+iPoint*Point,0,Ask+(iPoint+ihour+min)*Point,0,CLR_NONE); 
      return(1);  
  }
  else
   return(-1);
   
return(0);
}

void Client()
{
  int total      =OrdersTotal(),
      ticket;
  datetime datetm=0;
  double openOrder;
  double TakeProfit;
  int date1;
  int date;  
   
   for(int pos=total-1;pos>=0;pos--)
   {
    if (OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==false) continue;  
    if (OrderComment()!=nameGlobalVariable) continue; 

    date=((OrderTakeProfit()-OrderOpenPrice())/Point);
    date1=(Hour()*60)+Minute();
        
    if(date1-date>SendReportClient)
      {  
         if(MailReport==1)
             if(SendReport==0)SendMail("!!!ErrorWorkSERVER!!!!","Server No WORK!!!!!!");
         Comment("!!! Сервер  не работает " + (date1-date-SendReportClient)+" мин !!!");
         SendReport=1;
         return(1);
      }  
      else
      {
         SendReport=0;
         Comment("Сервер работает (последняя проверка " + (date1-date)+" мин. назад)");
         return(1);
      }
   }
return(0);
}
//+------------------------------------------------------------------+



 
---Удалил----
Причина обращения: