374 lines
8.3 KiB
ReStructuredText
374 lines
8.3 KiB
ReStructuredText
|
|
=======
|
|
Grafana
|
|
=======
|
|
|
|
A beautiful, easy to use and feature rich Graphite dashboard replacement and graph editor.
|
|
|
|
|
|
Sample pillars
|
|
==============
|
|
|
|
|
|
Server deployments
|
|
------------------
|
|
|
|
Server installed from system package and listening on 1.2.3.4:3000 (the default
|
|
is 0.0.0.0:3000)
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
bind:
|
|
address: 1.2.3.4
|
|
port: 3000
|
|
admin:
|
|
user: admin
|
|
password: passwd
|
|
database:
|
|
engine: sqlite3
|
|
|
|
Server installed with PostgreSQL database
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
admin:
|
|
user: admin
|
|
password: passwd
|
|
database:
|
|
engine: postgresql
|
|
host: localhost
|
|
port: 5432
|
|
name: grafana
|
|
user: grafana
|
|
password: passwd
|
|
|
|
Server installed with LDAP authentication and all authenticated users are
|
|
administrators
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
admin:
|
|
user: admin
|
|
password: passwd
|
|
auth:
|
|
ldap:
|
|
enabled: true
|
|
host: '127.0.0.1'
|
|
port: 389
|
|
use_ssl: false
|
|
bind_dn: "cn=admin,dc=grafana,dc=org"
|
|
bind_password: "grafana"
|
|
user_search_filter: "(cn=%s)"
|
|
user_search_base_dns:
|
|
- "dc=grafana,dc=org"
|
|
|
|
Server installed with LDAP and basic authentication
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
admin:
|
|
user: admin
|
|
password: passwd
|
|
auth:
|
|
basic:
|
|
enabled: true
|
|
ldap:
|
|
enabled: true
|
|
host: '127.0.0.1'
|
|
port: 389
|
|
use_ssl: false
|
|
bind_dn: "cn=admin,dc=grafana,dc=org"
|
|
bind_password: "grafana"
|
|
user_search_filter: "(cn=%s)"
|
|
user_search_base_dns:
|
|
- "dc=grafana,dc=org"
|
|
|
|
Server installed with LDAP for authentication and authorization
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
admin:
|
|
user: admin
|
|
password: passwd
|
|
auth:
|
|
ldap:
|
|
enabled: true
|
|
host: '127.0.0.1'
|
|
port: 389
|
|
use_ssl: false
|
|
bind_dn: "cn=admin,dc=grafana,dc=org"
|
|
bind_password: "grafana"
|
|
user_search_filter: "(cn=%s)"
|
|
user_search_base_dns:
|
|
- "dc=grafana,dc=org"
|
|
group_search_filter: "(&(objectClass=posixGroup)(memberUid=%s))"
|
|
group_search_base_dns:
|
|
- "ou=groups,dc=grafana,dc=org"
|
|
authorization:
|
|
enabled: true
|
|
admin_group: "admins"
|
|
editor_group: "editors"
|
|
viewer_group: "viewers"
|
|
|
|
Server installed with default StackLight JSON dashboards. This will
|
|
be replaced by the possibility for a service to provide its own dashboard
|
|
using salt-mine.
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
dashboards:
|
|
enabled: true
|
|
path: /var/lib/grafana/dashboards
|
|
|
|
Server with theme overrides
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
theme:
|
|
light:
|
|
css_override:
|
|
source: http://path.to.theme
|
|
source_hash: sha256=xyz
|
|
build: xyz
|
|
dark:
|
|
css_override:
|
|
source: salt://path.to.theme
|
|
|
|
Server with two additionals plugins. It requires to have access to the Internet.
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
server:
|
|
enabled: true
|
|
plugins:
|
|
grafana-piechart-panel:
|
|
enabled: true
|
|
grafana-example-app:
|
|
enabled: true
|
|
|
|
Collector setup
|
|
---------------
|
|
|
|
Used to aggregate dashboards from monitoring node.
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
collector:
|
|
enabled: true
|
|
|
|
|
|
Client setups
|
|
-------------
|
|
|
|
Client with token based auth
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
client:
|
|
enabled: true
|
|
server:
|
|
protocol: https
|
|
host: grafana.host
|
|
port: 3000
|
|
token: token
|
|
|
|
Client with base auth
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
client:
|
|
enabled: true
|
|
server:
|
|
protocol: https
|
|
host: grafana.host
|
|
port: 3000
|
|
user: admin
|
|
password: password
|
|
|
|
Client enforcing graphite data source
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
client:
|
|
enabled: true
|
|
datasource:
|
|
graphite:
|
|
type: graphite
|
|
host: mtr01.domain.com
|
|
protocol: https
|
|
port: 443
|
|
|
|
Client enforcing elasticsearch data source
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
client:
|
|
enabled: true
|
|
datasource:
|
|
elasticsearch:
|
|
type: elasticsearch
|
|
host: log01.domain.com
|
|
port: 80
|
|
index: grafana-dash
|
|
|
|
Client defined and enforced dashboard
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
client:
|
|
enabled: true
|
|
server:
|
|
host: grafana.host
|
|
port: 3000
|
|
token: token
|
|
dashboard:
|
|
system_metrics:
|
|
title: "Generic system metrics"
|
|
style: dark
|
|
editable: false
|
|
row:
|
|
top:
|
|
title: "First row"
|
|
|
|
Client enforced dashboards defined in salt-mine
|
|
|
|
.. code-block:: yaml
|
|
|
|
grafana:
|
|
client:
|
|
enabled: true
|
|
remote_data:
|
|
engine: salt_mine
|
|
server:
|
|
host: grafana.host
|
|
port: 3000
|
|
token: token
|
|
|
|
|
|
Usage
|
|
=====
|
|
|
|
There's a difference between JSON dashboard representation and models we us.
|
|
The lists used in JSON format [for rows, panels and target] were replaced by
|
|
dictionaries. This form of serialization allows better merging and overrides
|
|
of hierarchical data structures that dashboard models are.
|
|
|
|
The default format of Grafana dashboards with lists for rows, panels and targets.
|
|
|
|
.. code-block:: yaml
|
|
|
|
system_metrics:
|
|
title: graph
|
|
editable: true
|
|
hideControls: false
|
|
rows:
|
|
- title: Usage
|
|
height: 250px
|
|
panels:
|
|
- title: Panel Title
|
|
span: 6
|
|
editable: false
|
|
type: graph
|
|
targets:
|
|
- refId: A
|
|
target: "support_prd.cfg01_iot_tcpcloud_eu.cpu.0.idle"
|
|
datasource: graphite01
|
|
renderer: flot
|
|
showTitle: true
|
|
|
|
The modified version of Grafana dashboard format with dictionary declarations.
|
|
Please note that dictionary keys are only for logical separation and are not
|
|
displayed in generated dashboards.
|
|
|
|
.. code-block:: yaml
|
|
|
|
system_metrics:
|
|
system_metrics2:
|
|
title: graph
|
|
editable: true
|
|
hideControls: false
|
|
row:
|
|
usage:
|
|
title: Usage
|
|
height: 250px
|
|
panel:
|
|
usage-panel:
|
|
title: Panel Title
|
|
span: 6
|
|
editable: false
|
|
type: graph
|
|
target:
|
|
A:
|
|
refId: A
|
|
target: "support_prd.cfg01_iot_tcpcloud_eu.cpu.0.idle"
|
|
datasource: graphite01
|
|
renderer: flot
|
|
showTitle: true
|
|
|
|
|
|
Read more
|
|
=========
|
|
|
|
* http://grafana.org/
|
|
* http://docs.grafana.org/reference/export_import/
|
|
|
|
Documentation and Bugs
|
|
======================
|
|
|
|
To learn how to install and update salt-formulas, consult the documentation
|
|
available online at:
|
|
|
|
http://salt-formulas.readthedocs.io/
|
|
|
|
In the unfortunate event that bugs are discovered, they should be reported to
|
|
the appropriate issue tracker. Use Github issue tracker for specific salt
|
|
formula:
|
|
|
|
https://github.com/salt-formulas/salt-formula-grafana/issues
|
|
|
|
For feature requests, bug reports or blueprints affecting entire ecosystem,
|
|
use Launchpad salt-formulas project:
|
|
|
|
https://launchpad.net/salt-formulas
|
|
|
|
You can also join salt-formulas-users team and subscribe to mailing list:
|
|
|
|
https://launchpad.net/~salt-formulas-users
|
|
|
|
Developers wishing to work on the salt-formulas projects should always base
|
|
their work on master branch and submit pull request against specific formula.
|
|
|
|
https://github.com/salt-formulas/salt-formula-grafana
|
|
|
|
Any questions or feedback is always welcome so feel free to join our IRC
|
|
channel:
|
|
|
|
#salt-formulas @ irc.freenode.net
|