mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 02:40:26 -06:00
more work on refining config loading, and packaging
This commit is contained in:
parent
d1767144a8
commit
4c6d7630cd
53
build.go
53
build.go
@ -28,6 +28,7 @@ var (
|
|||||||
version string = "v1"
|
version string = "v1"
|
||||||
race bool
|
race bool
|
||||||
workingDir string
|
workingDir string
|
||||||
|
serverBinaryName string = "grafana-server"
|
||||||
)
|
)
|
||||||
|
|
||||||
const minGoVersion = 1.3
|
const minGoVersion = 1.3
|
||||||
@ -71,7 +72,7 @@ func main() {
|
|||||||
//verifyGitRepoIsClean()
|
//verifyGitRepoIsClean()
|
||||||
//grunt("release", "--pkgVer="+version)
|
//grunt("release", "--pkgVer="+version)
|
||||||
createPackage("deb", "default")
|
createPackage("deb", "default")
|
||||||
createPackage("rpm", "sysconfig")
|
//createPackage("rpm", "sysconfig")
|
||||||
|
|
||||||
case "latest":
|
case "latest":
|
||||||
makeLatestDistCopies()
|
makeLatestDistCopies()
|
||||||
@ -110,37 +111,42 @@ func readVersionFromPackageJson() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createPackage(packageType string, defaultPath string) {
|
func createPackage(packageType string, defaultPath string) {
|
||||||
installRoot := "/opt/grafana"
|
homeDir := "/usr/share/grafana"
|
||||||
configRoot := "/etc/grafana"
|
configDir := "/etc/grafana"
|
||||||
|
configFilePath := "/etc/grafana/grafana.ini"
|
||||||
|
defaultFilePath := filepath.Join("/etc/", defaultPath, "grafana-server")
|
||||||
|
grafanaServerBinPath := "/usr/bin/" + serverBinaryName
|
||||||
|
initdScriptPath := "/etc/init.d/grafana-server"
|
||||||
|
systemdServiceFilePath := "/usr/lib/systemd/system/grafana-server.service"
|
||||||
|
|
||||||
packageRoot, _ := ioutil.TempDir("", "grafana-linux-pack")
|
packageRoot, _ := ioutil.TempDir("", "grafana-linux-pack")
|
||||||
packageConfDir := filepath.Join("packaging", packageType)
|
packageConfDir := filepath.Join("packaging", packageType)
|
||||||
|
|
||||||
afterInstallScript := filepath.Join(packageConfDir, "control/postinst")
|
postintSrc := filepath.Join(packageConfDir, "control/postinst")
|
||||||
initdscript := filepath.Join(packageConfDir, "init.d/grafana")
|
initdScriptSrc := filepath.Join(packageConfDir, "init.d/grafana-server")
|
||||||
defaultScript := filepath.Join(packageConfDir, defaultPath, "grafana")
|
defaultFileSrc := filepath.Join(packageConfDir, defaultPath, "grafana-server")
|
||||||
systemdServiceFile := filepath.Join(packageConfDir, "systemd/grafana.service")
|
systemdFileSrc := filepath.Join(packageConfDir, "systemd/grafana-server.service")
|
||||||
|
|
||||||
packageInstallRoot := filepath.Join(packageRoot, installRoot)
|
// create directories
|
||||||
configDir := filepath.Join(packageRoot, configRoot)
|
runError("mkdir", "-p", filepath.Join(packageRoot, homeDir))
|
||||||
|
runError("mkdir", "-p", filepath.Join(packageRoot, configDir))
|
||||||
runError("mkdir", "-p", packageInstallRoot)
|
|
||||||
runError("mkdir", "-p", configDir)
|
|
||||||
runError("mkdir", "-p", filepath.Join(packageRoot, "/etc/init.d"))
|
runError("mkdir", "-p", filepath.Join(packageRoot, "/etc/init.d"))
|
||||||
runError("mkdir", "-p", filepath.Join(packageRoot, "/etc/", defaultPath))
|
runError("mkdir", "-p", filepath.Join(packageRoot, "/etc/", defaultPath))
|
||||||
runError("mkdir", "-p", filepath.Join(packageRoot, "/usr/lib/systemd/system"))
|
runError("mkdir", "-p", filepath.Join(packageRoot, "/usr/lib/systemd/system"))
|
||||||
|
runError("mkdir", "-p", filepath.Join(packageRoot, "/usr/bin"))
|
||||||
|
|
||||||
|
// copy binary
|
||||||
|
runError("cp", "-p", filepath.Join(workingDir, "tmp/bin/"+serverBinaryName), grafanaServerBinPath)
|
||||||
// copy init.d script
|
// copy init.d script
|
||||||
runError("cp", "-p", initdscript, filepath.Join(packageRoot, "/etc/init.d/grafana"))
|
runError("cp", "-p", initdScriptSrc, filepath.Join(packageRoot, initdScriptPath))
|
||||||
// copy environment file
|
// copy environment var file
|
||||||
runError("cp", "-p", defaultScript, filepath.Join(packageRoot, "etc", defaultPath, "grafana"))
|
runError("cp", "-p", defaultFileSrc, filepath.Join(packageRoot, defaultFilePath))
|
||||||
// copy systemd file
|
// copy systemd file
|
||||||
runError("cp", "-p", systemdServiceFile, filepath.Join(packageRoot, "/usr/lib/systemd/system/grafana.service"))
|
runPrint("cp", "-p", systemdFileSrc, filepath.Join(packageRoot, systemdServiceFilePath))
|
||||||
// copy release files
|
// copy release files
|
||||||
runError("cp", "-a", filepath.Join(workingDir, "tmp")+"/.", packageInstallRoot)
|
runError("cp", "-a", filepath.Join(workingDir, "tmp")+"/.", filepath.Join(packageRoot, homeDir))
|
||||||
// copy sample ini file to /etc/opt/grafana
|
// copy sample ini file to /etc/opt/grafana
|
||||||
configFile := filepath.Join(configDir, "grafana.ini")
|
runError("cp", "conf/sample.ini", filepath.Join(packageRoot, configFilePath))
|
||||||
runError("cp", "conf/sample.ini", configFile)
|
|
||||||
|
|
||||||
args := []string{
|
args := []string{
|
||||||
"-s", "dir",
|
"-s", "dir",
|
||||||
@ -151,8 +157,11 @@ func createPackage(packageType string, defaultPath string) {
|
|||||||
"--url", "http://grafana.org",
|
"--url", "http://grafana.org",
|
||||||
"--license", "Apache 2.0",
|
"--license", "Apache 2.0",
|
||||||
"--maintainer", "contact@grafana.org",
|
"--maintainer", "contact@grafana.org",
|
||||||
"--config-files", filepath.Join(configRoot, "grafana.ini"),
|
"--config-files", configFilePath,
|
||||||
"--after-install", afterInstallScript,
|
"--config-files", initdScriptPath,
|
||||||
|
"--config-files", defaultFilePath,
|
||||||
|
"--config-files", systemdServiceFilePath,
|
||||||
|
"--after-install", postintSrc,
|
||||||
"--name", "grafana",
|
"--name", "grafana",
|
||||||
"--version", version,
|
"--version", version,
|
||||||
"-p", "./dist",
|
"-p", "./dist",
|
||||||
@ -209,7 +218,7 @@ func test(pkg string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func build(pkg string, tags []string) {
|
func build(pkg string, tags []string) {
|
||||||
binary := "./bin/grafana-server"
|
binary := "./bin/" + serverBinaryName
|
||||||
if goos == "windows" {
|
if goos == "windows" {
|
||||||
binary += ".exe"
|
binary += ".exe"
|
||||||
}
|
}
|
||||||
|
@ -1,101 +1,131 @@
|
|||||||
app_name = Grafana
|
##################### Grafana Configuration Example #####################
|
||||||
app_mode = production
|
#
|
||||||
|
# Everything has defaults so you only need to uncomment things you want to
|
||||||
|
# change
|
||||||
|
|
||||||
|
; app_mode = production
|
||||||
|
|
||||||
|
#################################### Paths ####################################
|
||||||
[paths]
|
[paths]
|
||||||
; data_path
|
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is useD)
|
||||||
; where rendered png images are temporarily stored
|
#
|
||||||
; file based sessions are stored here (if file based session is configured below)
|
|
||||||
; the database is stored here if sqlite3 database is used
|
|
||||||
data = data
|
data = data
|
||||||
|
#
|
||||||
|
# Directory where grafana can store logs
|
||||||
|
#
|
||||||
logs = data/log
|
logs = data/log
|
||||||
|
|
||||||
|
#################################### Server ####################################
|
||||||
[server]
|
[server]
|
||||||
; protocol (http or https)
|
# Protocol (http or https)
|
||||||
protocol = http
|
protocol = http
|
||||||
; the ip address to bind to, empty will bind to all interfaces
|
|
||||||
|
# The ip address to bind to, empty will bind to all interfaces
|
||||||
http_addr =
|
http_addr =
|
||||||
; the http port to use
|
|
||||||
|
# The http port to use
|
||||||
http_port = 3000
|
http_port = 3000
|
||||||
; The public facing domain name used to access grafana from a browser
|
|
||||||
|
# The public facing domain name used to access grafana from a browser
|
||||||
domain = localhost
|
domain = localhost
|
||||||
; the full public facing url
|
|
||||||
|
# The full public facing url
|
||||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||||
|
|
||||||
|
# Log web requests
|
||||||
router_logging = false
|
router_logging = false
|
||||||
; the path relative home path where frontend assets are located
|
|
||||||
|
# the path relative working path
|
||||||
static_root_path = public
|
static_root_path = public
|
||||||
; enable gzip
|
|
||||||
|
# enable gzip
|
||||||
enable_gzip = false
|
enable_gzip = false
|
||||||
; https certs & key file
|
|
||||||
|
# https certs & key file
|
||||||
cert_file =
|
cert_file =
|
||||||
cert_key =
|
cert_key =
|
||||||
|
|
||||||
|
#################################### Database ####################################
|
||||||
|
[database]
|
||||||
|
# Either "mysql", "postgres" or "sqlite3", it's your choice
|
||||||
|
type = sqlite3
|
||||||
|
host = 127.0.0.1:3306
|
||||||
|
name = grafana
|
||||||
|
user = root
|
||||||
|
password =
|
||||||
|
|
||||||
|
# For "postgres" only, either "disable", "require" or "verify-full"
|
||||||
|
ssl_mode = disable
|
||||||
|
|
||||||
|
# For "sqlite3" only, path relative to data_path setting
|
||||||
|
path = grafana.db
|
||||||
|
|
||||||
|
#################################### Session ####################################
|
||||||
|
[session]
|
||||||
|
# Either "memory", "file", "redis", "mysql", default is "memory"
|
||||||
|
provider = file
|
||||||
|
|
||||||
|
# Provider config options
|
||||||
|
# memory: not have any config yet
|
||||||
|
# file: session dir path, is relative to grafana data_path
|
||||||
|
# redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana`
|
||||||
|
# mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1)/database_name`
|
||||||
|
provider_config = sessions
|
||||||
|
|
||||||
|
# Session cookie name
|
||||||
|
cookie_name = grafana_sess
|
||||||
|
|
||||||
|
# If you use session in https only, default is false
|
||||||
|
cookie_secure = false
|
||||||
|
|
||||||
|
# Session life time, default is 86400
|
||||||
|
session_life_time = 86400
|
||||||
|
|
||||||
|
#################################### Analytics ####################################
|
||||||
[analytics]
|
[analytics]
|
||||||
# Server reporting, sends usage counters to stats.grafana.org every 24 hours.
|
# Server reporting, sends usage counters to stats.grafana.org every 24 hours.
|
||||||
# No ip addresses are being tracked, only simple counters to track
|
# No ip addresses are being tracked, only simple counters to track
|
||||||
# running instances, dashboard and error counts. It is very helpful to us.
|
# running instances, dashboard and error counts. It is very helpful to us.
|
||||||
# Change this option to false to disable reporting.
|
# Change this option to false to disable reporting.
|
||||||
reporting_enabled = true
|
reporting_enabled = true
|
||||||
; Google Analytics universal tracking code, only enabled if you specify an id here
|
|
||||||
|
# Google Analytics universal tracking code, only enabled if you specify an id here
|
||||||
google_analytics_ua_id =
|
google_analytics_ua_id =
|
||||||
|
|
||||||
[database]
|
#################################### Security ####################################
|
||||||
; Either "mysql", "postgres" or "sqlite3", it's your choice
|
|
||||||
type = sqlite3
|
|
||||||
host = 127.0.0.1:3306
|
|
||||||
name = grafana
|
|
||||||
user = root
|
|
||||||
password =
|
|
||||||
; For "postgres" only, either "disable", "require" or "verify-full"
|
|
||||||
ssl_mode = disable
|
|
||||||
; For "sqlite3" only, path relative to data_path setting
|
|
||||||
path = grafana.db
|
|
||||||
|
|
||||||
[session]
|
|
||||||
; Either "memory", "file", "redis", "mysql", default is "memory"
|
|
||||||
provider = file
|
|
||||||
; Provider config options
|
|
||||||
; memory: not have any config yet
|
|
||||||
; file: session dir path, is relative to grafana data_path
|
|
||||||
; redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana`
|
|
||||||
; mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1)/database_name`
|
|
||||||
provider_config = sessions
|
|
||||||
; Session cookie name
|
|
||||||
cookie_name = grafana_sess
|
|
||||||
; If you use session in https only, default is false
|
|
||||||
cookie_secure = false
|
|
||||||
; Session life time, default is 86400
|
|
||||||
session_life_time = 86400
|
|
||||||
|
|
||||||
[security]
|
[security]
|
||||||
; default admin user, created on startup
|
# default admin user, created on startup
|
||||||
admin_user = admin
|
admin_user = admin
|
||||||
; default admin password, can be changed before first start of grafana, or in profile settings
|
# default admin password, can be changed before first start of grafana, or in profile settings
|
||||||
admin_password = admin
|
admin_password = admin
|
||||||
; used for signing
|
# used for signing
|
||||||
secret_key = SW2YcwTIb9zpOOhoPsMm
|
secret_key = SW2YcwTIb9zpOOhoPsMm
|
||||||
; Auto-login remember days
|
# Auto-login remember days
|
||||||
login_remember_days = 7
|
login_remember_days = 7
|
||||||
cookie_username = grafana_user
|
cookie_username = grafana_user
|
||||||
cookie_remember_name = grafana_remember
|
cookie_remember_name = grafana_remember
|
||||||
|
|
||||||
|
#################################### Users ####################################
|
||||||
[users]
|
[users]
|
||||||
; disable user signup / registration
|
# disable user signup / registration
|
||||||
allow_sign_up = true
|
allow_sign_up = true
|
||||||
; Allow non admin users to create organizations
|
# Allow non admin users to create organizations
|
||||||
allow_org_create = true
|
allow_org_create = true
|
||||||
# Set to true to automatically assign new users to the default organization (id 1)
|
# Set to true to automatically assign new users to the default organization (id 1)
|
||||||
auto_assign_org = true
|
auto_assign_org = true
|
||||||
; Default role new users will be automatically assigned (if disabled above is set to true)
|
# Default role new users will be automatically assigned (if disabled above is set to true)
|
||||||
auto_assign_org_role = Viewer
|
auto_assign_org_role = Viewer
|
||||||
|
|
||||||
|
#################################### Anonymous Auth ##########################
|
||||||
[auth.anonymous]
|
[auth.anonymous]
|
||||||
; enable anonymous access
|
# enable anonymous access
|
||||||
enabled = false
|
enabled = false
|
||||||
; specify organization name that should be used for unauthenticated users
|
# specify organization name that should be used for unauthenticated users
|
||||||
org_name = Main Org.
|
org_name = Main Org.
|
||||||
; specify role for unauthenticated users
|
# specify role for unauthenticated users
|
||||||
org_role = Viewer
|
org_role = Viewer
|
||||||
|
|
||||||
|
#################################### Github Auth ##########################
|
||||||
[auth.github]
|
[auth.github]
|
||||||
enabled = false
|
enabled = false
|
||||||
client_id = some_id
|
client_id = some_id
|
||||||
@ -103,9 +133,10 @@ client_secret = some_secret
|
|||||||
scopes = user:email
|
scopes = user:email
|
||||||
auth_url = https://github.com/login/oauth/authorize
|
auth_url = https://github.com/login/oauth/authorize
|
||||||
token_url = https://github.com/login/oauth/access_token
|
token_url = https://github.com/login/oauth/access_token
|
||||||
; uncomment bellow to only allow specific email domains
|
# Uncomment bellow to only allow specific email domains
|
||||||
; allowed_domains = mycompany.com othercompany.com
|
; allowed_domains = mycompany.com othercompany.com
|
||||||
|
|
||||||
|
#################################### Google Auth ##########################
|
||||||
[auth.google]
|
[auth.google]
|
||||||
enabled = false
|
enabled = false
|
||||||
client_id = some_client_id
|
client_id = some_client_id
|
||||||
@ -113,23 +144,24 @@ client_secret = some_client_secret
|
|||||||
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
|
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
|
||||||
auth_url = https://accounts.google.com/o/oauth2/auth
|
auth_url = https://accounts.google.com/o/oauth2/auth
|
||||||
token_url = https://accounts.google.com/o/oauth2/token
|
token_url = https://accounts.google.com/o/oauth2/token
|
||||||
; uncomment bellow to only allow specific email domains
|
# Uncomment bellow to only allow specific email domains
|
||||||
; allowed_domains = mycompany.com othercompany.com
|
; allowed_domains = mycompany.com othercompany.com
|
||||||
|
|
||||||
|
#################################### Logging ##########################
|
||||||
[log]
|
[log]
|
||||||
; Either "console", "file", default is "console"
|
# Either "console", "file", default is "console"
|
||||||
; Use comma to separate multiple modes, e.g. "console, file"
|
# Use comma to separate multiple modes, e.g. "console, file"
|
||||||
mode = console, file
|
mode = console, file
|
||||||
; Buffer length of channel, keep it as it is if you don't know what it is.
|
# Buffer length of channel, keep it as it is if you don't know what it is.
|
||||||
buffer_len = 10000
|
buffer_len = 10000
|
||||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
# Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
||||||
level = Info
|
level = Info
|
||||||
|
|
||||||
; For "console" mode only
|
# For "console" mode only
|
||||||
[log.console]
|
[log.console]
|
||||||
level =
|
level =
|
||||||
|
|
||||||
; For "file" mode only
|
# For "file" mode only
|
||||||
[log.file]
|
[log.file]
|
||||||
level =
|
level =
|
||||||
; This enables automated log rotate(switch of following options), default is true
|
; This enables automated log rotate(switch of following options), default is true
|
||||||
@ -143,6 +175,7 @@ daily_rotate = true
|
|||||||
; Expired days of log file(delete after max days), default is 7
|
; Expired days of log file(delete after max days), default is 7
|
||||||
max_days = 7
|
max_days = 7
|
||||||
|
|
||||||
|
#################################### AMPQ Event Publisher ##########################
|
||||||
[event_publisher]
|
[event_publisher]
|
||||||
enabled = false
|
enabled = false
|
||||||
rabbitmq_url = amqp://localhost/
|
rabbitmq_url = amqp://localhost/
|
||||||
|
117
conf/sample.ini
117
conf/sample.ini
@ -1,107 +1,38 @@
|
|||||||
|
##################### Grafana Configuration Example #####################
|
||||||
|
|
||||||
# Sample grafana config for deb & rpm packages
|
# Sample grafana config for deb & rpm packages
|
||||||
# You only need to specify overrides here
|
# You only need to specify overrides here
|
||||||
# Defaults are in the /opt/grafana/current/conf/defaults.ini file
|
|
||||||
# This file is never ovewritten when upgrading grafana via deb or rpm package
|
|
||||||
|
|
||||||
app_mode = production
|
; app_mode = production
|
||||||
|
|
||||||
; data_path (used for sqlite3 db (if that is used), temp png images, and sessions (if file based sessions are used)
|
#################################### Paths ####################################
|
||||||
; this option is passed via command line args, override this option in /etc/default/grafana
|
[paths]
|
||||||
; defaults to /opt/grafana/data
|
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is useD)
|
||||||
data_path =
|
#
|
||||||
|
;data = /var/lib/grafana
|
||||||
|
#
|
||||||
|
# Directory where grafana can store logs
|
||||||
|
#
|
||||||
|
;logs = /var/log/grafana
|
||||||
|
|
||||||
[server]
|
[server]
|
||||||
; protocol (http or https)
|
; protocol (http or https)
|
||||||
protocol = http
|
;protocol = http
|
||||||
; the ip address to bind to, empty will bind to all interfaces
|
; the ip address to bind to, empty will bind to all interfaces
|
||||||
http_addr =
|
;http_addr =
|
||||||
; the http port to use
|
; the http port to use
|
||||||
http_port = 3000
|
;http_port = 3000
|
||||||
; The public facing domain name used to access grafana from a browser
|
; The public facing domain name used to access grafana from a browser
|
||||||
domain = localhost
|
;domain = localhost
|
||||||
; the full public facing url
|
; the full public facing url
|
||||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||||
router_logging = false
|
;router_logging = false
|
||||||
; the path relative to grafana process working directory
|
; the path relative home path where frontend assets are located
|
||||||
static_root_path = public
|
;static_root_path = public
|
||||||
enable_gzip = false
|
; enable gzip
|
||||||
|
;enable_gzip = false
|
||||||
; https certs & key file
|
; https certs & key file
|
||||||
cert_file =
|
;cert_file =
|
||||||
cert_key =
|
;cert_key =
|
||||||
|
|
||||||
[analytics]
|
|
||||||
# Server reporting, sends usage counters to stats.grafana.org (https).
|
|
||||||
# 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 = true
|
|
||||||
; Google Analytics universal tracking code, only enabled if you specify an id here
|
|
||||||
google_analytics_ua_id =
|
|
||||||
|
|
||||||
[database]
|
|
||||||
; Either "mysql", "postgres" or "sqlite3", it's your choice
|
|
||||||
type = sqlite3
|
|
||||||
host = 127.0.0.1:3306
|
|
||||||
name = grafana
|
|
||||||
user = root
|
|
||||||
password =
|
|
||||||
; For "postgres" only, either "disable", "require" or "verify-full"
|
|
||||||
ssl_mode = disable
|
|
||||||
; For "sqlite3" only, path is relative to data_dir
|
|
||||||
path = grafana.db
|
|
||||||
|
|
||||||
[session]
|
|
||||||
; Either "memory", "file", "redis", "mysql", default is "memory"
|
|
||||||
provider = file
|
|
||||||
; Provider config options
|
|
||||||
; memory: not have any config yet
|
|
||||||
; file: session file path, e.g. `sessions`, relative to data_dir
|
|
||||||
; redis: config like redis server addr, poolSize, password, e.g. `127.0.0.1:6379,100,grafana`
|
|
||||||
; mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1)/database_name`
|
|
||||||
provider_config = sessions
|
|
||||||
; Session cookie name
|
|
||||||
cookie_name = grafana_sess
|
|
||||||
; If you use session in https only, default is false
|
|
||||||
cookie_secure = false
|
|
||||||
; Session life time, default is 86400
|
|
||||||
session_life_time = 86400
|
|
||||||
|
|
||||||
[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 = SW2YcwTIb9zpOOhoPsMm
|
|
||||||
; Auto-login remember days
|
|
||||||
login_remember_days = 7
|
|
||||||
cookie_username = grafana_user
|
|
||||||
cookie_remember_name = grafana_remember
|
|
||||||
|
|
||||||
[users]
|
|
||||||
; disable user signup / registration
|
|
||||||
allow_sign_up = true
|
|
||||||
; Allow non admin users to create organizations
|
|
||||||
allow_org_create = true
|
|
||||||
# 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 = Viewer
|
|
||||||
|
|
||||||
[auth.anonymous]
|
|
||||||
; enable anonymous access
|
|
||||||
enabled = false
|
|
||||||
; specify organization name that should be used for unauthenticated users
|
|
||||||
org_name = Main org.
|
|
||||||
; specify role for unauthenticated users
|
|
||||||
org_role = Viewer
|
|
||||||
|
|
||||||
[log]
|
|
||||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
|
||||||
level = Info
|
|
||||||
mode = console, file
|
|
||||||
; root_path, this option is passed via command line args,
|
|
||||||
; override this option in /etc/default/grafana
|
|
||||||
; defaults to /var/log/grafana/
|
|
||||||
root_path =
|
|
||||||
|
|
||||||
|
@ -30,12 +30,12 @@ case "$1" in
|
|||||||
"$GRAFANA_USER"
|
"$GRAFANA_USER"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set user permissions on /var/log/grafana, /opt/grafana/data
|
# Set user permissions on /var/log/grafana, /var/lib/grafana
|
||||||
mkdir -p /var/log/grafana /opt/grafana/data
|
mkdir -p /var/log/grafana /var/lib/grafana
|
||||||
chown -R $GRAFANA_USER:$GRAFANA_GROUP /var/log/grafana /opt/grafana/data
|
chown -R $GRAFANA_USER:$GRAFANA_GROUP /var/log/grafana /var/lib/grafana
|
||||||
chmod 755 /var/log/grafana /opt/grafana/data
|
chmod 755 /var/log/grafana /var/lib/grafana
|
||||||
|
|
||||||
# configuration files should not be modifiable by elasticsearch user, as this can be a security issue
|
# configuration files should not be modifiable by grafana user, as this can be a security issue
|
||||||
chown -Rh root:root /etc/grafana/*
|
chown -Rh root:root /etc/grafana/*
|
||||||
chmod 755 /etc/grafana
|
chmod 755 /etc/grafana
|
||||||
find /etc/grafana -type f -exec chmod 644 {} ';'
|
find /etc/grafana -type f -exec chmod 644 {} ';'
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
|
|
||||||
GRAFANA_USER=grafana
|
GRAFANA_USER=grafana
|
||||||
|
|
||||||
GRAFANA_GROUP=grafana
|
GRAFANA_GROUP=grafana
|
||||||
|
|
||||||
|
GRAFANA_HOME=/usr/share/grafana
|
||||||
|
|
||||||
LOG_DIR=/var/log/grafana
|
LOG_DIR=/var/log/grafana
|
||||||
GRAFANA_HOME=/opt/grafana
|
|
||||||
DATA_DIR=/opt/grafana/data
|
DATA_DIR=/var/lib/grafana
|
||||||
WORK_DIR=/opt/grafana
|
|
||||||
MAX_OPEN_FILES=10000
|
MAX_OPEN_FILES=10000
|
||||||
|
|
||||||
CONF_DIR=/etc/grafana
|
CONF_DIR=/etc/grafana
|
||||||
|
|
||||||
CONF_FILE=/etc/grafana/grafana.ini
|
CONF_FILE=/etc/grafana/grafana.ini
|
||||||
|
|
||||||
RESTART_ON_UPGRADE=true
|
RESTART_ON_UPGRADE=true
|
@ -20,9 +20,9 @@
|
|||||||
# 3. Centos with initscripts package installed
|
# 3. Centos with initscripts package installed
|
||||||
|
|
||||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||||
NAME=grafana
|
NAME=grafana-server
|
||||||
DESC="Grafana Server"
|
DESC="Grafana Server"
|
||||||
DEFAULT=/etc/default/$NAME
|
DEFAULT=/etc/default/grafana-server
|
||||||
|
|
||||||
if [ `id -u` -ne 0 ]; then
|
if [ `id -u` -ne 0 ]; then
|
||||||
echo "You need root privileges to run this script"
|
echo "You need root privileges to run this script"
|
||||||
@ -37,11 +37,11 @@ fi
|
|||||||
|
|
||||||
GRAFANA_USER=grafana
|
GRAFANA_USER=grafana
|
||||||
GRAFANA_GROUP=grafana
|
GRAFANA_GROUP=grafana
|
||||||
GRAFANA_HOME=/opt/$NAME
|
GRAFANA_HOME=/usr/share/grafana
|
||||||
CONF_DIR=/etc/$NAME
|
CONF_DIR=/etc/grafana
|
||||||
WORK_DIR=$GRAFANA_HOME
|
WORK_DIR=$GRAFANA_HOME
|
||||||
DATA_DIR=$GRAFANA_HOME/data
|
DATA_DIR=/var/lib/grafana
|
||||||
LOG_DIR=/var/log/$NAME
|
LOG_DIR=/var/log/grafana
|
||||||
CONF_FILE=$CONF_DIR/grafana.ini
|
CONF_FILE=$CONF_DIR/grafana.ini
|
||||||
MAX_OPEN_FILES=10000
|
MAX_OPEN_FILES=10000
|
||||||
|
|
||||||
@ -51,8 +51,8 @@ if [ -f "$DEFAULT" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
PID_FILE=/var/run/$NAME.pid
|
PID_FILE=/var/run/$NAME.pid
|
||||||
DAEMON=$GRAFANA_HOME/bin/grafana
|
DAEMON=/usr/bin/grafana-server
|
||||||
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} --default-data-path=${DATA_DIR} --default-log-path=${LOG_DIR} web"
|
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR}"
|
||||||
|
|
||||||
# Check DAEMON exists
|
# Check DAEMON exists
|
||||||
test -x $DAEMON || exit 0
|
test -x $DAEMON || exit 0
|
@ -9,10 +9,10 @@ EnvironmentFile=/etc/default/grafana
|
|||||||
User=grafana
|
User=grafana
|
||||||
Group=grafana
|
Group=grafana
|
||||||
Type=simple
|
Type=simple
|
||||||
ExecStart=/opt/grafana/bin/grafana \
|
ExecStart=/usr/bin/grafana-server \
|
||||||
--config=$CONF_FILE \
|
--config=${CONF_FILE} \
|
||||||
--default-log-path=$LOG_DIR \
|
cfg:default.paths.data=${LOG_DIR} \
|
||||||
--default-path-data=$DATA_DIR \
|
cfg:default.paths.data=${DATA_DIR} \
|
||||||
LimitNOFILE=10000
|
LimitNOFILE=10000
|
||||||
TimeoutStopSec=20
|
TimeoutStopSec=20
|
||||||
|
|
Loading…
Reference in New Issue
Block a user