meta data de esta página
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
seguridad:monitorizacion:zabbix3:telegram [2016/11/03 12:20] – [Con un script bash] lc | seguridad:monitorizacion:zabbix3:telegram [2023/01/18 14:46] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 17: | Línea 17: | ||
para obtener el id usuario y el id grupo. El token te llega en un mensaje de telegram | para obtener el id usuario y el id grupo. El token te llega en un mensaje de telegram | ||
</ | </ | ||
+ | <note warning> | ||
+ | |||
+ | |||
+ | |||
Para hacer una prueba ejecutamos el siguiente comando desde la consola situandonos en el directorio donde está localizado el script | Para hacer una prueba ejecutamos el siguiente comando desde la consola situandonos en el directorio donde está localizado el script | ||
< | < | ||
< | < | ||
- | Configuramos | + | |
- | * Añadimos en zabbix-> | + | ==== Configuración del zabbix para que envie las alarmas |
+ | Creamos un nuevo **Media Types ** zabbix-> | ||
+ | |||
+ | * Como nombre ponemos telegram, tipo script, y en Script name ponemos el nombre de nuestro script **zabbix-telegram.sh** y marcamos la casilla **Enabled**. | ||
+ | En la casilla de Script Parameters pinchamos en **Add** | ||
+ | |||
+ | {{ : | ||
* Ahora vamos a zabbix-> | * Ahora vamos a zabbix-> | ||
- | {{ : | + | {{ : |
- | * Por último vamos al menú zabbix-> | + | |
+ | * Por último vamos al menú zabbix-> | ||
+ | |||
+ | En la casilla de Event Source seleccionamos **Triggers** | ||
+ | |||
+ | En nuestro caso creamos una nueva acción con los siguientes datos | ||
- Name -> Enviar alarmas por telegram | - Name -> Enviar alarmas por telegram | ||
- Default subject -> {HOSTNAME}: | - Default subject -> {HOSTNAME}: | ||
Línea 45: | Línea 60: | ||
{{ : | {{ : | ||
< | < | ||
+ | |||
+ | ==== Script Modificado para usar proxy ==== | ||
+ | <sxh bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | ########################################################################## | ||
+ | # Zabbix-Telegram envio de alerta por Telegram com graficos dos eventos | ||
+ | # Filename: zabbix-telegram.sh | ||
+ | # Revision: 2.1 | ||
+ | # Date: 24/04/2016 | ||
+ | # Author: Diego Maia - diegosmaia@yahoo.com.br Telegram - @diegosmaia | ||
+ | # Aproveitei algumas coisas: | ||
+ | # Script getItemGraph.sh Author: Qicheng | ||
+ | # https:// | ||
+ | # Obs.: Se añade la opción de usar el script en caso de estar detras de un proxy (wiki.intrusos.info) | ||
+ | ########################################################################## | ||
+ | |||
+ | MAIN_DIRECTORY="/ | ||
+ | |||
+ | USER=$1 | ||
+ | SUBJECT=$2 | ||
+ | SUBJECT=" | ||
+ | MESSAGE=" | ||
+ | GRAPHID=$3 | ||
+ | GRAPHID=$(echo $GRAPHID | grep -o -E "(Item Graphic: \[[0-9]{7}\])|(Item Graphic: \[[0-9]{6}\])|(Item Graphic: \[[0-9]{5}\])|(Item Graphic: \[[0-9]{4}\])|(Item Graphic: \[[0-9]{3}\])" | ||
+ | GRAPHID=$(echo $GRAPHID | grep -o -E " | ||
+ | |||
+ | ZABBIXMSG="/ | ||
+ | |||
+ | ############################################# | ||
+ | # URL donde esta el Zabbix (modificar) | ||
+ | ############################################# | ||
+ | ZBX_URL=" | ||
+ | |||
+ | ############################################## | ||
+ | # Usuario y clave para logearse en el Zabbix (modificar) | ||
+ | ############################################## | ||
+ | |||
+ | USERNAME=" | ||
+ | PASSWORD=" | ||
+ | |||
+ | ############################################ | ||
+ | # Bot-Token de ejemplo (modificar) | ||
+ | ############################################ | ||
+ | |||
+ | BOT_TOKEN=' | ||
+ | |||
+ | ############################################# | ||
+ | # Si enviar o no GRAFICOS / ENVIA_GRAFICO = 0 | ||
+ | # Si enviar o no MESAJES | ||
+ | ############################################# | ||
+ | |||
+ | ENVIA_GRAFICO=1 | ||
+ | ENVIA_MESSAGE=1 | ||
+ | |||
+ | # Se não receber o valor de GRAPHID ele seta o valor de ENVIA_GRAFICO para 0 | ||
+ | |||
+ | case $GRAPHID in | ||
+ | '' | ||
+ | *) ENVIA_GRAFICO=1 ;; | ||
+ | esac | ||
+ | |||
+ | |||
+ | ############################################## | ||
+ | # Graficos | ||
+ | ############################################## | ||
+ | |||
+ | WIDTH=800 | ||
+ | CURL="/ | ||
+ | COOKIE="/ | ||
+ | PNG_PATH="/ | ||
+ | |||
+ | ############################################ | ||
+ | # Periodo do grafico em minutos Exp: 10800min/ | ||
+ | ############################################ | ||
+ | |||
+ | PERIOD=10800 | ||
+ | |||
+ | |||
+ | ########################################### | ||
+ | # Verifica se foi passado os 3 parametros | ||
+ | # para o script | ||
+ | ########################################### | ||
+ | |||
+ | if [ " | ||
+ | then | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | ############################################ | ||
+ | # Envio Mensaje de Alerta usando proxy | ||
+ | ############################################ | ||
+ | |||
+ | echo " | ||
+ | ${CURL} -x http:// | ||
+ | |||
+ | if [ " | ||
+ | then | ||
+ | ${CURL} -x http:// | ||
+ | fi | ||
+ | ############################################ | ||
+ | # Envio dos graficos | ||
+ | ############################################ | ||
+ | |||
+ | # Se ENVIA_GRAFICO=1 ele envia o gráfico. | ||
+ | if [ $(($ENVIA_GRAFICO)) -eq ' | ||
+ | ############################################ | ||
+ | # Zabbix logando com o usuário no site | ||
+ | ############################################ | ||
+ | |||
+ | # Zabbix - Ingles - Verifique no seu Zabbix se na tela de login se o botao de login é "Sign in". | ||
+ | # Obs.: Caso queira mudar, abra a configuração do usuário Guest e mude a linguagem para Portugues, se fizer isso comente (#) a linha abaixo e descomente a linha Zabbix-Portugues. | ||
+ | |||
+ | ${CURL} --noproxy ' | ||
+ | |||
+ | # Zabbix - Portugues - Verifique no seu Zabbix se na tela de login se o botao de login é " | ||
+ | # ${CURL} -k -s -c ${COOKIE} -b ${COOKIE} -d " | ||
+ | |||
+ | # Download do gráfico e envio | ||
+ | ${CURL} --noproxy ' | ||
+ | |||
+ | ${CURL} -x http:// | ||
+ | |||
+ | fi | ||
+ | |||
+ | ############################################ | ||
+ | # DEBUG | ||
+ | ############################################ | ||
+ | |||
+ | # Verificar valores recebidos do Zabbix ou do prompt | ||
+ | # cat / | ||
+ | # echo " | ||
+ | |||
+ | # Teste com curl tentando baixar o gráfico | ||
+ | # Verifique o arquivo / | ||
+ | # | ||
+ | |||
+ | # | ||
+ | |||
+ | # Envio da msg de texto | ||
+ | # Gera uma saída no script com algo parecido com isso {" | ||
+ | # Se gerar uma saida diferente verifique o seu BOT_TOKEN ou então o UserID ou Group-ID para qual a msg esta sendo enviada | ||
+ | # ${CURL} -k -c ${COOKIE} -b ${COOKIE} -X GET " | ||
+ | |||
+ | # Envio do Grafico | ||
+ | #${CURL} -k -X POST " | ||
+ | |||
+ | |||
+ | ############################################ | ||
+ | # Apagando os arquivos utilizados no script | ||
+ | ############################################ | ||
+ | |||
+ | rm -f ${COOKIE} | ||
+ | rm -f ${PNG_PATH} | ||
+ | rm -f ${ZABBIXMSG} | ||
+ | exit 0 | ||
+ | </ | ||
+ | ==== Mediante curl ==== | ||
+ | Utilizando el siguiente script podemos enviar mensajes directamente con curl | ||
+ | <sxh> | ||
+ | #!/bin/bash | ||
+ | TOKEN=tutoken | ||
+ | CHAT_ID=id del chat | ||
+ | MESSAGE=" | ||
+ | URL=" | ||
+ | curl -s -X POST $URL -d chat_id=$CHAT_ID -d text=" | ||
+ | </ | ||
+ | |||
==== Con un script en python === | ==== Con un script en python === | ||
https:// | https:// | ||
Línea 65: | Línea 248: | ||
y otro para los grupos | y otro para los grupos | ||
+ | ===== Referencias ===== | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * [[https:// |