Skip to content

set up monit for monitoring

coranos edited this page Nov 12, 2021 · 2 revisions

install monit

apt install monit; nano /etc/monit/monitrc;

run nano as a service

https://github.com/nanocurrency/nano-node/wiki/Running-nano_node-as-a-service

sudo touch /etc/systemd/system/bananode.service;  
sudo chmod 664 /etc/systemd/system/bananode.service;   
sudo nano /etc/systemd/system/bananode.service;

put the below into /etc/systemd/system/bananode.service

[Unit]
Description=Nano node service
After=network.target

[Service]
ExecStart=/root/bananode --daemon
Restart=on-failure
User=root
Group=root

[Install]
WantedBy=multi-user.target

enable on startup

sudo /bin/systemctl enable bananode.service

start

sudo service bananode start

check

curl -d '{"action": "block_count"}' http://127.0.0.1:7072

stop

sudo service bananode stop	

check-bananode.sh

#!/bin/bash
curl --connect-timeout 2 --max-time 15 -s -g -d '{"action":"version" }' '[::1]:7072'

start-bananode.sh

#!/bin/bash
sudo /bin/systemctl start bananode.service

JSON='{"action":"version"}'

# Then wait until it responds on RPC
while true
do
    curl --fail --connect-timeout 2 --max-time 5 -s -g -d $JSON '[::1]:7072'
    if [ $? -ne 0 ]
    then
        # curl didn't return 0 - failure
        echo $i
        printf '.'
        sleep 5
    else
        break # terminate loop
    fi
done
printf 'node running'

In /etc/monit/monitrc I have it set to check 90 second intervals and you have to uncomment

 set httpd port 2812 and
     use address localhost  # only accept connection from localhost
     allow localhost        # allow localhost to connect to the server and
     allow admin:monit      # require user 'admin' with password 'monit'

In /etc/monit/conf-available/bananode

check program bananode_rpc with path "/home/bananobot/check-bananode.sh"
  start program = "/home/bananobot/start-bananode.sh" with timeout 90 seconds
  stop program = "/bin/systemctl stop bananode.service"
  if 3 restarts within 3 cycles then timeout
  if status > 0 then restart

Then ln -s /etc/monit/conf-available/bananode /etc/monit/conf-enabled/bananode

ln -s /etc/monit/conf-available/bananode /etc/monit/conf-enabled/bananode

Restart monit, and you can monit status; monit start/stop bananode_rpc

monit reload;
monit status;
monit start bananode_rpc;
monit stop bananode_rpc;