Juneo Supernet
  • The juneo network
    • What is Juneo Supernet ?
    • Avalanche Foundations
    • Key Features
    • Join Juneo Mainnet
  • Architecture
    • Nodes
    • Supernets
  • Build
    • Node Requirements
    • Set up and Connect a node manually
    • Set up and Connect a node using the Install Script
    • Set Up and Connect a node with Docker
    • Advanced Node Configuration
    • Create a Layer-1 Network
    • Deploy a VM
  • Maintain
    • Node Monitoring
    • Node Backup and Restore
    • Migrate from Socotra Testnet to Juneo Mainnet
    • Update a Node
    • Node Informations
  • Validate
    • Add a Node to the Validator Set
  • BRIDGE
    • Supernet Bridge
    • Bridged Tokens
    • Get Started
Powered by GitBook
On this page
  • Installation instructions
  • Configuring Prometheus
  • Configuring servers.json
  • Configuring Caddy
  • Configuring Cloudflare
  • Configuring Telegram Bot for Notifications
  • Start Monitoring
  1. Maintain

Node Monitoring

Track and visualize JuneoGo node metrics using Prometheus and Grafana

PreviousDeploy a VMNextNode Backup and Restore

Last updated 1 month ago

If you wish to monitor your JuneoGo node, it is possible to do so by using the repository. This repository implements and to monitor, store, and display key JuneoGo node metrics.

It also assumes that you have a JuneoGo node running with the required endpoints for Prometheus and JuneoGo metrics.

Installation instructions

These installation instructions assume that you already have Docker and docker-compose installed on your system. For more information, please refer to their documentation:

First, open the command line on the machine running your node and execute the following command:

git clone https://github.com/Juneo-io/juneogo-monitoring

Configuring Prometheus

If you use secure metrics endpoints, you need to configure Prometheus to use the correct credentials.

  1. Create a .env file in the root directory of the project with the following variables:

    PROMETHEUS_USERNAME=<your_prometheus_username>
    PROMETHEUS_PASSWORD=<your_prometheus_password>
    • PROMETHEUS_USERNAME: The username to access the Prometheus metrics endpoint.

    • PROMETHEUS_PASSWORD: The password to access the Prometheus metrics endpoint.

Each juneogo node needs to have the same credentials. If you have different credentials for each server, you need to modify the prometheus.yml file.

Configuring servers.json

To ensure proper monitoring and DNS configuration, you must configure the servers.json file. Check the servers.example.json file for an example.

Each server entry should include:

  • name: A name to identify the server.

  • target: The target address to fetch metrics from.

  • ip: The IP address for DNS configuration.

Example:

{
  "servers": [
    {
      "name": "server1",
      "target": "server1.mydomain.com",
      "ip": "10.10.10.1"
    },
    {
      "name": "server2",
      "target": "server2.mydomain.com",
      "ip": "10.10.10.2"
    }
  ]
}

The target needs to expose two endpoints:

  • /metrics for Prometheus metrics.

  • /ext/metrics for JuneoGo metrics.

Configuring Caddy

To access Grafana with HTTPS, you need to configure Caddy with your domain name.

  1. Add the domain name to your DNS configuration with the IP address of the machine running the monitoring.

  2. Create a .env file in the root directory of the project with the following variables:

    CADDY_DOMAIN=<your_domain>
    CADDY_EMAIL=<your_email>
    GF_SERVER_ROOT_URL=<your_domain>

Configuring Cloudflare

Ensure that SSL/TLS encryption mode is set to Full (strict) when using Cloudflare.

To automatically manage DNS records for your servers using Cloudflare, follow these steps:

  1. Create a .env file in the root directory of the project with the following variables:

    CLOUDFLARE_READ_TOKEN=<your_cloudflare_read_token>
    CLOUDFLARE_WRITE_TOKEN=<your_cloudflare_write_token>
  2. Ensure both tokens have access to all target DNS zones present in your servers.json file.

  3. Ensure your servers.json file is correctly populated with your server details (in Socotra and/or Mainnet).

If you do not provide Cloudflare tokens, DNS will not be managed automatically.

Configuring Telegram Bot for Notifications

To receive notifications via Telegram, follow these steps:

  1. Create a Telegram group and add the bot to the group.

  2. Invite the @getmyid_bot to the group and get the chat ID.

  3. Create a .env file in the root directory of the project with the following variables:

    BOT_TOKEN=<your_telegram_bot_token>
    CHAT_ID_SOCOTRA=<your_telegram_chat_id>
    CHAT_ID_MAINNET=<your_telegram_chat_id>

You can use the same chat ID for both Socotra and Mainnet or use different chat IDs for each.

If you do not provide Telegram tokens, notifications will not be sent.

Start Monitoring

docker-compose up -d

If you want Grafana accessible on port 3000, you need to uncomment the Grafana port configuration in the docker-compose.yml file.

Grafana should be accessible with user: admin and password: admin.

Follow the repository to deploy your JuneoGo node with the required endpoints.

Create a Telegram bot and get the bot token. Refer to the for instructions.

juneogo-monitoring
Prometheus
Graphana
https://docs.docker.com/get-docker/
juneogo-docker
Telegram documentation