Skip to content

node_exporter#

Follow these instructions in order to view system resource utilization with the extras/dashboards/server_instace_node_exporter.json Grafana dashboard.

Instructions bellow will configure node_exporter to bind to localhost and configure Nginx as a reverse proxy that will expose node_exporter via a location directive with HTTP basic auth.

Step-by-step Guide#

node_exporter should be installed on your BigBlueButton server in order to expose system metrics for your Grafan dashboards.

1. Copy extras/node_exporter#

git clone https://github.com/greenstatic/bigbluebutton-exporter.git
cp -r bigbluebutton-exporter/extras/node_exporter ~/

Tip

Always check for the latest stable docker image tag (for the docker-compose.yaml file).

2. Start using docker-compose#

cd ~/node_exporter
sudo docker-compose up -d

3. Create HTTP basic auth password#

Info

For this you will need the handy apache2-utils package to create a password that will be used with HTTP basic auth by Nginx. You can install it (on Ubuntu) by running: sudo apt install apache2-utils.

Create a username (e.g. monitoring) and password. You will be prompted after you run the htpasswd command for the desired password.

Tip

The username and password combo doesn't need to be the same as the one for the exporter.

# You may replace monitoring with any desired username
# add `-c` flag to create the file if it doesn't exist
sudo htpasswd /etc/nginx/.htpasswd monitoring

4. Add Nginx site configuration#

Add the location directive to your Nginx web server that will proxy traffic to 127.0.0.1:9100. To prevent the additional location directive from being deleted on Nginx upgrades, add it to the file you've created for the bbb exporter (/etc/bigbluebutton/nginx/monitoring.nginx).

# node_exporter metrics
location /node_exporter/ {
    auth_basic "node_exporter";
    auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_pass http://127.0.0.1:9100/;
    include proxy_params;
}

5. Add node_exporter to your Prometheus scrape jobs#

Add the following job to your Prometheus configuration. Replace example.com with your BigBlueButton's domain.

- job_name: 'bbb_node_exporter'
  metrics_path: '/node_exporter/metrics'
  params:
    format: [prometheus]
  honor_labels: true
  scheme: https
  basic_auth:
    username: "<HTTP BASIC AUTH USERNAME>"
    password: "<HTTP BASIC AUTH PASSWORD>"
  static_configs:
  - targets: ['example.com']

6. Import the dashboard to your Grafana#

Log into your Grafana web interface, click on + -> Import and select Upload .json file. Select the file extras/dashboards/server_instance_node_exporter.json from the repository (clone the repository or copy the contents of the file).

Notes#

Multiple BigBlueButton servers#

If you wish to monitor multiple BigBlueButton servers simply do steps 1-4 for each server and then add each server's domain to the targets field in Prometheuses bbb_node_exporter job configuration.