Track Internet disconnections, provider outages with historical data, and automated speed testing.
For Windows, Linux, ARM64, ARMa7. Learn more by visiting www.outagesio.com
Notice: If you created an account on app.outagesio.com, simply use the same credentials to log in here.
New-ish Device
-
Hello everybody! I just wanted to take a moment to write in and say that I was able to get the Agent working on a Raspberry Pi 2B. I know that's probably not surprising, since it works on the RPi3 and RPi4, but it does work nonetheless!
Now, if only I could figure out which of these moving boxes has my Pi Zero… :D
-
That's great to hear, thank you for sharing this.
We can update the list of devices to include this one too if you feel this is a confirmed report.
Unfortunately, at this time, we don't have any scripts or tips to offer others installing Pi devices that could help.
-
I might see about writing one up, but I basically followed a combination of the OrangePi instructions from Peachy and the systemd instruction from Xant. I think a unified set would be good, though, so I'll probably get around to it. :)
Edit: I will say that I tried to use wget to download the Arm package directly to the Pi, but the link came back as unauthorized. Is there a way to enable that download so that we don't have to SFTP or SCP the file over?
-
I will say that I tried to use wget to download the Arm package directly to the Pi, but the link came back as unauthorized.
Is there a way to enable that download so that we don't have to SFTP or SCP the file over?
Yes, it would need to be an authorized download, meaning, from a known account.
If you look at the Linux startup script, you could modify that to end up with a fully automated script that would start when your device does.
Just create a new agent, pick Linux and you'll see the scripts. When an agent is in the Created status, it will get removed in 24hrs so no need to worry about it being there.
Let me see if we can do a little testing then will update this post with something usable.
-
Ok, if you want to try this, let's see where it can get. You may have to change some of the commands in the script to match your OS. For example, the command to make sure that curl is installed, etc.
Once this is working, you will be able to create an agent ARM in your dashboard, cut/paste the credentials and the starter script onto the device.
Preferably, in a location that will survive reboots. Once this is done, the device should auto start the scrip, which in turn will automatically download the most current version of OTM and start working with OutagesIO.
Ok, let's start.
Cut/paste the Linux starter script I share below onto your device.
Change it's name to starter_linux_arm_otm.sh so we know this is the new script.
Make sure that you create a new agent using one of the ARM agents. This will give you a set of credentials for that version of OTM (agent).
Use the same method for Linux with this agent to create the credentials file, etc.
From your Agents list menu, click on the 'Create software agent' option.
In the Device drop down, pick the agent version required for your operating system.
Enter the address where the agent will be installed and click on 'Auto fill address details below'.
Enter the Internet provider at this location.
Click on Create when done.
Please agree to the terms and conditions to reveal the required credentials.
Create/edit using your favorite text editor a file in your /etc directory called agentid (/etc/agentid).
Enter the credentials shown without line spaces, one on each line then save it.
It should look like this
xxxxx
xxxxxxxxxxxxxxxxx
Create a directory called /otm and copy the starter script below into this directory.
If you decide to use another directory, be sure to update the script by changing the 'start' value and put your starter script there instead.
Copy the script code below (the next window) into a file called starter_linux_arm_otm.sh in the same directory.
Save then make the file executable 'chmod 755 starter_linux_arm_otm.sh'.
Run it by typing './starter_linux_arm_otm.sh'.
This will download the program and automatically start it. The starter script will end but the monitoring program will continue running.
Updating to a new version
If the site is showing a new version available for download, simply re-run the startup script and it will download the newest version.
Is my agent running?
Confirm all is working by looking at your agents dashboard in Standard view mode. You should see Heartbeat status change to green and you should also see hops updated in Recent events and pings showing up in your Pings graph.
Please be sure to set the geo location under Configure, 'Address and geo location' for correct reports.
To automate the program startup, you could start it in /etc/rc.local for example. Search Google on how to do this.
Someone may have shared a script or if you have one, you could share it in the Linux section here in our support forums.
If your agent is not communicating, check any virus scanner or firewalls which may be blocking agent communications.
The agent uses only standard ports 80, 443 and ICMP to communicate with the OutagesIO network.
The following is the Linux agent script but once you do the above, it should work fine. Just remember, it needs to use credentials that were created specifically for this agent version (ARM).
#!/bin/bash #Version 1.0.3 # Enter the full path where you will be placing the starter_linux_arm_otm.sh script into. # Our example shows '/agent', change this to what ever your path is. start="/agent" command -v curl >/dev/null 2>&1 || { echo >&2 "The curl package is needed but not installed. Please install it and try again. Aborting."; exit 1; } echo "" echo "Make sure to create /etc/agentid with credentials before starting this script" echo "Make sure your starter file points to the same directory that you have it in - Edit the 'start' option above accordingly" echo "You could add this to /etc/rc.local to start it or build a service for it. Please search Google for more." echo "" sleep 5 ### Define Global Variables OTMIN="otm" IN="$start/updater_linux_ocp.sh" DATE=`date +%d-%m-%y` OTM_COMMAND="otm_linux" USERNAME=`awk 'NR==1' /etc/agentid` PASSWORD=`awk 'NR==2' /etc/agentid` ### OTM section # Get rid of any old version rm -f $start/otm_linux OTM_HTTP_STATUS='' OTM_REMOTE_LENGTH='' ### Loop until [[ ${OTM_HTTP_STATUS} -eq 200 && ! -z ${OTM_REMOTE_LENGTH} ]] do sleep 5 ## echo "Receiving binary location" BINARY_LOCATION=$(curl -m 20 -s -u $USERNAME:$PASSWORD --connect-timeout 10 -X POST https://www.foxymon.com/receiver/receiver2.php -F function=receive_binary_location) echo "Getting the OTM Package" curl -I -m 30 --connect-timeout 15 "$BINARY_LOCATION" -o $start/otminfo.log OTM_HTTP_STATUS=$(cat $start/otminfo.log | awk '/HTTP/ {print $2}') OTM_REMOTE_LENGTH=$( cat $start/otminfo.log | awk '/Content-Length/ {print $2}' | sed -e 's/[\r\n]//g' ) done ### if [[ ${OTM_HTTP_STATUS} -eq 200 && ! -z ${OTM_REMOTE_LENGTH} ]]; then echo "Downloading OTM" curl -m 30 --connect-timeout 15 "$BINARY_LOCATION" -o $start/otm_linux sleep 2 OTM_LOCAL_LENGTH=$( ls -l $start/otm_linux | awk '{print $5}' | sed -e 's/[\r\n]//g' ) if [ "${OTM_LOCAL_LENGTH}" == "${OTM_REMOTE_LENGTH}" ]; then echo "OTM downloaded, starting program then exiting this script" cd $start chmod +x $start/otm_linux # exec $start/otm_linux & $start/otm_linux & ps cax | grep otm_linux > /dev/null if [ $? -eq 0 ]; then echo "" echo "Congratulations, your agent is now monitoring your Internet connectivity." echo "Type 'ps cax | grep otm_linux' to see the process number" else echo "Something didn't work, your agent is not running." fi fi fi
-
It took a while as I'm not terribly fluent with Raspberry Pi… but I managed to get the OTM to run on boot. I installed it on a Pi 4B with 8GB RAM. I also run Pi-Hole on this Pi since the 4B is complete overkill for even both of these services running on the same box. Looking for more projects to run on it. LOL.
Anyhow... ultimately used systemd to get it going. I put the executable in a folder called /otm and kept the executable's original name... so after putting in the secret codes in /etc/agentid I did the following...
Put secret codes in /etc/agentid
sudo nano /etc/agentid
Get software and put in /otm (note: I named it according to its current version as of this writing)
sudo mkdir /otm cd /otm wget -O otm_1_62.2006_arm https://app.outagesio.com/agent/downloadSoftware/id/37 chmod 755 otm_1_62.2006_arm
Create service in systemd
sudo nano /lib/systemd/system/otm.service
It should contain the following:
[Unit] Description=Outages Tracking Monitor Wants=network-online.target After=network-online.target [Service] Type=simple Restart=always RestartSec=1 ExecStart=/otm/otm_1_62.2006_arm [Install] WantedBy=multi-user.target
Then enable the service and reboot the Pi
sudo systemctl enable otm.service sudo reboot
Let me know how this works for everyone. I'm hopefull the authors of this great system might grant free Extended Reports perpetually for helping with the Pi side of things? :D
-
That's fantastic and I'm sure will be very helpful to others.
Once a couple people confirm this works, maybe we could make a sticky post and put the link in the download information where you create a new ARM based agent.
I'm not sure we could offer perpetual as this service is in constant flux so making long term promises we cannot keep would not be good.
However, let me know what the device ID is and I'm sure I can upgrade that for you.
-
-