Node Monitoring
Track and visualize JuneoGo node metrics using Prometheus and Grafana
If you wish to monitor your JuneoGo node, it is possible to do so by using the juneogo-monitoring repository. This repository implements Prometheus and Graphana 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
First, open the command line on the machine running your node and execute the following command:
git clone https://github.com/Juneo-io/juneogo-monitoringConfiguring Prometheus
Create a
.envfile 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
servers.jsonTo 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:
/metricsfor Prometheus metrics./ext/metricsfor JuneoGo metrics.
Follow the juneogo-docker repository to deploy your JuneoGo node with the required endpoints.
Configuring Caddy
Add the domain name to your DNS configuration with the IP address of the machine running the monitoring.
Create a
.envfile 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.
Create a
.envfile 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>Ensure both tokens have access to all target DNS zones present in your
servers.jsonfile.Ensure your
servers.jsonfile 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
Create a Telegram bot and get the bot token. Refer to the Telegram documentation for instructions.
Create a Telegram group and add the bot to the group.
Invite the
@getmyid_botto the group and get the chat ID.Create a
.envfile 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 -dGrafana should be accessible with user: admin and password: admin.
Last updated