puedo ofrecer 2 sugerencias para obtener las métricas en Zabbix:
Uso del zabbix_sender
binaria para alimentar a los datos de la secuencia de comandos directamente al servidor Zabbix. Esto permite que su secuencia de comandos llame a su propio intervalo y configure todos los parámetros necesarios. Solo necesita conocer la ubicación del zabbix_sender
binario.
Dentro de la interfaz del servidor Zabbix, crearía elementos con el tipo de Zabbix trapper
. Este es el tipo de elemento que recibe los valores enviados desde el zabbix_sender
. Usted crea el nombre de la clave y tiene que coincidir.
La segunda forma de hacerlo es especificar un nombre de clave y script/binario dentro del archivo zabbix_agentd.conf
. Cada vez que el servidor Zabbix solicita este elemento, se llamará al script y se grabarán los datos del script.
Esto le permite establecer los intervalos en la configuración del elemento Zabbix en lugar de forzarlo a ejecutar su secuencia de comandos en sus propios intervalos. Sin embargo, deberá agregar este bit de información adicional a su archivo zabbix_agentd.conf
para cada host.
Puede haber otras maneras de hacer esto directamente desde Python (zabbix_sender
fijaciones para Python, tal vez?). Pero estas son las 2 formas que he usado antes, que funcionan bien. Esto no es realmente específico de Python. Pero debería poder usar zabbix_sender
en sus scripts de Python. Espero que esta información ayude!
Actualización: También recordé que Zabbix estaba trabajando en/tiene una API (estilo JSON/RPC). Pero el sitio de documentación está inactivo en este momento y no estoy seguro de si la API es para enviar datos de elementos o no. Aquí está el wiki en la API: http://www.zabbix.com/wiki/doc/api
Y un proyecto para Python API: https://github.com/gescheit/scripts/tree/master/zabbix/
Parece que hay poca documentación sobre la API, ya que es nueva partir de la versión Zabbix 1.8
No hay enlaces zabbix_sender para Python. Tengo un montón de scripts de Python envío de datos a zabbix_sender, cuando se está tratando con una gran cantidad de métricas es la manera más eficiente para poblar un archivo zabbix_sender compatible en un bucle: de impresión >> metrics_file_descriptor, '% s% s% s% s '% (hostname, item_key1, zbx_timestamp, metric1) y llámelo para que lo envíe a su servidor Zabbix command = "% s -z% s -p% s --with-timestamps - -input-file% s>/dev/null 2>/dev/null "% (zbx_sender, zbx_server_ip, zbx_port, metrics_file) args = shlex.split (comando) –
También, la envoltura python zabbix API es bastante útil para creación y actualización masiva de elementos y disparadores, considerando que la mayoría de las funciones más frecuentes son trabajando, algunos de ellos, sin embargo, todavía necesitan codificación adicional para funcionar. –
También hay https://github.com/lukecyca/pyzabbix, que se ve un poco mejor, que https://github.com/gescheit/scripts/tree/master/zabbix/ – Blin