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.
Install infinite loop
-
"hold the phone!" :-)
If you can download the file from the PI4 using wget then the issue must be different.In the script you can see there is a variable at the very beginning called start which says where the script and all the rest will be placed
Is it where you put the script? or is it another folder?
Can you double check that?And one more thing can you run the otm file you just downloaded?
-
Ok, we found a lead by doing an install on a pi device. Give us a little time to debug this and we'll give you a solution.
Thanks.
-
@OutagesIO_Support Sounds like a plan. Even though its not great that it is broken right now, I'm glad I am not totally crazy
-
Here's how you should proceed at this point.
All of those agents that you have in Created status, just let them expire. The will expire from your dashboard after 24hrs.
The site automatically does this to prevent confusion by leaving a bunch of non fully installed in the dashboard.
Create a new one, go through the process and it should work now. It's too bad people don't report problems more often so we can fix them. They just tend to find a problem and leave so it can be a while before we are even aware of any issues otherwise, we jump on them pretty quickly.
Just keep one thing in mind. There is a note that will show up saying that you have to comment out a line IF you are going to use systemd to start/stop your agent. If you don't, you'll end up with multiple instances running for no good reason.
You should be good to go now. let us know how things go.
-
@OutagesIO_Support I finally got it to work. Now I just have to troubleshoot getting the systemctl service up and going.
-
Nice to hear you got it. The problem was a simple case sensitivity in the script.
Remember, if you go with the systemd control, be sure to comment out the line mentioned in the script.
Thanks for bringing this to our attention glad it's working now.
-
Now while trying to start the service I get the following output in the terminal after following the instructions and commenting out the line in the script:
ā otm.service - Startup of the OutagesIO monitoring agent
Loaded: loaded (/etc/systemd/system/otm.service; enabled; vendor preset: enab
Active: activating (auto-restart) (Result: exit-code) since Thu 2022-02-17 23
Process: 9592 ExecStartPre=/agent/starter_aarch64_ocp.sh (code=exited, status=
lines 1-4/4 (END)...skipping...
ā otm.service - Startup of the OutagesIO monitoring agent
Loaded: loaded (/etc/systemd/system/otm.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2022-02-17 23:14:25 GMT; 2s ago
Process: 9592 ExecStartPre=/agent/starter_aarch64_ocp.sh (code=exited, status=203/EXEC)any ideas?
-
I'm sorry you're still experiencing problems.
We provide some scripts and tips that we use in-house but when it comes to operating systems, you would have to post this in some Linux or pi forums.
We were just working with that a while ago and didn't have any problems so not really sure where to start. I'll try to look at this tomorrow.
Can you tell me what post/article you are following and I can review that tomorrow.
-
@OutagesIO_Support don't worry about it. I have gotten way better customer support for this "free" product than i get for most paid products. I will be promoting your services to my data center pals that manage the centers.
-
Thanks for your nice comment.
We work very hard on this service in the hopes that it can help people since there is not a lot out there that isn't overly technical for the average consumer. With input and feedback, we keep trying to make it as easy as possible to use.
Unfortunately, we don't have the resources to support every operating system out there but hoping that in time, as enough people start using these forums, members can also help each other where we might not have the knowledge.
We installed the agent and service on a pi device earlier so we could go through all of the steps and didn't have any problem but maybe we're so used to setting things up that we didn't notice something.
I'll give it another try tomorrow while reading the blog post which I assume you were looking at too.
Monitor Your Internet With Raspberry Pi 3A, 3B+, 4, NanoPi, And Other ARM Devices
-
I'm sorry I've not gotten back to you on this. It is still in my list of things to do. The days are just too short to get everything done and we're also in the middle of a hardware upgrade.
I hope I can get to this next week perhaps.
-
Hi, it took a while but the article was updated with a fix.
Another member decided to look deeper into this and found there was one small error in the script which prevented the systemd service from starting the agent.
The script is now updated and available for all Pi devices. The blog article was also updated a little bit.
See if that helps now.
-
@OutagesIO_Support I have the exact same problem with an Ubuntu 20.04.3 LTS server install of the agent. It never actually downloads the otm_linux binary.
- ICMP does not seem to be the issue. I can ping and get replys from sites.
- It does not seem to be the user/password. If I edit the /etc/agentid file to a bad value I get an error "curl: (3) URL using bad/illegal format or missing URL". When I correct the file it tries to download but cannot and gets stuck in this loop.
- I have copied the script version 1.0.3 and changed only the "start" variable to the install directory.
- I even tried to download the otm_linux binary from another PC onto this server, but nothing seems to work.
Thanks in advance for any tips to get the agent running.
-
Can you share the script as you have it now.
-
@OutagesIO_Support Below is the script and output from the otminfo.log file.
- The only change to the script is the start variable at the top
- In the folder "/home/josh/agent" I have this script and the otminfo.log file.
- I can give you the agent ID if needed.
OTMinfo.log
HTTP/2 200 date: Wed, 09 Mar 2022 01:12:16 GMT server: Apache strict-transport-security: max-age=63072000; includeSubDomains last-modified: Thu, 11 Feb 2021 12:34:03 GMT etag: "28888-5bb0ebc1544c0" accept-ranges: bytes content-length: 166024 vary: User-Agent content-security-policy: frame-ancestors 'none'; content-secure-policy: default-src 'self'; x-xss-protection: 1; mode=block x-frame-options: SAMEORIGIN x-content-type-options: nosniff referrer-policy: same-origin permissions-policy: fullscreen=(self 'https://app.outagesio.com'),geolocation=*, camera=()
Script
#!/bin/bash #Version 1.0.3 # Enter the full path where you will be placing the starter_linux_otm.sh script into. # Our example shows '/agent', change this to what ever your path is. start="/home/josh/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
-
Quick look seems to show this script is for the Linux version, not the Pi.
Can you make sure you are using the Pi version. Just create a new agent then copy that script.If that doesn't work, then please also share the systemd service.
-
@OutagesIO_Support This is installed on an Ubuntu server, so I am using the linux script. The reason I posted here is I am seeing the exact same issue where it keeps trying to download the otm_linux binary and can never successfully do it. I can repost to the Linux section if required. I was just thinking the symptoms are identical, so the solution might be the same.
I have also tried to disable the service, adjust the script as below, and then run in manually (screenshot). I get the same result where it loops trying to download the file.
Script when service is enabled:
## exec $start/otm_linux & #$start/otm_linux &
Script when service is disabled and the script is run manually:
# exec $start/otm_linux & $start/otm_linux &
Here is my service file. Located at: /etc/systemd/system/otm.service
[Unit] Description=Startup of the OutagesIO monitoring agent [Install] WantedBy=multi-user.target After=network.target [Service] Type=simple ExecStartPre=/home/josh/agent/starter_linux_ocp.sh ExecStart=/home/josh/agent/otm_linux WorkingDirectory=/home/josh/agent Restart=always RestartSec=5 StandardOutput=syslog StandardError=syslog SyslogIdentifier=%n
Results when running the script directly.