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:13] – 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 44: | Línea 59: | ||
| - Click en el menú **operations** | - Click en el menú **operations** | ||
| {{ : | {{ : | ||
| - | < | + | < |
| + | |||
| + | ==== Script Modificado para usar proxy ==== | ||
| + | <sxh bash> | ||
| + | # | ||
| + | |||
| + | ########################################################################## | ||
| + | # Zabbix-Telegram envio de alerta por Telegram com graficos dos eventos | ||
| + | # Filename: zabbix-telegram.sh | ||
| + | # Revision: 2.1 | ||
| + | # Date: 24/ | ||
| + | # 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 | ||
| + | < | ||
| + | # | ||
| + | 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:// | ||