mirror of
https://github.com/grafana/grafana.git
synced 2024-11-22 08:56:43 -06:00
more work on refining config loading, and packaging
This commit is contained in:
parent
d1767144a8
commit
4c6d7630cd
65
build.go
65
build.go
@ -22,12 +22,13 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
|
||||
goarch string
|
||||
goos string
|
||||
version string = "v1"
|
||||
race bool
|
||||
workingDir string
|
||||
versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
|
||||
goarch string
|
||||
goos string
|
||||
version string = "v1"
|
||||
race bool
|
||||
workingDir string
|
||||
serverBinaryName string = "grafana-server"
|
||||
)
|
||||
|
||||
const minGoVersion = 1.3
|
||||
@ -71,7 +72,7 @@ func main() {
|
||||
//verifyGitRepoIsClean()
|
||||
//grunt("release", "--pkgVer="+version)
|
||||
createPackage("deb", "default")
|
||||
createPackage("rpm", "sysconfig")
|
||||
//createPackage("rpm", "sysconfig")
|
||||
|
||||
case "latest":
|
||||
makeLatestDistCopies()
|
||||
@ -110,37 +111,42 @@ func readVersionFromPackageJson() {
|
||||
}
|
||||
|
||||
func createPackage(packageType string, defaultPath string) {
|
||||
installRoot := "/opt/grafana"
|
||||
configRoot := "/etc/grafana"
|
||||
homeDir := "/usr/share/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")
|
||||
packageConfDir := filepath.Join("packaging", packageType)
|
||||
|
||||
afterInstallScript := filepath.Join(packageConfDir, "control/postinst")
|
||||
initdscript := filepath.Join(packageConfDir, "init.d/grafana")
|
||||
defaultScript := filepath.Join(packageConfDir, defaultPath, "grafana")
|
||||
systemdServiceFile := filepath.Join(packageConfDir, "systemd/grafana.service")
|
||||
postintSrc := filepath.Join(packageConfDir, "control/postinst")
|
||||
initdScriptSrc := filepath.Join(packageConfDir, "init.d/grafana-server")
|
||||
defaultFileSrc := filepath.Join(packageConfDir, defaultPath, "grafana-server")
|
||||
systemdFileSrc := filepath.Join(packageConfDir, "systemd/grafana-server.service")
|
||||
|
||||
packageInstallRoot := filepath.Join(packageRoot, installRoot)
|
||||
configDir := filepath.Join(packageRoot, configRoot)
|
||||
|
||||
runError("mkdir", "-p", packageInstallRoot)
|
||||
runError("mkdir", "-p", configDir)
|
||||
// create directories
|
||||
runError("mkdir", "-p", filepath.Join(packageRoot, homeDir))
|
||||
runError("mkdir", "-p", filepath.Join(packageRoot, configDir))
|
||||
runError("mkdir", "-p", filepath.Join(packageRoot, "/etc/init.d"))
|
||||
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/bin"))
|
||||
|
||||
// copy binary
|
||||
runError("cp", "-p", filepath.Join(workingDir, "tmp/bin/"+serverBinaryName), grafanaServerBinPath)
|
||||
// copy init.d script
|
||||
runError("cp", "-p", initdscript, filepath.Join(packageRoot, "/etc/init.d/grafana"))
|
||||
// copy environment file
|
||||
runError("cp", "-p", defaultScript, filepath.Join(packageRoot, "etc", defaultPath, "grafana"))
|
||||
runError("cp", "-p", initdScriptSrc, filepath.Join(packageRoot, initdScriptPath))
|
||||
// copy environment var file
|
||||
runError("cp", "-p", defaultFileSrc, filepath.Join(packageRoot, defaultFilePath))
|
||||
// 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
|
||||
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
|
||||
configFile := filepath.Join(configDir, "grafana.ini")
|
||||
runError("cp", "conf/sample.ini", configFile)
|
||||
runError("cp", "conf/sample.ini", filepath.Join(packageRoot, configFilePath))
|
||||
|
||||
args := []string{
|
||||
"-s", "dir",
|
||||
@ -151,8 +157,11 @@ func createPackage(packageType string, defaultPath string) {
|
||||
"--url", "http://grafana.org",
|
||||
"--license", "Apache 2.0",
|
||||
"--maintainer", "contact@grafana.org",
|
||||
"--config-files", filepath.Join(configRoot, "grafana.ini"),
|
||||
"--after-install", afterInstallScript,
|
||||
"--config-files", configFilePath,
|
||||
"--config-files", initdScriptPath,
|
||||
"--config-files", defaultFilePath,
|
||||
"--config-files", systemdServiceFilePath,
|
||||
"--after-install", postintSrc,
|
||||
"--name", "grafana",
|
||||
"--version", version,
|
||||
"-p", "./dist",
|
||||
@ -209,7 +218,7 @@ func test(pkg string) {
|
||||
}
|
||||
|
||||
func build(pkg string, tags []string) {
|
||||
binary := "./bin/grafana-server"
|
||||
binary := "./bin/" + serverBinaryName
|
||||
if goos == "windows" {
|
||||
binary += ".exe"
|
||||
}
|
||||
|
@ -1,101 +1,131 @@
|
||||
app_name = Grafana
|
||||
app_mode = production
|
||||
##################### Grafana Configuration Example #####################
|
||||
#
|
||||
# Everything has defaults so you only need to uncomment things you want to
|
||||
# change
|
||||
|
||||
; app_mode = production
|
||||
|
||||
#################################### Paths ####################################
|
||||
[paths]
|
||||
; data_path
|
||||
; 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
|
||||
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is useD)
|
||||
#
|
||||
data = data
|
||||
#
|
||||
# Directory where grafana can store logs
|
||||
#
|
||||
logs = data/log
|
||||
|
||||
#################################### Server ####################################
|
||||
[server]
|
||||
; protocol (http or https)
|
||||
# Protocol (http or https)
|
||||
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 =
|
||||
; the http port to use
|
||||
|
||||
# The http port to use
|
||||
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
|
||||
; the full public facing url
|
||||
|
||||
# The full public facing url
|
||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
|
||||
# Log web requests
|
||||
router_logging = false
|
||||
; the path relative home path where frontend assets are located
|
||||
|
||||
# the path relative working path
|
||||
static_root_path = public
|
||||
; enable gzip
|
||||
|
||||
# enable gzip
|
||||
enable_gzip = false
|
||||
; https certs & key file
|
||||
|
||||
# https certs & key file
|
||||
cert_file =
|
||||
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]
|
||||
# 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 = 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 =
|
||||
|
||||
[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]
|
||||
; 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
|
||||
; 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
|
||||
; used for signing
|
||||
# used for signing
|
||||
secret_key = SW2YcwTIb9zpOOhoPsMm
|
||||
; Auto-login remember days
|
||||
# Auto-login remember days
|
||||
login_remember_days = 7
|
||||
cookie_username = grafana_user
|
||||
cookie_remember_name = grafana_remember
|
||||
|
||||
#################################### Users ####################################
|
||||
[users]
|
||||
; disable user signup / registration
|
||||
# disable user signup / registration
|
||||
allow_sign_up = true
|
||||
; Allow non admin users to create organizations
|
||||
# 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)
|
||||
# Default role new users will be automatically assigned (if disabled above is set to true)
|
||||
auto_assign_org_role = Viewer
|
||||
|
||||
#################################### Anonymous Auth ##########################
|
||||
[auth.anonymous]
|
||||
; enable anonymous access
|
||||
# enable anonymous access
|
||||
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.
|
||||
; specify role for unauthenticated users
|
||||
# specify role for unauthenticated users
|
||||
org_role = Viewer
|
||||
|
||||
#################################### Github Auth ##########################
|
||||
[auth.github]
|
||||
enabled = false
|
||||
client_id = some_id
|
||||
@ -103,9 +133,10 @@ client_secret = some_secret
|
||||
scopes = user:email
|
||||
auth_url = https://github.com/login/oauth/authorize
|
||||
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
|
||||
|
||||
#################################### Google Auth ##########################
|
||||
[auth.google]
|
||||
enabled = false
|
||||
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
|
||||
auth_url = https://accounts.google.com/o/oauth2/auth
|
||||
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
|
||||
|
||||
#################################### Logging ##########################
|
||||
[log]
|
||||
; Either "console", "file", default is "console"
|
||||
; Use comma to separate multiple modes, e.g. "console, file"
|
||||
# Either "console", "file", default is "console"
|
||||
# Use comma to separate multiple modes, e.g. "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
|
||||
; Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
||||
# Either "Trace", "Debug", "Info", "Warn", "Error", "Critical", default is "Trace"
|
||||
level = Info
|
||||
|
||||
; For "console" mode only
|
||||
# For "console" mode only
|
||||
[log.console]
|
||||
level =
|
||||
|
||||
; For "file" mode only
|
||||
# For "file" mode only
|
||||
[log.file]
|
||||
level =
|
||||
; 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
|
||||
max_days = 7
|
||||
|
||||
#################################### AMPQ Event Publisher ##########################
|
||||
[event_publisher]
|
||||
enabled = false
|
||||
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
|
||||
# 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)
|
||||
; this option is passed via command line args, override this option in /etc/default/grafana
|
||||
; defaults to /opt/grafana/data
|
||||
data_path =
|
||||
#################################### Paths ####################################
|
||||
[paths]
|
||||
# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is useD)
|
||||
#
|
||||
;data = /var/lib/grafana
|
||||
#
|
||||
# Directory where grafana can store logs
|
||||
#
|
||||
;logs = /var/log/grafana
|
||||
|
||||
[server]
|
||||
; protocol (http or https)
|
||||
protocol = http
|
||||
;protocol = http
|
||||
; the ip address to bind to, empty will bind to all interfaces
|
||||
http_addr =
|
||||
;http_addr =
|
||||
; the http port to use
|
||||
http_port = 3000
|
||||
;http_port = 3000
|
||||
; The public facing domain name used to access grafana from a browser
|
||||
domain = localhost
|
||||
;domain = localhost
|
||||
; the full public facing url
|
||||
root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
router_logging = false
|
||||
; the path relative to grafana process working directory
|
||||
static_root_path = public
|
||||
enable_gzip = false
|
||||
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
|
||||
;router_logging = false
|
||||
; the path relative home path where frontend assets are located
|
||||
;static_root_path = public
|
||||
; enable gzip
|
||||
;enable_gzip = false
|
||||
; https certs & key file
|
||||
cert_file =
|
||||
cert_key =
|
||||
;cert_file =
|
||||
;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"
|
||||
fi
|
||||
|
||||
# Set user permissions on /var/log/grafana, /opt/grafana/data
|
||||
mkdir -p /var/log/grafana /opt/grafana/data
|
||||
chown -R $GRAFANA_USER:$GRAFANA_GROUP /var/log/grafana /opt/grafana/data
|
||||
chmod 755 /var/log/grafana /opt/grafana/data
|
||||
# Set user permissions on /var/log/grafana, /var/lib/grafana
|
||||
mkdir -p /var/log/grafana /var/lib/grafana
|
||||
chown -R $GRAFANA_USER:$GRAFANA_GROUP /var/log/grafana /var/lib/grafana
|
||||
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/*
|
||||
chmod 755 /etc/grafana
|
||||
find /etc/grafana -type f -exec chmod 644 {} ';'
|
||||
|
@ -1,14 +1,17 @@
|
||||
|
||||
GRAFANA_USER=grafana
|
||||
|
||||
GRAFANA_GROUP=grafana
|
||||
|
||||
GRAFANA_HOME=/usr/share/grafana
|
||||
|
||||
LOG_DIR=/var/log/grafana
|
||||
GRAFANA_HOME=/opt/grafana
|
||||
DATA_DIR=/opt/grafana/data
|
||||
WORK_DIR=/opt/grafana
|
||||
|
||||
DATA_DIR=/var/lib/grafana
|
||||
|
||||
MAX_OPEN_FILES=10000
|
||||
|
||||
CONF_DIR=/etc/grafana
|
||||
|
||||
CONF_FILE=/etc/grafana/grafana.ini
|
||||
|
||||
RESTART_ON_UPGRADE=true
|
@ -20,9 +20,9 @@
|
||||
# 3. Centos with initscripts package installed
|
||||
|
||||
PATH=/bin:/usr/bin:/sbin:/usr/sbin
|
||||
NAME=grafana
|
||||
NAME=grafana-server
|
||||
DESC="Grafana Server"
|
||||
DEFAULT=/etc/default/$NAME
|
||||
DEFAULT=/etc/default/grafana-server
|
||||
|
||||
if [ `id -u` -ne 0 ]; then
|
||||
echo "You need root privileges to run this script"
|
||||
@ -37,11 +37,11 @@ fi
|
||||
|
||||
GRAFANA_USER=grafana
|
||||
GRAFANA_GROUP=grafana
|
||||
GRAFANA_HOME=/opt/$NAME
|
||||
CONF_DIR=/etc/$NAME
|
||||
GRAFANA_HOME=/usr/share/grafana
|
||||
CONF_DIR=/etc/grafana
|
||||
WORK_DIR=$GRAFANA_HOME
|
||||
DATA_DIR=$GRAFANA_HOME/data
|
||||
LOG_DIR=/var/log/$NAME
|
||||
DATA_DIR=/var/lib/grafana
|
||||
LOG_DIR=/var/log/grafana
|
||||
CONF_FILE=$CONF_DIR/grafana.ini
|
||||
MAX_OPEN_FILES=10000
|
||||
|
||||
@ -51,8 +51,8 @@ if [ -f "$DEFAULT" ]; then
|
||||
fi
|
||||
|
||||
PID_FILE=/var/run/$NAME.pid
|
||||
DAEMON=$GRAFANA_HOME/bin/grafana
|
||||
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} --default-data-path=${DATA_DIR} --default-log-path=${LOG_DIR} web"
|
||||
DAEMON=/usr/bin/grafana-server
|
||||
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR}"
|
||||
|
||||
# Check DAEMON exists
|
||||
test -x $DAEMON || exit 0
|
@ -9,10 +9,10 @@ EnvironmentFile=/etc/default/grafana
|
||||
User=grafana
|
||||
Group=grafana
|
||||
Type=simple
|
||||
ExecStart=/opt/grafana/bin/grafana \
|
||||
--config=$CONF_FILE \
|
||||
--default-log-path=$LOG_DIR \
|
||||
--default-path-data=$DATA_DIR \
|
||||
ExecStart=/usr/bin/grafana-server \
|
||||
--config=${CONF_FILE} \
|
||||
cfg:default.paths.data=${LOG_DIR} \
|
||||
cfg:default.paths.data=${DATA_DIR} \
|
||||
LimitNOFILE=10000
|
||||
TimeoutStopSec=20
|
||||
|
Loading…
Reference in New Issue
Block a user