日志服务器
PLG(Promtail + Loki + Grafana)
轻量级的日志采集和展示框架。
日志采集
Promtail(暂时不用)
看起来是每个节点需要部署的,用于收集日志并且发送给loki的工具。
Docker driver
插件安装
Docker driver client | Grafana Loki documentation
# 安装docker插件 --alias用于推送
docker plugin install grafana/loki-docker-driver:2.9.2 --alias inner-harbor.faceunity.com/alg/grafana/loki-docker-driver:2.9.2 --grant-all-permissions
# 推送插件到self-hosted docker registry
docker plugin push inner-harbor.faceunity.com/alg/grafana/loki-docker-driver:2.9.2
# 随后可以从harbor上重新安装并且定义--alias loki
docker plugin install inner-harbor.faceunity.com/alg/grafana/loki-docker-driver:2.9.2 --alias loki --grant-all-permissions
# 查看插件
docker plugin ls
# 更新docker driver client
docker plugin disable loki --force
docker plugin upgrade loki grafana/loki-docker-driver:2.9.2 --grant-all-permissions
docker enable loki
sudo systemctl restart docker
# 卸载
docker plugin disable loki --force
docker plugin rm lokidocker配置
Docker driver client configuration | Grafana Loki documentation
Loki配置
services:
loki:
image: grafana/loki:latest
container_name: loki
user: "${UID}"
ports:
- "31000:3100"
volumes:
- ./data/loki/config:/etc/loki
- ./data/loki/loki-storage:/tmp/loki
command: -config.file=/etc/loki/local-config.ymlUID=1000
GID=1000# This is a complete configuration to deploy Loki backed by the filesystem.
# The index will be shipped to the storage via tsdb-shipper.
auth_enabled: false
server:
http_listen_port: 3100
common:
ring:
instance_addr: 127.0.0.1
kvstore:
store: inmemory
replication_factor: 1
path_prefix: /tmp/loki
schema_config:
configs:
- from: 2024-11-24
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
storage_config:
filesystem:
directory: /tmp/loki/chunks测试
# 首先写入log.json
{
"streams": [
{
"stream": {
"label1": "value1",
"label2": "value2"
},
"values": [
["1732492800000000000", "I am just testing."]
]
}
]
}
# 时间戳获取的方法是:$(date -d "2024-11-25T00:00:00Z" +%s)000000000 ns
curl -X POST "http://localhost:3100/loki/api/v1/push" -H "Content-Type: application/json" --data-binary @log.jsonGrafana配置
// 需要看看怎么把配置或者一些信息固化平且映射出去
services:
grafana:
image: grafana/grafana:latest
container_name: grafana
user: "${UID}"
ports:
- "30000:3000"
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- ./data/grafana:/var/lib/grafana