Complete rewrite of the bootstraper tool
This commit is contained in:
127
data/config/test-services.hcl
Normal file
127
data/config/test-services.hcl
Normal file
@ -0,0 +1,127 @@
|
||||
LokiStack = {
|
||||
Name: "LokiStack"
|
||||
Global: {
|
||||
Vars: {}
|
||||
ConfigFiles: [
|
||||
{
|
||||
destination: /etc/hosts
|
||||
source: hosts.pktpl.hcl
|
||||
mode: 600
|
||||
owner: root
|
||||
group: root
|
||||
}
|
||||
]
|
||||
}
|
||||
Services: {
|
||||
Loki: {
|
||||
ConfigFiles: [
|
||||
{
|
||||
destination: /etc/loki/loki-local-config.yaml
|
||||
source: loki-local-config.pktpl.hcl
|
||||
mode: 600
|
||||
owner: loki
|
||||
service: loki
|
||||
group: grafana
|
||||
}
|
||||
]
|
||||
Repositories: {
|
||||
Grafana: {
|
||||
type: helm
|
||||
name: grafana
|
||||
url: https://grafana.github.io/helm-charts
|
||||
enabled:true
|
||||
}
|
||||
AlpineTesting: {
|
||||
type: apk
|
||||
name: testing
|
||||
url: http://mirrors.bfsu.edu.cn/alpine/edge/testing
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
Packages: {
|
||||
loki: {
|
||||
name: loki
|
||||
action: install
|
||||
}
|
||||
promtail: {
|
||||
name: loki-promtail
|
||||
action: install
|
||||
}
|
||||
loki-helm: {
|
||||
type: helm
|
||||
name: loki
|
||||
repo: grafana/loki-simple-scalable
|
||||
}
|
||||
}
|
||||
Vars: {
|
||||
AuthEnabled: false
|
||||
User: loki
|
||||
Group: grafana
|
||||
HTTPPort: 3100
|
||||
GRPCPort: 9096
|
||||
AlertManagerURL: http://localhost:9093
|
||||
StorageRoot: /var/loki
|
||||
SharedStore: filesystem
|
||||
ObjectStore: filesystem
|
||||
LogLevel: error
|
||||
S3: {
|
||||
URL:
|
||||
BucketName:
|
||||
APIKey:
|
||||
APISecretKey:
|
||||
}
|
||||
}
|
||||
Daemons: {
|
||||
Loki: {
|
||||
name: loki
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
Users: {
|
||||
loki: {
|
||||
username: loki
|
||||
group: grafana
|
||||
home : /srv/loki
|
||||
shell: /bin/nologin
|
||||
}
|
||||
}
|
||||
}
|
||||
Grafana: {
|
||||
ConfigFiles: [
|
||||
{
|
||||
destination: /etc/grafana.ini
|
||||
source: grafana.ini.pktpl.hcl
|
||||
mode: 700
|
||||
owner: grafana
|
||||
group: grafana
|
||||
}
|
||||
]
|
||||
Packages: {
|
||||
grafana: {
|
||||
name: grafana
|
||||
action: install
|
||||
}
|
||||
}
|
||||
Vars: {
|
||||
AuthEnabled: false
|
||||
User: toto
|
||||
Group: grafana
|
||||
}
|
||||
Users: {
|
||||
grafana: {
|
||||
username: grafana
|
||||
group: grafana
|
||||
home: /srv/grafana
|
||||
shell: /bin/nologin
|
||||
}
|
||||
}
|
||||
Daemons: {
|
||||
grafana: {
|
||||
name: grafana
|
||||
type: auto
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
127
data/config/test-services.json
Normal file
127
data/config/test-services.json
Normal file
@ -0,0 +1,127 @@
|
||||
{
|
||||
"Name": "LokiStack",
|
||||
"Global": {
|
||||
"Vars": {},
|
||||
"ConfigFiles": [
|
||||
{
|
||||
"destination": "/etc/hosts",
|
||||
"source": "hosts.pktpl.hcl",
|
||||
"mode": "600",
|
||||
"owner": "root",
|
||||
"group": "root"
|
||||
}
|
||||
]
|
||||
},
|
||||
"Services": {
|
||||
"Loki": {
|
||||
"ConfigFiles": [
|
||||
{
|
||||
"destination": "/etc/loki/loki-local-config.yaml",
|
||||
"source": "loki-local-config.pktpl.hcl",
|
||||
"mode": "600",
|
||||
"owner": "loki",
|
||||
"service": "loki",
|
||||
"group": "grafana"
|
||||
}
|
||||
],
|
||||
"Repositories": {
|
||||
"Grafana": {
|
||||
"type": "helm",
|
||||
"name": "grafana",
|
||||
"url": "https://grafana.github.io/helm-charts",
|
||||
"enabled":true
|
||||
},
|
||||
"AlpineTesting": {
|
||||
"type": "apk",
|
||||
"name": "testing",
|
||||
"url": "http://mirrors.bfsu.edu.cn/alpine/edge/testing",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
"Packages": {
|
||||
"loki": {
|
||||
"name": "loki",
|
||||
"action": "install"
|
||||
},
|
||||
"promtail": {
|
||||
"name": "loki-promtail",
|
||||
"action": "install"
|
||||
},
|
||||
"loki-helm": {
|
||||
"type": "helm",
|
||||
"name": "loki",
|
||||
"repo": "grafana/loki-simple-scalable"
|
||||
}
|
||||
},
|
||||
"Vars": {
|
||||
"AuthEnabled": false,
|
||||
"User": "loki",
|
||||
"Group": "grafana",
|
||||
"HTTPPort": "3100",
|
||||
"GRPCPort": "9096",
|
||||
"AlertManagerURL": "http://localhost:9093",
|
||||
"StorageRoot": "/var/loki",
|
||||
"SharedStore": "filesystem",
|
||||
"ObjectStore": "filesystem",
|
||||
"LogLevel": "error",
|
||||
"S3": {
|
||||
"URL": "",
|
||||
"BucketName": "",
|
||||
"APIKey": "",
|
||||
"APISecretKey": ""
|
||||
}
|
||||
},
|
||||
"Daemons": {
|
||||
"Loki": {
|
||||
"name": "loki",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
"Users": {
|
||||
"loki": {
|
||||
"username": "loki",
|
||||
"group": "grafana",
|
||||
"home" : "/srv/loki",
|
||||
"shell": "/bin/nologin"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Grafana": {
|
||||
"ConfigFiles": [
|
||||
{
|
||||
"destination": "/etc/grafana.ini",
|
||||
"source": "grafana.ini.pktpl.hcl",
|
||||
"mode": "700",
|
||||
"owner": "grafana",
|
||||
"group": "grafana"
|
||||
}
|
||||
],
|
||||
"Packages": {
|
||||
"grafana": {
|
||||
"name": "grafana",
|
||||
"action": "install"
|
||||
}
|
||||
},
|
||||
"Vars": {
|
||||
"AuthEnabled": false,
|
||||
"User": "toto",
|
||||
"Group": "grafana"
|
||||
},
|
||||
"Users": {
|
||||
"grafana": {
|
||||
"username": "grafana",
|
||||
"group": "grafana",
|
||||
"home": "/srv/grafana",
|
||||
"shell": "/bin/nologin"
|
||||
}
|
||||
},
|
||||
"Daemons": {
|
||||
"grafana": {
|
||||
"name": "grafana",
|
||||
"type": "auto",
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
{
|
||||
"Name": "loki",
|
||||
"ConfigFiles": [
|
||||
{
|
||||
"destination": "/etc/loki/loki-local-config.yaml",
|
||||
"source": "loki-local-config.pktpl.hcl",
|
||||
"mod": "600"
|
||||
}
|
||||
],
|
||||
"AuthEnabled": false,
|
||||
"User": "loki",
|
||||
"Group": "grafana",
|
||||
"HTTPPort": "3100",
|
||||
"GRPCPort": "9096",
|
||||
"AlertManagerURL": "http://localhost:9093",
|
||||
"StorageRoot": "/var/loki",
|
||||
"SharedStore": "filesystem",
|
||||
"ObjectStore": "filesystem",
|
||||
"LogLevel": "error",
|
||||
"S3": {
|
||||
"URL": "",
|
||||
"BucketName": "",
|
||||
"APIKey": "",
|
||||
"APISecretKey": ""
|
||||
}
|
||||
}
|
0
data/schema/templater.hcl
Normal file
0
data/schema/templater.hcl
Normal file
0
data/schema/templater.json
Normal file
0
data/schema/templater.json
Normal file
5
data/templates/grafana.ini.pktpl.hcl
Normal file
5
data/templates/grafana.ini.pktpl.hcl
Normal file
@ -0,0 +1,5 @@
|
||||
%{ if Vars.AuthEnabled ~}
|
||||
auth_enabled: true
|
||||
%{ else }
|
||||
auth_enabled: false
|
||||
%{ endif }
|
0
data/templates/hosts.pktpl.hcl
Normal file
0
data/templates/hosts.pktpl.hcl
Normal file
@ -1,18 +1,18 @@
|
||||
%{ if AuthEnabled ~}
|
||||
%{ if Vars.AuthEnabled ~}
|
||||
auth_enabled: true
|
||||
%{ else }
|
||||
auth_enabled: false
|
||||
%{ endif }
|
||||
|
||||
server:
|
||||
http_listen_port: ${HTTPPort}
|
||||
grpc_listen_port: ${GRPCPort}
|
||||
log_level: ${LogLevel}
|
||||
http_listen_port: ${Vars.HTTPPort}
|
||||
grpc_listen_port: ${Vars.GRPCPort}
|
||||
log_level: ${Vars.LogLevel}
|
||||
|
||||
ingester:
|
||||
wal:
|
||||
enabled: true
|
||||
dir: ${StorageRoot}/wal
|
||||
dir: ${Vars.StorageRoot}/wal
|
||||
flush_on_shutdown: true
|
||||
lifecycler:
|
||||
address: 127.0.0.1
|
||||
@ -23,7 +23,7 @@ ingester:
|
||||
final_sleep: 0s
|
||||
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
|
||||
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
|
||||
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
|
||||
chunk_target_size: 1048576 # Vars. will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
|
||||
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
|
||||
max_transfer_retries: 0 # Chunk transfers disabled
|
||||
|
||||
@ -31,31 +31,31 @@ schema_config:
|
||||
configs:
|
||||
- from: 2020-05-15
|
||||
store: boltdb-shipper
|
||||
object_store: ${ObjectStore}
|
||||
object_store: ${Vars.ObjectStore}
|
||||
schema: v11
|
||||
index:
|
||||
prefix: index_
|
||||
period: 24h
|
||||
|
||||
storage_config:
|
||||
boltdb_shipper:
|
||||
active_index_directory: ${StorageRoot}/index
|
||||
shared_store: ${SharedStore}
|
||||
cache_location: ${StorageRoot}/cache
|
||||
cache_ttl: 168h
|
||||
boltdb_shipper:
|
||||
active_index_directory: ${Vars.StorageRoot}/index
|
||||
shared_store: ${Vars.SharedStore}
|
||||
cache_location: ${Vars.StorageRoot}/cache
|
||||
cache_ttl: 168h
|
||||
|
||||
%{ if ObjectStore == "filesystem" ~}
|
||||
%{ if Vars.ObjectStore == "filesystem" ~}
|
||||
filesystem:
|
||||
directory: ${StorageRoot}/chunks
|
||||
directory: ${Vars.StorageRoot}/chunks
|
||||
%{ else }
|
||||
aws:
|
||||
s3: s3://${S3.APIKey}:${S3.APISecretKey}@${S3.URL}/${S3.BucketName}
|
||||
s3: s3://${Vars.S3.APIKey}:${Vars.S3.APISecretKey}@${Vars.S3.URL}/${Vars.S3.BucketName}
|
||||
s3forcepathstyle: true
|
||||
%{ endif }
|
||||
|
||||
compactor:
|
||||
shared_store: ${SharedStore}
|
||||
working_directory: ${StorageRoot}/compactor
|
||||
shared_store: ${Vars.SharedStore}
|
||||
working_directory: ${Vars.StorageRoot}/compactor
|
||||
compaction_interval: 10m
|
||||
|
||||
limits_config:
|
||||
@ -73,10 +73,10 @@ ruler:
|
||||
storage:
|
||||
type: local
|
||||
local:
|
||||
directory: ${StorageRoot}/rules
|
||||
rule_path: ${StorageRoot}/rules
|
||||
alertmanager_url: ${AlertManagerURL}
|
||||
directory: ${Vars.StorageRoot}/rules
|
||||
rule_path: ${Vars.StorageRoot}/rules
|
||||
alertmanager_url: ${Vars.AlertManagerURL}
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
enable_api: true
|
||||
enable_api: true
|
||||
|
@ -1,18 +1,18 @@
|
||||
{{ if .AuthEnabled }}
|
||||
{{ if .Vars.AuthEnabled }}
|
||||
auth_enabled: true
|
||||
{{ else }}
|
||||
auth_enabled: false
|
||||
{{ end }}
|
||||
|
||||
server:
|
||||
http_listen_port: {{ .HTTPPort }}
|
||||
grpc_listen_port: {{ .GRPCPort }}
|
||||
http_listen_port: {{ .Vars.HTTPPort }}
|
||||
grpc_listen_port: {{ .Vars.GRPCPort }}
|
||||
log_level: {{ .LogLevel }}
|
||||
|
||||
ingester:
|
||||
wal:
|
||||
enabled: true
|
||||
dir: {{ .StorageRoot }}/wal
|
||||
dir: {{ .Vars.StorageRoot }}/wal
|
||||
flush_on_shutdown: true
|
||||
lifecycler:
|
||||
address: 127.0.0.1
|
||||
@ -31,7 +31,7 @@ schema_config:
|
||||
configs:
|
||||
- from: 2020-05-15
|
||||
store: boltdb-shipper
|
||||
object_store: {{ .ObjectStore }}
|
||||
object_store: {{ .Vars.ObjectStore }}
|
||||
schema: v11
|
||||
index:
|
||||
prefix: index_
|
||||
@ -39,23 +39,23 @@ schema_config:
|
||||
|
||||
storage_config:
|
||||
boltdb_shipper:
|
||||
active_index_directory: {{ .StorageRoot }}/index
|
||||
shared_store: {{ .SharedStore }}
|
||||
cache_location: {{ .StorageRoot }}/cache
|
||||
active_index_directory: {{ .Vars.StorageRoot }}/index
|
||||
shared_store: {{ .Vars.SharedStore }}
|
||||
cache_location: {{ .Vars.StorageRoot }}/cache
|
||||
cache_ttl: 168h
|
||||
|
||||
{{ if eq (.ObjectStore) ("filesystem") }}
|
||||
filesystem:
|
||||
directory: {{ .StorageRoot }}/chunks
|
||||
directory: {{ .Vars.StorageRoot }}/chunks
|
||||
{{ else }}
|
||||
aws:
|
||||
s3: s3://{{ .S3.APIKey }}:{{ .S3.APISecretKey}}@{{ .S3.URL}}/{{ .S3.BucketName}}
|
||||
s3: s3://{{ .Vars.S3.APIKey }}:{{ .Vars.S3.APISecretKey}}@{{ .S3.URL}}/{{ .S3.BucketName}}
|
||||
s3forcepathstyle: true
|
||||
{{ end }}
|
||||
|
||||
compactor:
|
||||
shared_store: {{ .SharedStore }}
|
||||
working_directory: {{ .StorageRoot }}/compactor
|
||||
shared_store: {{ .Vars.SharedStore }}
|
||||
working_directory: {{ .Vars.StorageRoot }}/compactor
|
||||
compaction_interval: 10m
|
||||
|
||||
limits_config:
|
||||
@ -73,9 +73,9 @@ ruler:
|
||||
storage:
|
||||
type: local
|
||||
local:
|
||||
directory: {{ .StorageRoot }}/rules
|
||||
rule_path: {{ .StorageRoot }}/rules
|
||||
alertmanager_url: {{ .AlertManagerURL }}
|
||||
directory: {{ .Vars.StorageRoot }}/rules
|
||||
rule_path: {{ .Vars.StorageRoot }}/rules
|
||||
alertmanager_url: {{ .Vars.AlertManagerURL }}
|
||||
ring:
|
||||
kvstore:
|
||||
store: inmemory
|
||||
|
Reference in New Issue
Block a user