Simular conexión de agente Zabbix con zabbix_sender

Ya hacía tiempo que no escribía nada referente a algún truco de Zabbix y hoy ya tocaba. Pues bien, como muchos de vosotros sabréis, Zabbix tiene el comando zabbix_sender que sirve para enviar al servidor el valor de un item que sea de tipo trapper. Trapper es un tipo especial de items en los cuales el servidor Zabbix no pide su valor, sino que alguien debe enviarlos. Alguien que no sea el agente de Zabbix, puesto que estos no se solicitan. Para enviar valores a Zabbix, la forma más sencilla es emplear el propio zabbix_sender.
Hoy lo que nos interesa es ver cómo podemos hacer para que zabbix_sender actualice un valor que sea de tipo "zabbix agent". Como ya dijimos, sólo se puede actualizar valores de tipo trapper. Esto es así por que en el código así está escrito.
La idea es aplicar un pequeño parche al código del zabbix_sender para que éste admita un tipo especial de envío que sea "zabbix agent". Si vemos un poco el código, cada uno de los tipos que admite Zabbix se corresponde con una variable previamente definida. Alterar el código por lo tanto para que se permita el envío de otro tipo de item no "debe ser muy complicado".
El problema está en que los datos que envía el zabbix_sender al llegar al servidor identificados como trapper y el destino es un item de tipo "zabbix agent" son automáticamente truncados. Para evitar este problema, debemos hacer que zabbix_sender envíe la comunicación simulando ser un agente Zabbix.
Os dejo el parche, que podéis descargar desde aquí, y que aplica los cambios necesarios.
Gracias a esta pequeña modificación, podemos ya emplear zabbix_sender para actualizar valores de tipo "zabbix agent", con simplemente añadir en la línea de comandos la opción "-a".
shell> zabbix_sender -h
Zabbix Sender v2.0.6 (revision 35158) (22 April 2013)

usage: zabbix_sender [-Vhv] -a {[-zpsI] -ko | [-zpI] -T -i f -r} [-c f]

Options:
...
Other options:
  -h --help            Give this help
  -V --version         Display version number
  -a --active-agent    Simulate a Zabbix agent in active mode

shell> zabbix_sender -a -s locahost -k system.uname -o "My value"
info from server: "Processed 1 Failed 0 Total 1 Seconds spent 0.000010"
sent: 1; skipped: 0; total: 1
Lógicamente, sentiros libres de modificarlo.
La entrada Simular conexión de agente Zabbix con zabbix_sender la puedes leer en Puppet Linux.


No hay comentarios :

Publicar un comentario

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios