##################### Grafana Configuration Example ##################### # # Everything has defaults so you only need to uncomment things you want to # change # possible values : production, development app_mode = {{ grafana_app_mode }} # instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty instance_name = {{ ansible_fqdn }} #################################### Paths #################################### [paths] # Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used) # data = {{ grafana_data_path }} # # Directory where grafana can store logs # ;logs = /var/log/grafana # # Directory where grafana will automatically scan and look for plugins # ;plugins = /var/lib/grafana/plugins # #################################### Server #################################### [server] # Protocol (http or https) protocol = {{ grafana_server_protocol }} # The ip address to bind to, empty will bind to all interfaces http_addr = {{ grafana_bind_ip_address }} # The http port to use http_port = {{ grafana_http_port }} # The public facing domain name used to access grafana from a browser domain = {{ grafana_domain_name }} # Redirect to correct domain if host header does not match domain # Prevents DNS rebinding attacks enforce_domain = {{ grafana_enforce_dom_name }} # The full public facing url ;root_url = %(protocol)s://%(domain)s:%(http_port)s/ # Log web requests ;router_logging = false # the path relative working path ;static_root_path = public # enable gzip ;enable_gzip = false # https certs & key file ;cert_file = ;cert_key = #################################### Database #################################### [database] # Either "mysql", "postgres" or "sqlite3", it's your choice type = {{ grafana_db_type }} host = {{ grafana_db_hostport }} name = {{ grafana_db_name }} user = {{ grafana_db_user }} password = {{ grafana_db_password }} # For "postgres" only, either "disable", "require" or "verify-full" ssl_mode = {{ grafana_db_pg_ssl_mode }} # For "sqlite3" only, path relative to data_path setting ;path = grafana.db #################################### Session #################################### [session] # Either "memory", "file", "redis", "mysql", "postgres", default is "file" {% if grafana_require_redis %} provider = redis {% else %} provider = {{ grafana_session_provider }} {% endif %} # Provider config options # memory: not have any config yet # file: session dir path, is relative to grafana data_path # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana` # mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name` # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable {% if grafana_require_redis %} provider_config = {{ grafana_session_redis_config }} {% else %} provider_config = {{ grafana_session_config }} {% endif %} # Session cookie name cookie_name = {{ grafana_cookie_name }} {% if grafana_secure_cookies %} # If you use session in https only, default is false cookie_secure = true {% endif %} # Session life time, default is 86400 ;session_life_time = 86400 #################################### Analytics #################################### [analytics] # Server reporting, sends usage counters to stats.grafana.org every 24 hours. # No ip addresses are being tracked, only simple counters to track # running instances, dashboard and error counts. It is very helpful to us. # Change this option to false to disable reporting. reporting_enabled = {{ grafana_analytics_reporting_enabled }} # Set to false to disable all checks to https://grafana.net # for new vesions (grafana itself and plugins), check is used # in some UI views to notify that grafana or plugin update exists # This option does not cause any auto updates, nor send any information # only a GET request to http://grafana.net to get latest versions check_for_updates = {{ grafana_analytics_updates_check }} # Google Analytics universal tracking code, only enabled if you specify an id here ;google_analytics_ua_id = #################################### Security #################################### [security] {% if grafana_setup_admin_user %} # default admin user, created on startup admin_user = {{ grafana_admin_user }} # default admin password, can be changed before first start of grafana, or in profile settings admin_password = {{ grafana_admin_pwd }} {% endif %} # used for signing {% if grafana_setup_signing_key %}secret_key = {{ grafana_signing_key }}{% else %}#secret_key = {% endif %} # Auto-login remember days ;login_remember_days = 7 ;cookie_username = grafana_user ;cookie_remember_name = grafana_remember # disable gravatar profile images ;disable_gravatar = false # data source proxy whitelist (ip_or_domain:port separated by spaces) ;data_source_proxy_whitelist = [snapshots] # snapshot sharing options ;external_enabled = true ;external_snapshot_url = https://snapshots-origin.raintank.io ;external_snapshot_name = Publish to snapshot.raintank.io #################################### Users #################################### [users] # disable user signup / registration allow_sign_up = {{ grafana_u_allow_signup }} # Allow non admin users to create organizations allow_org_create = {{ grafana_u_allow_org_create }} # Set to true to automatically assign new users to the default organization (id 1) auto_assign_org = true # Default role new users will be automatically assigned (if disabled above is set to true) auto_assign_org_role = {{ grafana_u_default_role }} # Background text for the user field on the login page ;login_hint = email or username # Default UI theme ("dark" or "light") default_theme = {{ grafana_u_default_theme }} #################################### Anonymous Auth ########################## [auth.anonymous] # enable anonymous access enabled = {{ grafana_auth_anon }} # specify organization name that should be used for unauthenticated users ;org_name = Main Org. # specify role for unauthenticated users ;org_role = Viewer {% if grafana_oauth_generic_enabled %} ################################# Generic oauth, tested against Keycloak ## [auth.generic_oauth] enabled = true name = {{ grafana_oauth_name }} icon = signin scopes = {{ grafana_oauth_scopes }} empty_scopes = {{ grafana_oauth_empty_scopes | lower }} tls_skip_verify_insecure = {{ grafana_tls_skip_verify_insecure | lower }} tls_client_cert = tls_client_key = tls_client_ca = ; allowed_domains = {{ grafana_oauth_allowed_domains }} allow_sign_up = {{ grafana_oauth_allow_signup | lower }} client_id = {{ grafana_oauth_client_id | default('grafana') }} client_secret = {{ grafana_oauth_client_secret }} auth_url = {{ grafana_oauth_auth_url }} token_url = {{ grafana_oauth_token_url }} api_url = {{ grafana_oauth_api_url }} use_pkce = {{ grafana_oauth_use_pkce | lower }} auth_style = allow_assign_grafana_admin = {{ grafana_oauth_allow_assign_grafana_admin | lower }} role_attribute_path = {{ grafana_oauth_role_attribute_path }} {% endif %} #################################### Github Auth ########################## [auth.github] ;enabled = false ;allow_sign_up = false ;client_id = some_id ;client_secret = some_secret ;scopes = user:email,read:org ;auth_url = https://github.com/login/oauth/authorize ;token_url = https://github.com/login/oauth/access_token ;api_url = https://api.github.com/user ;team_ids = ;allowed_organizations = #################################### Google Auth ########################## [auth.google] ;enabled = false ;allow_sign_up = false ;client_id = some_client_id ;client_secret = some_client_secret ;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email ;auth_url = https://accounts.google.com/o/oauth2/auth ;token_url = https://accounts.google.com/o/oauth2/token ;api_url = https://www.googleapis.com/oauth2/v1/userinfo ;allowed_domains = #################################### Auth Proxy ########################## [auth.proxy] ;enabled = false ;header_name = X-WEBAUTH-USER ;header_property = username ;auto_sign_up = true #################################### Basic Auth ########################## [auth.basic] ;enabled = true #################################### Auth LDAP ########################## [auth.ldap] enabled = {{ grafana_ldap_auth | lower }} config_file = /etc/grafana/ldap.toml #################################### SMTP / Emailing ########################## [smtp] ;enabled = false ;host = localhost:25 ;user = ;password = ;cert_file = ;key_file = ;skip_verify = false ;from_address = admin@grafana.localhost [emails] ;welcome_email_on_sign_up = false #################################### Logging ########################## [log] # Either "console", "file", "syslog". Default is console and file # Use space to separate multiple modes, e.g. "console file" mode = {{ grafana_log_mode }} # Either "trace", "debug", "info", "warn", "error", "critical", default is "info" level = {{ grafana_log_level }} # For "console" mode only [log.console] ;level = # log line format, valid options are text, console and json ;format = console # For "file" mode only [log.file] ;level = # log line format, valid options are text, console and json ;format = text # This enables automated log rotate(switch of following options), default is true ;log_rotate = true # Max line number of single file, default is 1000000 ;max_lines = 1000000 # Max size shift of single file, default is 28 means 1 << 28, 256MB ;max_size_shift = 28 # Segment log daily, default is true ;daily_rotate = true # Expired days of log file(delete after max days), default is 7 ;max_days = 7 [log.syslog] level = {{ grafana_log_level }} # log line format, valid options are text, console and json ;format = text # Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used. ;network = ;address = # Syslog facility. user, daemon and local0 through local7 are valid. facility = {{ grafana_syslog_facility }} # Syslog tag. By default, the process argv[0] is used. ;tag = #################################### AMQP Event Publisher ########################## [event_publisher] ;enabled = false ;rabbitmq_url = amqp://localhost/ ;exchange = grafana_events ;#################################### Dashboard JSON files ########################## [dashboards.json] enabled = {{ grafana_dashboard_json }} path = /var/lib/grafana/dashboards #################################### Internal Grafana Metrics ########################## # Metrics available at HTTP API Url /api/metrics [metrics] # Disable / Enable internal metrics enabled = true # Publish interval ;interval_seconds = 10 # Send internal metrics to Graphite ; [metrics.graphite] ; address = localhost:2003 ; prefix = prod.grafana.%(instance_name)s. #################################### Internal Grafana Metrics ########################## # Url used to to import dashboards directly from Grafana.net [grafana_net] url = https://grafana.net