Invio di notifiche Nagios con Telegram
Installazione telegram-cli
Instllare con uno dei due metodi:
Installazione da sorgente
cd /tmp/ git clone --recursive https://github.com/vysheng/tg.git && cd tg sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev make ./configure make cp bin/telegram-cli /usr/local/bin mkdir /etc/telegram-cli/ cp server.pub /etc/telegram-cli/server.pub
Installazione da binario
- Compilare su una macchina uguale
- Copiare il binario e le chiavi server
cp bin/telegram-cli /usr/local/bin mkdir /etc/telegram-cli/ cp server.pub /etc/telegram-cli/server.pub
- Installare le librerie necessarie:
sudo apt-get install libjansson4 libconfig9 liblua5.2-0
Creazione script
sudoedit /usr/local/bin/telegram-msg
#!/bin/bash
to=$1
msg=$2
tgpath=/usr/local/bin
#echo "$(date) - ID=$(id) - ${tgpath}/telegram-cli -C -R -W -p /var/log/nagios/.telegram-cli -c /var/log/nagios/.telegram-cli/config -e \"msg $to $msg\"" >> /tmp/telegram-msg.log 2>&1
${tgpath}/telegram-cli -C -R -W -p /var/log/nagios/.telegram-cli -c /var/log/nagios/.telegram-cli/config -e "msg $to $msg" # >> /tmp/telegram-msg.log 2>&1
sudo chmod +x /usr/local/bin/telegram-msg
Registrazione account
- Occorre avere un numero di telefono a cui ricevere sms o ricevere chiamate
- Diventare nagios
sudo -u nagios -s /bin/bash --login
- Registrarsi con il numero e inserire il codice
telegram-cli ...
- Aggiungere il proprio contatto a cui si vogliono ricevere le notifiche
add_contact +123456789 Nome Cognome
- Testare ATTENZIONE: sostituire lo spazio tra Nome e Cognome con "_"):
msg Nome_Cognome Messaggio da inviare quit
- Testare lo script
telegram-msg Nome_Cognome Messaggio da inviare
- Verificare la home directory di nagios
cd pwd
Configurazione di Nagios
- Assicurarsi che la variabile HOME che punta alla hoe di nagios sia impostata al valore rilevato precedentemente:
sudoedit /etc/default/nagios3
export HOME="/var/log/nagios"
- Definire il proprio nome Telegram nel campo pager del contact nagios ed aggiunger ei comandi di notifica::
sudoedit /etc/nagios3/conf.d/contacts.cfg
define contact{
# ...
host_notification_commands notify-host-by-email, notify-host-by-telegram
service_notification_commands notify-service-by-email, notify-service-by-telegram
#...
pager Nome_Cognome
}
- Definire i comandi di notifica:
sudoedit /etc/nagios3/conf.d/commands.cfg
# ...
define command{
command_name notify-host-by-telegram
command_line /usr/local/bin/telegram-msg $CONTACTPAGER$ "--Nagios Host Notification-- Host: $HOSTNAME$, State: $HOSTSTATE$, Time: $LONGDATETIME$"
}
define command{
command_name notify-service-by-telegram
command_line /usr/local/bin/telegram-msg $CONTACTPAGER$ "--Nagios Service Notification-- Host: $HOSTNAME$, State: $HOSTSTATE$ Service $SERVICEDESC$ Description: $SERVICESTATE$ Time: $LONGDATETIME$"
}
- Testare la configurazione e Riavviare nagios
sudo -u nagios /usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg && sudo /etc/init.d/nagios3 restart
- Inviare una notifica custom
Troubleshooting
sudoedit /etc/nagios3/nagios.cfg debug_level=2048 tail -f /var/log/nagios3/nagios.debug
Riferimenti
- Linux CLI für Telegram – Nachrichten vom Server
- Usando Telegram desde la terminal ~ Mundo Linux
- tg/README.md at master · vysheng/tg
- command line options · Issue #104 · vysheng/tg
- Chat with Telegram buddies the geeky way with Telegram CLI | Techno FAQ
- Send Push Notifications with Telegram Messenger on the Raspberry Pi
- Telegram on Raspberry Pi | EmmeShop Blog
- yagop/telegram-bot
- Raspberry remote control with Telegram | EmmeShop Blog