Diferencia entre revisiones de «Usuario:ManuelRomero/proyecto/proyectoIternova/codigo»
De WikiEducator
Línea 1: | Línea 1: | ||
{{Usuario:ManuelRomero/proyecto/proyectoIternova/nav}} | {{Usuario:ManuelRomero/proyecto/proyectoIternova/nav}} | ||
__NOTOC__ | __NOTOC__ | ||
+ | <source lang=php> | ||
+ | //Segunda columna 'host' | ||
+ | echo '<div class="col-xs-12 col-md-4">'; | ||
+ | $error[] = Controller_Forms::field(array('field_type' => 'text', | ||
+ | 'field_id' => 'host', | ||
+ | 'field_title' => Idiomas_Controller::translate('monitorizacion.host', $idioma, $langfile), | ||
+ | 'field_value' => $obj->host, | ||
+ | 'obligatory' => true, | ||
+ | 'first' => $first)); | ||
+ | |||
+ | //Tercera columna 'host_name' | ||
+ | echo '</div><div class="col-xs-12 col-md-4">'; | ||
+ | $error[] = Controller_Forms::field(array('field_type' => 'text', | ||
+ | 'field_id' => 'host_name', | ||
+ | 'field_title' => Idiomas_Controller::translate('monitorizacion.host_name', $idioma, $langfile), | ||
+ | 'field_value' => $obj->host_name, | ||
+ | 'obligatory' => true, | ||
+ | 'first' => $first)); | ||
+ | |||
+ | echo '</div><div class="col-xs-12 col-md-4">'; | ||
+ | //hacer un peque?o formulario con campos | ||
+ | /* MRM aquí crearemos los checkbox para los servicios */ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | $servicios = Monitorizacion_Controller_Services::get_servicios(); | ||
+ | |||
+ | //$array_checked, contendrá todos los índices de los servicos seleccionados | ||
+ | $array_checked = array(); | ||
+ | foreach ($servicios as $servicio => $servicio_nombre) { | ||
+ | |||
+ | $array_checked[] = in_array($servicio, $obj->servicios); | ||
+ | } | ||
+ | //Logs_Controller::vardump($obj); | ||
+ | //Logs_Controller::vardump($array_checked); | ||
+ | |||
+ | |||
+ | $error[] = Controller_Forms::field(array('field_type' => 'checkbox_multiple', | ||
+ | 'field_id' => 'servicios', | ||
+ | 'field_title' => Idiomas_Controller::translate('monitorizacion.servicios', $idioma, $langfile), | ||
+ | 'array_keys' => array_keys($servicios), | ||
+ | 'array_values' => array_keys($servicios), | ||
+ | 'array_titles' => array_values($servicios), | ||
+ | 'array_checked' => $array_checked, | ||
+ | 'first' => $first | ||
+ | )); | ||
+ | |||
+ | |||
+ | /* MRM_END */ | ||
+ | /** | ||
+ | host_nagios ???? | ||
+ | descripcion | ||
+ | */ | ||
+ | //MRM tengo que coger el valor que quiero visualizar | ||
+ | // Logs_Controller::vardump("MRM"); | ||
+ | // Logs_Controller::vardump($obj); | ||
+ | |||
+ | $servidores_nagios = Monitorizacion_Modules_Nagios_Model::get_servidores(); | ||
+ | echo '</div><div class="col-xs-12 col-md-4">'; | ||
+ | $error[] = Controller_Forms::field(array('field_type' => 'select', | ||
+ | 'field_id' => 'nagios_id', | ||
+ | 'field_title' => Idiomas_Controller::translate('monitorizacion.nagios', $idioma, $langfile), | ||
+ | 'array_keys' => array_keys($servidores_nagios), | ||
+ | 'array_values' => array_values($servidores_nagios), | ||
+ | //'array_titles'=>array_values($servidores_nagios), | ||
+ | 'field_value' => $obj->nagios_id, | ||
+ | 'obligatory' => true, | ||
+ | 'first' => $first)); | ||
+ | |||
+ | |||
+ | echo '</div><div class="col-xs-12 col-md-4">'; | ||
+ | $error[] = Controller_Forms::field(array('field_type' => 'textarea', | ||
+ | 'field_id' => 'descripcion', | ||
+ | 'field_title' => Idiomas_Controller::translate('monitorizacion.descripcion', $idioma, $langfile), | ||
+ | 'field_value' => $obj->descripcion, | ||
+ | 'obligatory' => false, | ||
+ | 'first' => $first)); | ||
+ | |||
+ | </source> | ||
===Casting los objetos a arrays=== | ===Casting los objetos a arrays=== | ||
Para evitar problemas si una acción me retorna un objeto o un array, convierto siempre todo a array | Para evitar problemas si una acción me retorna un objeto o un array, convierto siempre todo a array |
Revisión de 02:20 8 sep 2017
//Segunda columna 'host' echo '<div class="col-xs-12 col-md-4">'; $error[] = Controller_Forms::field(array('field_type' => 'text', 'field_id' => 'host', 'field_title' => Idiomas_Controller::translate('monitorizacion.host', $idioma, $langfile), 'field_value' => $obj->host, 'obligatory' => true, 'first' => $first)); //Tercera columna 'host_name' echo '</div><div class="col-xs-12 col-md-4">'; $error[] = Controller_Forms::field(array('field_type' => 'text', 'field_id' => 'host_name', 'field_title' => Idiomas_Controller::translate('monitorizacion.host_name', $idioma, $langfile), 'field_value' => $obj->host_name, 'obligatory' => true, 'first' => $first)); echo '</div><div class="col-xs-12 col-md-4">'; //hacer un peque?o formulario con campos /* MRM aquí crearemos los checkbox para los servicios */ $servicios = Monitorizacion_Controller_Services::get_servicios(); //$array_checked, contendrá todos los índices de los servicos seleccionados $array_checked = array(); foreach ($servicios as $servicio => $servicio_nombre) { $array_checked[] = in_array($servicio, $obj->servicios); } //Logs_Controller::vardump($obj); //Logs_Controller::vardump($array_checked); $error[] = Controller_Forms::field(array('field_type' => 'checkbox_multiple', 'field_id' => 'servicios', 'field_title' => Idiomas_Controller::translate('monitorizacion.servicios', $idioma, $langfile), 'array_keys' => array_keys($servicios), 'array_values' => array_keys($servicios), 'array_titles' => array_values($servicios), 'array_checked' => $array_checked, 'first' => $first )); /* MRM_END */ /** host_nagios ???? descripcion */ //MRM tengo que coger el valor que quiero visualizar // Logs_Controller::vardump("MRM"); // Logs_Controller::vardump($obj); $servidores_nagios = Monitorizacion_Modules_Nagios_Model::get_servidores(); echo '</div><div class="col-xs-12 col-md-4">'; $error[] = Controller_Forms::field(array('field_type' => 'select', 'field_id' => 'nagios_id', 'field_title' => Idiomas_Controller::translate('monitorizacion.nagios', $idioma, $langfile), 'array_keys' => array_keys($servidores_nagios), 'array_values' => array_values($servidores_nagios), //'array_titles'=>array_values($servidores_nagios), 'field_value' => $obj->nagios_id, 'obligatory' => true, 'first' => $first)); echo '</div><div class="col-xs-12 col-md-4">'; $error[] = Controller_Forms::field(array('field_type' => 'textarea', 'field_id' => 'descripcion', 'field_title' => Idiomas_Controller::translate('monitorizacion.descripcion', $idioma, $langfile), 'field_value' => $obj->descripcion, 'obligatory' => false, 'first' => $first));
Casting los objetos a arrays
Para evitar problemas si una acción me retorna un objeto o un array, convierto siempre todo a array
- Metodo
Controller_Utils::cast_object_to_array($obj)
- Muy bueno que lo hace de forma recursiva.
Estructura de datos
- Servidor nagios
["_id"] => string(24) "5762657febcfa667008b456b" ["url"] => string(17) "http://172.17.0.3" ["host"] => string(12) "e490a9185700" ["usuario"] => string(5) "admin" ["password"] => string(5) "admin" ["descripcion"] => string(35) "Servidor nagios de prueba en docker"
- Host
["_id"] => string(24) "57627b58ebcfa6780f8b4569" ["host"] => string(10) "172.17.0.3" ["host_name"] => string(12) "e490a9185700" ["servicios"] => array(5) { [0] => int(1) [1] => int(2) [2] => int(3) [3] => int(4) [4] => int(5) } ["nagios_id"] => string(24) "5762657febcfa667008b456b" ["nagios_name"] => string(12) "e490a9185700" ["descripcion"] => string(51) "El equipo donde tengo nagios que quiero monitorizar"
- servicios
const SERVICIO_UNDEFINED =-1; //Servicio no definido const SERVICIO_SSH = 1; //SSH const SERVICIO_HTTP = 2; //Servicio http const SERVICIO_MYSQL = 3; //Servicio uso mysql const SERVICIO_DISCOS = 4; // Current_load const SERVICIO_CPU= 5; //Servicio uso de cpu const SERVICIO_PING=6; //PING
- Tradución de los servicios
monitorizacion.servicios.ssh=Servicio de uso de ssh monitorizacion.servicios.http=Servicio de uso web con http monitorizacion.servicios.mysql=Servicio de uso de mysql monitorizacion.servicios.discos=Serivicio de uso de discos monitorizacion.servicios.cpu=Servicio de uso de cpu monitorizacion.servicios.ping=Servicio de ping monitorizacion.service.not_defined =Servicio no definido monitorizacion.descripcion=Descripción
- Pendientes
- mirar crondaemon Mirar en la wiki añadida en la clase de stats
- Webbin *Webbinario que me pasa para mirar ??????
- MongoDB + time-series:
- https://www.mongodb.com/presentations/webinar-mongodb-time-series-data-setting-stage-sensor-management - https://www.mongodb.com/presentations/mongodb-time-series-data-part-2-analyzing-time-series-data-using-aggregation-framework
- 9/10/2016
- Errores varios al visualizar las monitorizaciones
Estaba $obj->nombre y no es un campo de la colección de monitorizacion (host host_name nagios nagios_name, descripcion, servicios)
- Camibio en el directorio stats' del módulo de monitorizacion el nombre de los siguientes ficheros
smarapps_ **** por monitorizacion_*****
- Usado para hacer estadísticas
- Me quedo modificando lo de los servicios
- A partir de intentar borrar una monitorización, he añadido el método get_servicios en controller.
- Esto me ha provocado una serio de errores, volver a lo de monitorizar host
3/5/2016
- Fichero Monitoriazacion_Constants
- Crear una constante por servicio a monitorizar
- Añadir un método que retorne un array con el id del servicio seleccionado y el texto asociado
- Menú
- Que aparezcan un checkbox con los servicios (p.e.)
SSh HTTp Mysql Discos cpu
;En es_ES.lang monitorizacion.servicios=Servicios a monitorizar; ;En monitorizacion:constats.php /** Carga un array con los servicios que los diferentes servidores de nagios podrán monitorizar * @return array asociativo con la lista de servicios */ public static function servicios(){ $servicios =["http"=>"Tráfico http","cpu"=>"Uso de cpu","Mysql"=>"Uso de base de datos Mysqlt"]; return $servicios; } ;en monitoriazación_view.php método static edit /*MRM aquí crearemos los checkbox para los servicios*/ $servicios = Monitorizacion_Constants::servicios(); $error[] = Controller_Forms::field(array('field_type' => 'checkbox_multiple', 'field_id' => 'servicio', 'field_title' => Idiomas_Controller::translate('monitorizacion.servicio', $idioma, $langfile), 'array_keys'=> array_keys($servicios), 'array_values'=>array_values($servicios), 'array_titles'=>array_values($servicios) // 'array_checked'=>$array_checked, 'first' => $first ) )); /*MRM_END*/
class Monitorizacion_Model { /** * @var string $_db_collection Nombre identificador de la coleccion en la base de datos */ private static $_db_collection = 'monitorizacion'; /** * @var string $_id Identificador de registro dentro de la coleccion monitorizacion */ public $_id = null; /** * * @var string ip del host que estamos monitorizando */ public $host = ''; /** * * @var string nombre del host que estamos monitorizando */ public $host_name = ''; /** * * @var array de string lista de servicios que estamos monitorizando */ public $servicios = []; // /** * * @var string url del servidor de nagios que nos da el servicio para este host */ public $nagios_id = ''; /** * * @var string identificador del servidor de nagios */ public $nagios_name = ''; /** * * @var string descripcion de esta monitorizacion concreta (host con n servicios); */ public $descripcion = '';