2023-02-19 20:58:18 +00:00
|
|
|
import { copyFile } from "node:fs/promises";
|
2023-02-17 00:27:28 +00:00
|
|
|
import { Alpine } from "../../alpine.js";
|
|
|
|
import { Runit } from "../../runit/index.js";
|
|
|
|
import { buildLoki } from "./build.js";
|
|
|
|
|
|
|
|
export async function setupLoki(alpine: Alpine, runit: Runit): Promise<void> {
|
|
|
|
const bin = await buildLoki();
|
2023-02-19 20:58:18 +00:00
|
|
|
await copyFile(bin, alpine.path("/usr/local/bin/loki"));
|
2023-02-17 00:27:28 +00:00
|
|
|
|
|
|
|
const user = await alpine.userAdd("loki");
|
|
|
|
|
|
|
|
// TODO: data
|
|
|
|
// await alpine.fstab.addTmpfs("/var/lib/grafana", {
|
|
|
|
// uid: user.uid,
|
|
|
|
// gid: user.gid,
|
|
|
|
// mode: "700",
|
|
|
|
// });
|
|
|
|
const configPath = "/etc/loki/loki-local-config.yaml";
|
|
|
|
await alpine.writeFile(
|
|
|
|
configPath,
|
|
|
|
`
|
|
|
|
auth_enabled: false
|
|
|
|
|
|
|
|
server:
|
|
|
|
http_listen_port: 3100
|
2023-02-18 16:08:57 +00:00
|
|
|
http_listen_address: 127.0.0.1
|
|
|
|
# grpc_listen_port: 9096
|
|
|
|
grpc_listen_address: 127.0.0.1
|
2023-02-17 00:27:28 +00:00
|
|
|
|
|
|
|
common:
|
|
|
|
instance_addr: 127.0.0.1
|
|
|
|
path_prefix: /tmp/loki
|
|
|
|
storage:
|
|
|
|
filesystem:
|
|
|
|
chunks_directory: /tmp/loki/chunks
|
|
|
|
rules_directory: /tmp/loki/rules
|
|
|
|
replication_factor: 1
|
|
|
|
ring:
|
|
|
|
kvstore:
|
|
|
|
store: inmemory
|
|
|
|
|
|
|
|
query_range:
|
|
|
|
results_cache:
|
|
|
|
cache:
|
|
|
|
embedded_cache:
|
|
|
|
enabled: true
|
|
|
|
max_size_mb: 100
|
|
|
|
|
|
|
|
schema_config:
|
|
|
|
configs:
|
|
|
|
- from: 2020-10-24
|
|
|
|
store: boltdb-shipper
|
|
|
|
object_store: filesystem
|
|
|
|
schema: v11
|
|
|
|
index:
|
|
|
|
prefix: index_
|
|
|
|
period: 24h
|
|
|
|
|
|
|
|
# ruler:
|
|
|
|
# alertmanager_url: http://localhost:9093
|
|
|
|
|
|
|
|
analytics:
|
|
|
|
reporting_enabled: false`,
|
|
|
|
user
|
|
|
|
);
|
|
|
|
|
|
|
|
// await alpine.sudoWriteExecutable(
|
|
|
|
// "/usr/local/sbin/nulo-grafana-cli",
|
|
|
|
// `#!/bin/sh
|
|
|
|
// cd /
|
|
|
|
// exec chpst -u grafana:grafana grafana-cli --homepath /usr/share/grafana --config /etc/grafana.ini "$@"`
|
|
|
|
// );
|
|
|
|
|
|
|
|
await runit.addService(
|
|
|
|
"loki",
|
|
|
|
`#!/bin/sh
|
|
|
|
exec chpst -u ${user.name}:${user.name} /usr/local/bin/loki -config.file='${configPath}'
|
|
|
|
`
|
|
|
|
);
|
|
|
|
}
|