It is necessary that my computer works 24/7 and when it stops working it's notifies me. Here is a monitoring program to deploy to Heroku. Notifications are currently sent only to the Telegram messenger.
Click the button below to deploy to Heroku
Deployment requires registration of a heroku account, an email is required when registering a heroku account (otherwise the verification code cannot be brushed out).
An email address that can receive verification codes normally (@qq.com, @163.com are not acceptable):
- gmail (Best)
- Outlook https://login.live.com/ here.
To keep the service running all the time, add a bank card on the billing page of your heroku account (money will not be withdrawn, but it adds more free dyno hours to your app).
1.1 Register a new Telegram Bot: send "/newbot" to @BotFather and follow the instructions. The token provided by @BotFather in the final step will be needed for configuring TELEGRAM_TOKEN environment variable.
1.2 Obtain chat ID of the user the bot should send messages to.
Send "/getid" to "@myidbot" in Telegram messenger. This id should be writen to TLG_CHAT_ID environment variable.
1.3 Send "/start" to the bot, created in step 1. If you skip this step, Telegram bot won't be able to send messages to you.
You just need to periodically send json messages that contains node name from NODELIST and password from PASSPHRASE heroku env variables of your heroku-app.
Open notepad and add this:
curl -H "Content-Type: application/json" -X POST https://app-name.herokuapp.com/send-path -d "{\"username\":\"node_name\",\"text\":\"all_ok\",\"password\":\"my-password\"}"
Save file as pinger.cmd
Make a new file and add this:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\pinger.cmd" & Chr(34), 0
Set WshShell = Nothing
Save file as pinger.vbs
Open Windows Power Shell and run:
$trigger = New-JobTrigger -Once -At "09/12/2013 1:00:00" -RepetitionInterval (New-TimeSpan -Minutes 1.001) -RepetitionDuration ([TimeSpan]::MaxValue)
$action = New-ScheduledTaskAction -Execute 'c:\pinger.vbs' -Argument '-NoProfile -WindowStyle Hidden'
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "cloudmon-heroku" -Description "cloudmon-heroku"
Create a file with the following content:
curl -d '{"username":"node_name","text":"all_ok","password":"my-password"}' -H "Content-Type: application/json" -X POST https://app-name.herokuapp.com/send-path
Make file executable.
Create a new cron job with a one-minute run time to run this file.