The graphs in Check MK may be quite nice but there is another way of taking this a step higher and make beautiful dashboards. You may even want to create public dashboards or put some info on wallboards. There is a simple setting i Check MK that you may have missed. It looks like this:
I did not take any notice of it but once used it is fantastic. Ok, let´s start setting this up. I have used instructions on various places but mostly the documentation found here. Before starting make sure you have:
- A working Check MK Server
- An Ubuntu server with ssh access. Just install the basics.
Connect to your new server and update:
sudo apt-get update && sudo apt-get upgrade
Install what is needed. Answer no to remove the files
sudo apt-get install build-essential graphite-web graphite-carbon python-dev apache2 libapache2-mod-wsgi libpq-dev python-psycopg2
Configure Carbon
Edit the Carbon configuration file.
sudo vi /etc/default/graphite-carbon
Make the following change.
CARBON_CACHE_ENABLED=true
Start the service.
sudo service carbon-cache start
Install and configure PostgreSQL
By default Graphite will use SQLite. PostgreSQL is better.
Install PostgreSQL.
sudo apt-get install postgresql
Change to postgres user.
sudo su postgres
Create a database user. You will be prompted to supply a password. Remember this password as you’ll need it when configuring Graphite.
createuser graphite --pwprompt
Create the databases for Graphite and Grafana.
createdb -O graphite graphite createdb -O graphite grafana
Then switch back to your user account. For example:
su - youruseraccountname
Configure Graphite
Update the database settings.
sudo vi /etc/graphite/local_settings.py
Update the database connection settings to use the PostgreSQL database. Use the password your specified for the graphite user created in PostgreSQL. For example:
DATABASES = { 'default': { 'NAME': 'graphite', 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'USER': 'graphite', 'PASSWORD': 'graphite', 'HOST': '127.0.0.1', 'PORT': '' } }
Within the same file, update the time zone. Uncomment the TIME_ZONE line and add the correct time zone which matches the server’s time zone. I did got an error here when I initialized the database. In case you get that change this setting later. For example:
TIME_ZONE = 'Europe/Stockholm'
Within the same file, update the secret key to something long and complicated. Uncomment the SECRET_KEY line and add a random string of letters and numbers. For example:
SECRET_KEY = 'WH@T3v3RuW@nTG03$h3Re'
Initialize the database. You will be prompted to create a superuser account which will be used to access Graphite’s web interface. Leave the username as root and enter a password.
sudo graphite-manage syncdb
Configure Apache for Graphite
Apache is required for Graphite.
Copy Graphite’s Apache config template to Apache’s sites-available directory.
sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available/apache2-graphite.conf
Change Graphite’s port from 80 to 8080 (port 80 will be used by Grafana).
sudo nano /etc/apache2/sites-available/apache2-graphite.conf
<VirtualHost *:8080>
Update which ports Apache is listening for.
sudo nano /etc/apache2/ports.conf
Add port 8080. For example:
Listen 80 Listen 8080
Disable Apache’s default site to avoid any conflicts.
sudo a2dissite 000-default
Enable Graphite’s virtual site.
sudo a2ensite apache2-graphite
Reload Apache to apply the changes.
sudo service apache2 reload
You should now be able to browse to Graphite’s web interface, http://servername:8080.
If you have configured the setting in Check MK and if it is working you should be able to see the host here now.
Install and configure Grafana
Add the following line to your /etc/apt/sources.list
file.
deb https://packagecloud.io/grafana/stable/debian/ jessie main
Use the above line even if you are on Ubuntu or another Debian version. There is also a testing repository if you want beta or release candidates.
deb https://packagecloud.io/grafana/testing/debian/ jessie main
Then add the Package Cloud key. This allows you to install signed packages.
curl https://packagecloud.io/gpg.key | sudo apt-key add -
Update your Apt repositories and install Grafana
sudo apt-get update
sudo apt-get install grafana
Edit Grafana’s configuraiton file.
sudo nano /etc/grafana/grafana.ini
Update the database connection values to use PostgreSQL. For example:
[database] type = postgres host = 127.0.0.1:5432 name = grafana user = graphite password = graphite
Update the server configuration. For example:
[server] protocol = http http_addr = 127.0.0.1 http_port = 3000 domain = domain.com enforce_domain = true root_url = %(protocol)s://%(domain)s/
Update the security information. For example:
[security] # default admin user, created on startup admin_user = admin # default admin password, can be changed before first start of grafana, or in profile settings admin_password = admin # used for signing secret_key = SW2YcwsfssfsDSFDS8979869t
Enable anonymous viewing.
[auth.anonymous] # enable anonymous access enabled = true
Enable Apache’s proxy modules for reverse proxying. This will allow Apache to listen to port 80 and proxy the requests to Grafana’s webserver on port 3000.
sudo a2enmod proxy proxy_http xml2enc
Create an Apache configuration file for Grafana.
sudo nano /etc/apache2/sites-available/apache2-grafana.conf
Add the following to the file:
<VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://127.0.0.1:3000/ ProxyPassReverse / http://127.0.0.1:3000/ ServerName segbggr01.white.local </VirtualHost>
Enable the Grafana website in Apache.
sudo a2ensite apache2-grafana
Configure Grafana to run after boot.
sudo update-rc.d grafana-server defaults 95 10
Start the Grafana server.
sudo service grafana-server start
Restart Apache.
sudo service apache2 restart
Go to http://yourserver. If it shows Grafana it works. Also try the :8080 to Grahite again to make sure it works. This was the boring part. The next is the fun one.
Setting the datasource
In Grafana go to datasources. For me it looks like this:
Press save & test and make sure it works. When I first installed Grafana via apt- get without adding the repository I ended up with an old version without any icon. So make sure you have installed the latest release. You can check this is the Grafana gui.
Dashboards with Check MK Data
Press the add row in a dashboard. Choose what type of panel you may want.
I choosed the graph. Edit the settings you want and save.
There are several cool panels that you may download from grafana. These are installed with the command below (the example is the pie chart) Restart Grafana after installing.
grafana-cli plugins install grafana-piechart-panel
In the end you may have a dashboard something like (it is just a demo I made quick) this with realtime data collected from Check MK.
1 Response
[…] Check MK and Grafana […]