Telegram Push notifications

Have you done something on your NEMS server to make it more usable for yourself? Want to share your code? I'd love for you to share and may include your ideas in future releases of NEMS.
baggins
Member
Posts: 50
Joined: Tue Oct 03, 2017 4:46 am

Telegram Push notifications

Post by baggins »

Hi,

In another project I use Telegram to receive push notifications on my phone so I thought it would be nice to have the same in NEMS.
It is actually quite simple to set this up.

For those interested, here are the steps:

1) Get a Telegram account (it is free!): https://telegram.org/
After setting up your account you will have a bot and a chat id.

2) install lua-sec (this will also install lua-socket):

Code: Select all

sudo apt-get install lua-sec
3) Install the following script in /usr/local/bin:
Name the script 'telegram_nems.lua'
This is a simple lua script I wrote just to get this working, so it is really minimal without error checking etc...

Code: Select all

#!/usr/bin/lua
https = require('ssl.https')
local telegram_url = 'https://api.telegram.org/<your bot>/sendMessage?'
local chat_id = '<your chat id>'

      Notification = "Notification Type: " .. arg[1] ..'\n'    --$NOTIFICATIONTYPE$
      Host = "Host: " .. arg[2] ..'\n'                         --$HOSTNAME$
      State = "State: " .. arg[3] ..'\n'                       --$HOSTSTATE$/$SERVICESTATE$
      Address = "Address: " .. arg[4] ..'\n'                   --$HOSTADDRESS$
      Info = "Info: "  .. arg[5] ..'\n'                        --$HOSTOUTPUT$/"$SERVICEOUTPUT$"
      Date_Time = "Date/Time: " .. arg[6] ..'\n'               --$LONGDATETIME$
    if (#arg == 6) then
      message = '***** Nagios ***** ' ..'\n' ..'\n' .. Notification .. Host ..State .. Address .. Info .. Date_Time
    else 
      Service = "Service: " .. arg[7] .. '\n'                  --$SERVICEDESC$
      message = '***** Nagios ***** ' ..'\n' ..'\n' .. Notification .. Host  .. Service ..State .. Address .. Info .. Date_Time
    end

local data_str = 'chat_id=' .. chat_id .. '&text=' .. message..''  
local res, code, headers, status = https.request(telegram_url, data_str)
4) In NConf, add the following to Misccommands:

Code: Select all

command_name                          notify-host-by-telegram
command_line                          /usr/local/bin/telegram_nems.lua "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$HOSTSTATE$" "$HOSTADDRESS$" "$HOSTOUTPUT$" "$LONGDATETIME$"

Code: Select all

command_name                          notify-service-by-telegram
command_line                          /usr/local/bin/telegram_nems.lua "$NOTIFICATIONTYPE$" "$HOSTNAME$" "$SERVICESTATE$" "$HOSTADDRESS$" "$SERVICEOUTPUT$" "$LONGDATETIME$" "$SERVICEDESC$"
As usual: use at your own risk!

User avatar
Robbie Ferguson
Posting Freak
Posts: 786
Joined: Wed Mar 07, 2012 3:23 pm
Location: Ontario, Canada
Contact:

RE: Telegram Push notifications

Post by Robbie Ferguson »

Wow baggins - am I reading this right? You can use this to get push notifications from NEMS to your phone?

I love it! And I appreciate your sharing the code.

Cool to include this in NEMS 1.3?
Robbie Ferguson // The Bald Nerd

Did I help you out? Appreciate what I do? Please consider saying thanks:

baggins
Member
Posts: 50
Joined: Tue Oct 03, 2017 4:46 am

RE: Telegram Push notifications

Post by baggins »

I have the messages on both my iPhone and iPad Image

The script needs some polishing, but feel free to include it in 1.3.

I'm glad being able to contribute to the fine work that you have done with NEMS!

User avatar
Robbie Ferguson
Posting Freak
Posts: 786
Joined: Wed Mar 07, 2012 3:23 pm
Location: Ontario, Canada
Contact:

RE: Telegram Push notifications

Post by Robbie Ferguson »

Awesome-- thanks!

If you make any "polishing" changes to it, please post here. I'll probably be feature locked within the next week or so... so if you want to fix anything up, this'd be the best time to get that in before 1.3.

Cheers,
Robbie
Robbie Ferguson // The Bald Nerd

Did I help you out? Appreciate what I do? Please consider saying thanks:

User avatar
Robbie Ferguson
Posting Freak
Posts: 786
Joined: Wed Mar 07, 2012 3:23 pm
Location: Ontario, Canada
Contact:

RE: Telegram Push notifications

Post by Robbie Ferguson »

Your commands made it into NEMS 1.3! https://docs.nemslinux.com/changelog_1.3

Congratulations, and thanks again for your contribution.
Robbie Ferguson // The Bald Nerd

Did I help you out? Appreciate what I do? Please consider saying thanks:

User avatar
Robbie Ferguson
Posting Freak
Posts: 786
Joined: Wed Mar 07, 2012 3:23 pm
Location: Ontario, Canada
Contact:

RE: Telegram Push notifications

Post by Robbie Ferguson »

Robbie Ferguson // The Bald Nerd

Did I help you out? Appreciate what I do? Please consider saying thanks:

User avatar
Robbie Ferguson
Posting Freak
Posts: 786
Joined: Wed Mar 07, 2012 3:23 pm
Location: Ontario, Canada
Contact:

RE: Telegram Push notifications

Post by Robbie Ferguson »

baggins, I'm in the process of setting up my test system and writing the documentation for this, but can't figure out where the Chat ID and Bot ID are located within the app. Can you please clarify the steps from a freshly-activated Telegram account to obtain these two credentials?

Thanks!
Robbie Ferguson // The Bald Nerd

Did I help you out? Appreciate what I do? Please consider saying thanks:

Kaganishu
Junior Member
Posts: 5
Joined: Fri Oct 26, 2018 10:31 am

RE: Telegram Push notifications

Post by Kaganishu »

Hi Robbie, do you have solved your issue? Regards

User avatar
Robbie Ferguson
Posting Freak
Posts: 786
Joined: Wed Mar 07, 2012 3:23 pm
Location: Ontario, Canada
Contact:

RE: Telegram Push notifications

Post by Robbie Ferguson »

Hi Kaganishu. This is an old bug report. I thought it had been addressed. Are you experiencing the same issue?
Robbie Ferguson // The Bald Nerd

Did I help you out? Appreciate what I do? Please consider saying thanks:

Kaganishu
Junior Member
Posts: 5
Joined: Fri Oct 26, 2018 10:31 am

RE: Telegram Push notifications

Post by Kaganishu »

Hi again, you're referring to documentation's page https://docs.nemslinux.com/usage/notify-host-by-telegram?

Post Reply