Страница 1 из 1

Дата/время с секундами

Добавлено: 13 фев 2018, 09:12
HakimzyanovA
Добавьте пожалуйста возможность отображения секунд в поле типа "Дата с календарем и выбором времени". Это нужно при занесении данных через API из других систем (например zabbix).
пока решил исправлением строки форматирования в fieldtype_input_datetime.php:
$value = date('Y-m-d H:i:s',$obj['field_' . $field['id']]);

Re: Дата/время с секундами

Добавлено: 31 июл 2019, 08:47
letarch
HakimzyanovA писал(а): 13 фев 2018, 09:12 Добавьте пожалуйста возможность отображения секунд в поле типа "Дата с календарем и выбором времени". Это нужно при занесении данных через API из других систем (например zabbix).
пока решил исправлением строки форматирования в fieldtype_input_datetime.php:
$value = date('Y-m-d H:i:s',$obj['field_' . $field['id']]);
Подскажите, каким образом интегрировали данные zabbix в rukovoditel?

Re: Дата/время с секундами

Добавлено: 01 авг 2019, 08:28
HakimzyanovA
На примере мониторинга доступности хоста по пингу.

1.Создаете в Zabbix действие на основе нужного триггера
2. В "операции восстановления" для действия создаете операцию как на скриншоте.
3. На сервере zabbix создаете файл /usr/lib/zabbix/externalscripts/addevent.sh

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

 
 #!/bin/bash
php /usr/lib/zabbix/externalscripts/addevent.php "$1" "$2" "$3" "$4"
4. На сервере zabbix создаете файл /usr/lib/zabbix/externalscripts/addevent.php

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

 
<?php
$DateStart=str_replace(".","/",$argv[1]); //дата возникновения
$DateEnd=str_replace(".","/",$argv[2]); //дата устранения
$HostName=$argv[3]; //имя хоста
$HostIP=$argv[4]; //ip хоста
$items = array();
$items[] = array(
  'field_216' => $DateStart, 
  'field_217' => $DateEnd, 
  'field_215' => $HostName,
  'field_218' => $HostIP,

);

$params = array(
  'key' => 'xxx', //API ключ  
  'username' => 'xxx', //Имя пользователя
  'password' => 'xxx', //Пароль
  'action' => 'insert', //действие
  'entity_id' => xx, //ID сущности, в которую будет добавлена запись
  'items' => $items, //массив записей
);
 						                                    
$ch = curl_init('https://xxxx/api/rest.php'); //API Url
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);			
$result = curl_exec($ch);
curl_close($ch);

if($result)
{
  $result = json_decode($result,true);
  
  print_r($result);
}
Таким образом, в сущности хранятся данные о событиях утраты/восстановления связи с хостом.

Re: Дата/время с секундами

Добавлено: 01 авг 2019, 13:35
letarch
HakimzyanovA писал(а): 01 авг 2019, 08:28 На примере мониторинга доступности хоста по пингу.

1.Создаете в Zabbix действие на основе нужного триггера
2. В "операции восстановления" для действия создаете операцию как на скриншоте.
3. На сервере zabbix создаете файл /usr/lib/zabbix/externalscripts/addevent.sh

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

 
 #!/bin/bash
php /usr/lib/zabbix/externalscripts/addevent.php "$1" "$2" "$3" "$4"
4. На сервере zabbix создаете файл /usr/lib/zabbix/externalscripts/addevent.php

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

 
<?php
$DateStart=str_replace(".","/",$argv[1]); //дата возникновения
$DateEnd=str_replace(".","/",$argv[2]); //дата устранения
$HostName=$argv[3]; //имя хоста
$HostIP=$argv[4]; //ip хоста
$items = array();
$items[] = array(
  'field_216' => $DateStart, 
  'field_217' => $DateEnd, 
  'field_215' => $HostName,
  'field_218' => $HostIP,

);

$params = array(
  'key' => 'xxx', //API ключ  
  'username' => 'xxx', //Имя пользователя
  'password' => 'xxx', //Пароль
  'action' => 'insert', //действие
  'entity_id' => xx, //ID сущности, в которую будет добавлена запись
  'items' => $items, //массив записей
);
 						                                    
$ch = curl_init('https://xxxx/api/rest.php'); //API Url
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);			
$result = curl_exec($ch);
curl_close($ch);

if($result)
{
  $result = json_decode($result,true);
  
  print_r($result);
}
Таким образом, в сущности хранятся данные о событиях утраты/восстановления связи с хостом.
Отличный пример! Спасибо.
Чтобы этот скрипт работал нужно "Дополнение" для "Руководителя"?

Re: Дата/время с секундами

Добавлено: 01 авг 2019, 14:43
support
Да, API доступно в дополнении.

Re: Дата/время с секундами

Добавлено: 02 авг 2019, 06:26
HakimzyanovA
Отличный пример! Спасибо.
На здоровье :)