nuxsmin / sysMonDash

Systems Monitor Dashboard, monitoring dashboard for Nagios, Icinga Check_MK and Zabbix
GNU General Public License v3.0
34 stars 13 forks source link

Zabbix trigger expandData #8

Closed marticardus closed 8 years ago

marticardus commented 8 years ago

Hola,

Parece que no està haciendo correctamente el expandData o expandDescription, los eventos de Zabbix aparecen así en el dashboard: CPU $2 time, el $2 se tendria que cambiar por el contenido de la variable

nuxsmin commented 8 years ago

Se solucionó con el último commit?

marticardus commented 8 years ago

Aupa,

No, sigue apareciendo la variable, no el contenido del trigger,

gracias

nuxsmin commented 8 years ago

Vaya...pues voy a revisarlo porque en teoría debe de expandir las variables:

'expandComment ' => true, 'expandDescription' => true, 'expandExpression' => true,

La clave "expandData" está obsoleta a partir de la versión 2.4: https://www.zabbix.com/documentation/2.4/manual/api/reference/trigger/get

nuxsmin commented 8 years ago

Hola, he probado a definir una macro a nivel de host y referenciarla en el trigger y funciona correctamente:

cygnux_cloud_configuration_of_triggers_-_2016-05-31_00 21 00

Lo puedes comprobar aquí: http://sysmondash.cygnux.org/

Dónde defines la macro?

marticardus commented 8 years ago

Hola,

Este caso concreto es un trigger prototype (LLD)

image

Y aqui el item que consulta

image

Y así es como me aparecen

image

Muchas gracias

marticardus commented 8 years ago

Hola de nuevo,

Estaba revisando esto, además veo que el texto que se muestra es el del item, no el del trigger.

En el caso que he pasteado antes se tendria que ver Free disk space is less than 5% on volume {#FSNAME} on {HOST.NAME} Pero aparece el del item: Free disk space on $1 (percentage)

Se podria hacer que muestre el titulo del trigger?

Gracias

nuxsmin commented 8 years ago

Buenas, he subido un nuevo commit para mostrar los eventos en bruto es decir si accedes a la URL http://servidor/smd/inc/functions.php?raw=1 donde obtienes un listado completo de los eventos en estado de alarma desde los backends con las propiedades de los mismos.

También el subido el patch de dicho commit por si quieres aplicarlo... https://gist.github.com/nuxsmin/d95e16b4a7df709152a70bfc0f32cf76#file-raw_events-patch

El método que recupera los eventos, se trae la información del trigger, de hecho lo tengo en producción (no demo) con esa misma versión y me muestra los datos del trigger:

El código relevante es:

        $params = array(
            'groupids' => null,
            'hostids' => null,
            'monitored' => true,
            //'maintenance'   => false,
            'filter' => array('value' => 0, 'lastChangeSince' => time() - (Config::getConfig()->getNewItemTime() / 2)),
            'skipDependent' => true,
            'expandDescription' => true,
            'output' => array('triggerid', 'state', 'status', 'error', 'url', 'expression', 'description', 'priority', 'lastchange', 'value'),
            'selectHosts' => array('hostid', 'name', 'maintenance_status', 'errors_from'),
            'selectLastEvent' => array('eventid', 'acknowledged', 'objectid', 'clock', 'ns', 'value'),
            'sortfield' => array('lastchange'),
            'sortorder' => array('DESC'),
            'limit' => Config::getConfig()->getMaxDisplayItems()
        );

        $triggers = $this->Zabbix->triggerGet($params);
        $events = array();
marticardus commented 8 years ago

Hola,

Muchas gracias, acabo de encontrar el error, yo estaba viendo la columna "Mostrar servicio de eventos", ahora he puesto que se muestre la "Mostrar info de eventos"

image

Mirando el raw aparece así

            [displayName] => CPU $2 time
            [checkCommand] => 21294
            [pluginOutput] => CPU Usage is too high on nombreservidor

En este caso el "displayName" es el que no se traduce bien, pero con el cambio de columnas ya me ha valido

Muchas gracias

nuxsmin commented 8 years ago

Perfecto, el problema viene que al no ser una consulta de items (sólo triggers), la información de los items no se expande. Los items se obtienen mediante un parámetro en la llamada a los triggers, por lo que si no lo da zabbix...

El código correcto (mencionado antes) es:

       $params = array(
            'groupids' => null,
            'hostids' => null,
            'monitored' => true,
            //'maintenance'   => false,
            'filter' => array('value' => 1),
            'skipDependent' => true,
            'expandComment ' => true,
            'expandDescription' => true,
            'expandExpression' => true,
            'output' => array('triggerid', 'state', 'status', 'error', 'url', 'expression', 'description', 'priority', 'lastchange', 'value'),
            'selectHosts' => array('hostid', 'name', 'maintenance_status'),
            'selectLastEvent' => array('eventid', 'acknowledged', 'objectid', 'clock', 'ns', 'value'),
            'selectItems' => array('name'),
            'sortfield' => array('lastchange'),
            'sortorder' => array('DESC'),
            'limit' => Config::getConfig()->getMaxDisplayItems()
        );

Revisando el objeto que devuelve para el item, no realiza la expansión de la variable "name". Sólo se haría si hiciera una consulta de items, pero si hay que realizar una consulta de items por cada trigger, sería muy costoso en tiempo y proceso.