-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Instructions for deployment of simple monitoring stack #19
Comments
Next time please open a separate issue and not hijack other issues. Correct. You will need to have Grafana, Prometheus and optionally Netdata to get the fancy dashboard (in the next release it will be possible to swap Netdata with node_exporter as per #7). Would you like to have your monitoring stack (Grafana & Prometheus with the optional Alertmanager to trigger alerts on certain metrics) on a different server (recommended) or on the same machine that you host BBB (not recommended)? |
oops.. I didn't know I'm hijacking someone..just asked him for some help as he'd setup the working BBB exporter. My apologies !!! |
I would prefer to install on the BBB server as of now please. |
@tarunb999 no worries, now you know :) I can give you a working docker-compose file with which you can install Grafana, Prometheus and bbb-exporter. Are you familiar with docker and docker-compose? |
Yes I'm a bit familiar but not too much :-/ .. but I can always give it a try till it doesn't break my bbb server !! |
Update: This information is a bit outdated, please refer to the documentation section installing All-in-One Monitoring Stack Original: If you wish to have a simple monitoring stack (Grafana, Prometheus & BigBlueButton-exporter) on the same host as your BBB installation, here is how you can do it using docker-compose. Get your BBB secret ready ( mkdir ~/bbb-monitoring
touch docker-compose.yaml prometheus.yaml bbb_exporter-secrets.env
# docker-compose.yaml
version: '3.2'
services:
bbb-exporter:
container_name: "bbb-exporter"
image: greenstatic/bigbluebutton-exporter:v0.2.0
expose:
- 9688
env_file:
- bbb_exporter_secrets.env
restart: unless-stopped
prometheus:
container_name: prometheus
image: prom/prometheus:v2.17.2
command:
# Default commands from Dockerfile
- "--config.file=/etc/prometheus/prometheus.yml"
- "--storage.tsdb.path=/prometheus"
- "--web.console.libraries=/usr/share/prometheus/console_libraries"
- "--web.console.templates=/usr/share/prometheus/consoles"
# Our custom commands - metrics will be stored for 400 days
- "--storage.tsdb.retention.time=400d"
expose:
- 9090
volumes:
- "./prometheus.yaml:/etc/prometheus/prometheus.yml"
- "prometheus_data:/prometheus"
restart: unless-stopped
grafana:
container_name: grafana
image: grafana/grafana:6.7.1
ports:
# Bind to 127.0.0.1 when setting up a Nginx SSL reverse proxy so that
# we do not leak Grafana directly
# - "127.0.0.1:3001:3000"
- "3001:3000"
volumes:
- "grafana_data:/var/lib/grafana"
environment:
GF_SERVER_ROOT_URL: "https://example.com/monitoring"
restart: unless-stopped
volumes:
prometheus_data:
grafana_data: # prometheus.yaml
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_timeout: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'bbb'
static_configs:
- targets: ['bbb-exporter:9688'] # bbb_exporter_secrets.env
API_BASE_URL=https://example.com/bigbluebutton/api/
API_SECRET=<SECRET>
cd ~/bbb-monitoring
sudo docker-compose up -d
Since you do not have netdata the CPU Utilization vs. Participants and Bandwidth vs. Participants dashboards won't work. You can edit your dashboard as much as you like, but note that you will lose your changes if you will reimport updated versions of the dashboard. So you will have to manually patch the dashboard when we update the dashboard json files in the repository. Dashboards and instructions for node_exporter will be soon released (replacing netdata) with which the aforementioned (CPU and bandwidth) dashboards will become useful. So keep up-to-date with the development of this repo. I strongly recommend that you setup HTTPS for your Grafana installation. You can use the Nginx installation that is on the BBB host. You can piggyback on the existing Nginx config (
Or you could do virtual hosting - create a separate nginx site configuration and have a separate domain for the Grafana dashboard and get a free Let's encrypt certificate (this is more proper). If you are going to piggyback on BBB's Nginx site config be warned that during a BBB upgrade the BBB's upgrade script overwrites the Nginx site config and you will have to copy the Grafana reverse proxy configuration again. Once you use Nginx as a SSL reverse proxy you can bind Grafana to Hope this helps. EDIT: YAML indentation |
Many thanks Gregor for this fantastic piece of information. I'm sure it'll of much use to many more users like me. Thanks... much appreciated !!! |
After Step 3, I got the following error: root@e2e-67-176:~/bbb-monitoring# sudo docker-compose up -d |
Next time please use either a blockquote or enclose the error message in backticks (see GitHub Markdown reference). It makes it easier to read error messages and separate logs/code/errors from the content. The issue is because of YAML indentation. It's my fault since in the snippet I gave you the indentation got messed up. I'll edit the original message and let you know when it's fixed. |
@tarunb999 give it a go now, replace all the files with the updated content. The indentation should be okay now, but I haven't test it. Please report back if it works or if you have any other errors. |
I just remembered that you might have issues if you try to setup Nginx to do TLS proxy termination for Grafana since port 3000 is already taken by BigBlueButton's html5-client (https://github.com/greenstatic/bigbluebutton-exporter/#note-on-installing-grafana-on-the-bbb-host). |
Updated documentation: https://bigbluebutton-exporter.greenstatic.dev/installation/all_in_one_monitoring_stack/ |
Thanks a lot Gregor to making it so elaborate. |
Ok, so when I complete the location directive to Nginx, restart Nginx and goto the Base_URL/monitoring link, Grafana takes me to Base_URL/login page but this page gives a 404 error. |
Ah, minor oversight. You will need to configure root_url in Grafana. Add to your docker-compose file the following env variable to grafana: GF_SERVER_ROOT_URL: "https://example.com/monitoring" |
All's fine Gregor ... yes Grafana is up and running (no users online so empty graphs as yet ;-)) !!! Thanks a lot for all your help..can't express my gratitude for the pains you've taken to break it down into simple steps and uploading for future users. Many thanks indeed. |
Great,I'll add it to the documentation. Thanks for your kind words. |
I'm sure it'll benefit many people like me in coming times.. just a quick one ..I just started my meeting ..but Grafana is still not showing any Participants !! I think its at 5 sec refresh. |
This depends on the scrape interval - which is set by default to 15 seconds (check prometheus.yaml). |
Yup, all the panels are just blank. All of them say.. NO DATA. |
Check if your Prometheus is able to fetch the exporters metrics successfully. You will require a bit of network magic in order to access Prometheus. If you followed the All-In-One Monitoring Stack instructions you Prometheus will be binded to the localhost interface (you cannot access it externally). However since your Prometheus container has host network permissions (meaning you are using the host's localhost interface and not docker's network local interface - yay networking confusion) you can simply use SSH to do a local forward. ssh -NL 9090:127.0.0.1:9090 <BBB_HOST> This will make accessible on your local machine on port 9090 the application which was binded on the remote machine (bbb host) on 127.0.0.1:9090 (Prometheus). So open up a web browser and go to If you did NOT follow the All-In-One Monitoring Stack instructions (i.e. used the outdated compose file in this thread) then I suggest you upgrade first. You will even get node_exporter for free bundled together. |
Many thanks again !! |
Did you manage to find your issue? |
Hi, add prometheus data sources in grafana:
To successfully add the prometheus data sources in Grafana, I had to change the following in docker-compose.yaml:
than the data source connection is ok. And then I have the problem. Instance, top left in grafana show scrape interval in prometheus.yaml = 15s
When i change
Then netstat shows me the following:
but the problem remains The prometheus panel under status -> targets show: Maybe you can see my problem? |
You are missing the field Since you forgot the ports:
- "9090:9090" You inadvertently exposed Prometheus on all your interfaces (including the host's localhost) and made it world accessible (very bad). And so you managed to access Prometheus by accident with the wrong configuration but all the rest of the containers cannot since they cannot use the hosts localhost. |
ah ok, i get that. thx I have reversed my changes and entered the missing
And it works now.
Many thanks for your hint and your quick answer. |
Great, if everything is up and running you can close the issue. |
From my side the issue can be closed. I can't close this. |
Sorry Gregor, I was indisposed for a few days , hence was unable to respond. Yes, all went well, thanks a lot. |
Hi, I tried to do the steps explained here (or in https://bigbluebutton-exporter.greenstatic.dev/installation/all_in_one_monitoring_stack/). But when executing the command fourth step "Start the services"
I get the error message
What am i doing wrong? |
Not sure, since the docker-compose for the All In One Monitoring stack is 65 lines long not 90. I suggest you review if you have the correct docker-compose.yaml file. If you still can't figure it out, post your YAML here and make sure you censor any sensitive information (if you have added any). |
God point. My docker-compose.yaml has 1608 lines ... I tried to load the three files
as discribed in the "All-In-One ..."-manual at this location: https://github.com/greenstatic/bigbluebutton-exporter/tree/master/extras/all_in_one_monitoring. But ... very embarrassing, I loaded the html-file down that shows docker-compose.yaml in the browser. Now I loaded the real files and everything seems to be ok. I can login at Thanks for your superfast help. |
Happens to everyone once in while 😅 . |
Every things works fine now. There is only one point: At the imported dashboard https://github.com/greenstatic/bigbluebutton-exporter/tree/master/extras/dashboards/server_instance_node_exporter.json I had to change the datasource from "Prometheus" to "default". |
This should have worked if you entered the name of the Prometheus data source as As a workaround (as you probably figured), you just need to change the datasource variable (top left corner of the dashboard) and click save dashboard (top right corner) with the checkbox that says something along the lines of "use as default values". |
I had exactly the same issue today and I named the source |
Hello, I am trying to get some help with a couple things. I have installed the monitoring stack into my BBB servers, however I can't setup the alerts because:
Thanks! |
@sbellm .. I'm a novice in coding.
Can you be kind enough to spell in easy steps on how to install BBB exporter(and the accompaniments) and how much cpu does it eat?
It seems we need to to install Grafana, Prometheus and Netdata .. but in what sequence and in which directories etc?
Thanks for the help.
Originally posted by @tarunb999 in #18 (comment)
The text was updated successfully, but these errors were encountered: