57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
---
|
|
title: Setting up monitoring on local cluster
|
|
---
|
|
This page describes how to set up a monitoring site, [like this one](http://eth-netstats.herokuapp.com/), for your private network. It builds upon [this wiki article](Setting-up-private-network-or-local-cluster) and assumes you've created a local cluster using [this script (gethcluster.sh)](https://github.com/ethersphere/eth-utils).
|
|
|
|
The monitoring system consists of two components:
|
|
|
|
1. **eth-netstats** - the monitoring site which lists the nodes.
|
|
2. **eth-net-intelligence-api** - these are processes that communicate with the ethereum client using RPC and push the data to the monitoring site via websockets.
|
|
|
|
#Monitoring site
|
|
Clone the repo and install dependencies:
|
|
|
|
git clone https://github.com/cubedro/eth-netstats
|
|
cd eth-netstats
|
|
npm install
|
|
|
|
Then choose a secret and start the app:
|
|
|
|
WS_SECRET=<chosen_secret> npm start
|
|
|
|
You can now access the (empty) monitoring site at `http://localhost:3000`.
|
|
|
|
You can also choose a different port:
|
|
|
|
PORT=<chosen_port> WS_SECRET=<chosen_secret> npm start
|
|
|
|
#Client-side information relays
|
|
These processes will relay the information from each of your cluster nodes to the monitoring site using websockets.
|
|
|
|
Clone the repo, install dependencies and make sure you have pm2 installed:
|
|
|
|
git clone https://github.com/cubedro/eth-net-intelligence-api
|
|
cd eth-net-intelligence-api
|
|
npm install
|
|
sudo npm install -g pm2
|
|
|
|
Now, use [this script (netstatconf.sh)](https://github.com/ethersphere/eth-utils) to create an `app.json` suitable for pm2.
|
|
|
|
Usage:
|
|
|
|
bash netstatconf.sh <number_of_clusters> <name_prefix> <ws_server> <ws_secret>
|
|
|
|
- `number_of_clusters` is the number of nodes in the cluster.
|
|
- `name_prefix` is a prefix for the node names as will appear in the listing.
|
|
- `ws_server` is the eth-netstats server. Make sure you write the full URL, for example: http://localhost:3000.
|
|
- `ws_secret` is the eth-netstats secret.
|
|
|
|
For example:
|
|
|
|
bash netstatconf.sh 5 mynode http://localhost:3000 big-secret > app.json
|
|
|
|
Run the script and copy the resulting `app.json` into the `eth-net-intelligence-api` directory. Afterwards, `cd` into `eth-net-intelligence-api` and run the relays using `pm2 start app.json`. To stop the relays, you can use `pm2 delete app.json`.
|
|
|
|
**NOTE**: The script assumes the nodes have RPC ports 8101, 8102, ... . If that's not the case, edit app.json and change it accordingly for each peer.
|
|
|
|
At this point, open `http://localhost:3000` and your monitoring site should monitor all your nodes! |