Monitoreo de servidores con PyZabbix en Python

Monitoreo de servidores con PyZabbix en Python

Introducción

Zabbix es un sistema de monitoreo de código abierto que puede ser utilizado para monitorear una amplia gama de sistemas y dispositivos, incluyendo servidores, redes, aplicaciones y bases de datos. PyZabbix es una biblioteca Python que permite a los usuarios crear y administrar objetos Zabbix desde Python.

En este tutorial, aprenderemos a usar PyZabbix para monitorear servidores.

Requisitos

Para seguir este tutorial, necesitarás lo siguiente:

  • Un servidor Zabbix instalado y configurado.
  • Python 3.6 o superior.
  • La biblioteca PyZabbix instalada.

Instalando PyZabbix

Para instalar PyZabbix, puedes usar pip:

pip install pyzabbix

Creando un host Zabbix

Lo primero que necesitamos hacer es crear un host Zabbix para el servidor que queremos monitorear. Puedes hacer esto en la interfaz web de Zabbix o usando la API Zabbix.

En este tutorial, crearemos un host Zabbix usando la API Zabbix.

Python
import pyzabbix

# Crea un cliente Zabbix
client = pyzabbix.ZabbixAPI("https://zabbix.example.com", user="admin", password="password")

# Crea un host Zabbix
host = {
    "host": "mi-servidor",
    "ip": "192.168.1.1",
    "status": "0",
    "groups": ["grupo-de-servidores"],
}
client.host.create(host)

Este código creará un host Zabbix con el nombre «mi-servidor» y la dirección IP «192.168.1.1». El host estará asignado al grupo «grupo-de-servidores» y su estado se establecerá en «0», que significa «activo».

Creando un item Zabbix

Un item Zabbix es una medición que se puede monitorear en un host. En este tutorial, crearemos un item Zabbix para monitorear la carga del sistema del servidor.

Python
import pyzabbix

# Crea un cliente Zabbix
client = pyzabbix.ZabbixAPI("https://zabbix.example.com", user="admin", password="password")

# Crea un item Zabbix
item = {
    "name": "carga-del-sistema",
    "key": "system.cpu.load[1]",
    "type": 0,
    "value_type": 0,
    "delay": 10,
    "history": 90,
    "units": "%",
    "multiplier": 1,
    "tags": ["servidor:mi-servidor"],
}
client.item.create(item)

Este código creará un item Zabbix con el nombre «carga-del-sistema» y la clave «system.cpu.load[1]». El item usará el tipo de medición «0», que significa «entero», y el tipo de valor «0», que significa «entero». El retraso del item se establecerá en 10 segundos, la historia se establecerá en 90 días y las unidades se establecerán en «%». El item también tendrá la etiqueta «servidor:mi-servidor».

Creando un trigger Zabbix

Un trigger Zabbix es una regla que se activa cuando un item Zabbix excede un umbral. En este tutorial, crearemos un trigger Zabbix para alertarnos cuando la carga del sistema del servidor excede el 80%.

Python
import pyzabbix

# Crea un cliente Zabbix
client = pyzabbix.ZabbixAPI("https://zabbix.example.com", user="admin", password="password")

# Crea un trigger Zabbix
trigger = {
    "name": "carga-del-sistema-alta",
    "expression": "system.cpu.load[1] > 80",
    "priority": 2,
    "tags": ["servidor:mi-servidor"],
}
client.trigger.create(trigger)

Este código creará un trigger Zabbix con el nombre «carga-del-sistema-alta». El trigger usará la expresión «system.cpu.load[1] > 80