Mostrando las entradas con la etiqueta pandora. Mostrar todas las entradas
Mostrando las entradas con la etiqueta pandora. Mostrar todas las entradas

miércoles, agosto 26, 2020

Notificaciones a traves de Telegram con Python

 Realice un pequeño script para enviar notificaciones vía telegram. En este caso lo utilizamos para enviar notificaciones de Pandora FMS (https://pandorafms.com/).

El primer paso es obtener el token de Telegram para interactuar con la API. Para esto seguir este tutorial link. Ya obtenida la información podemos utilizar el siguiente script:

 

  
   
import sys
import request

bot_token = 'token_telegram'
bot_chatID = 'id_grupo'

tipo=sys.argv[1]
sitio=sys.argv[2]
agente=sys.argv[3]
url=sys.argv[4]
"""Funcion para envio de notificacion via telegram"""
def telegram_bot_sendtext(bot_token,bot_chatID,bot_message):
   
 send_text = 'https://api.telegram.org/bot' + bot_token + 
'/sendMessage?chat_id=' + bot_chatID + 
'&parse_mode=Markdown&text=' + bot_message

    response = requests.get(send_text)
    return response.json()

if tipo=="1":
   
 telegram_bot_sendtext(bot_token,bot_chatID,"\U000026A0 *Equipo Caido* 
\U000026A0 \nSitio: " + sitio +  "\nEquipo: " + agente +  "\nLink: [" + 
url+ "]("+ url+")")

else:
    
telegram_bot_sendtext(bot_token,bot_chatID,"\U0001F37B *Equipo 
Recuperado* \U0001F37B \nSitio: " + sitio +  " \nEquipo: " + agente +  
"\nLink: [" + url+ "]("+ url+")")   

El script recibe 4 parámetros:

  • tipo: pueden ser de tipo 1, es equipo caído, y tipo diferente es equipo recuperado
  • Sitio: en este caso el lugar donde se encuentra el equipo
  • Agente: nombre del equipo caído
  • url: se envía un link a definir por la notificación

 

Estas imágenes muestra como llegan las alarmas






lunes, agosto 17, 2020

Crear agentes en Pandora FMS via API

Aqui explicare un script en Python hecho para agregar de manera automática, basados en un csv, agentes a Pandora FMS y ademas agregarles el monitoreo básico.


Formato CSV

nombre,ip,descripcion,grupo,os
Router1,172.22.1.1,Router sucursal A,1,1
Router2,172.22.1.2,Router sucursal B,1,1

Router3,172.22.1.3,Router sucursal C,1,1

 Router4,172.22.1.4,Router sucursal D,1,1


Importante deben estar creados los grupos y sistemas operativos primero, y despues obtener el id de cada uno para llevar el csv.

Ahora debemos configurar la clave de la API de Pandora FMS y ademas permitir la ip de donde vamos a ejecutar el script.



El script:



 import requests
 import pandas as pd

 df=pd.read_csv("listado_agentes.csv") 

for index, row in df.iterrows():
    nombre = row['nombre']
    ip = row['ip']
    grupo = row['grupo']
    os = row['os']
    descripcion = row['descripcion']
    autenticacion = "apipass=_clave_api&user=admin&pass=pandora"
    pagina_api= "http://IP_Pandora/pandora_console/include/api.php"
    url=f"{pagina_api}?op=set&op2=new_agent&other={nombre}|{ip}|0|{grupo}|0|0|300|{os}|localhost.localdomain|8|10||{descripcion}|1&other_mode=url_encode_separator_|&{autenticacion}"
    #print(url)
    r = requests.get(url, stream=True)
    agente=r.text
    print(r.text)
    plantilla_modulo="2"
    url2=f"{pagina_api}?op=set&op2=apply_module_template&id={plantilla_modulo}&id2={agente}&{autenticacion}"
    r2 = requests.get(url2, stream=True)
    print(r2.text)