上文部署loki版本2.9.3,部署完成后突发奇想最新版本是哪个版本,本着部署最新版的原则看了下最新3.6.3,此刻如果不部署最新版本那么这套生态还没有正式运行起来就面临被淘汰或众多功能不支持,或将来升级很费劲,尤其大版本升级牵扯很多。
git下载地址:https://github.com/grafana/loki/releases
版本升级说明:https://github.com/grafana/loki/blob/main/CHANGELOG.md
添加配置文件:vim loki-config.yaml
XML
auth_enabled: false
server:
http_listen_port: 13100
grpc_listen_port: 19096
log_level: debug
grpc_server_max_concurrent_streams: 1000
common:
instance_addr: 127.0.0.1
path_prefix: /loki/data
storage:
filesystem:
chunks_directory: /loki/data/chunks
rules_directory: /loki/data/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
heartbeat_timeout: 1m
heartbeat_period: 10s
#查询优化
query_range:
results_cache:
cache:
embedded_cache:
enabled: true
max_size_mb: 100
#性能配置
limits_config:
metric_aggregation_enabled: true
enable_multi_variant_queries: true
# 其他相关配置
max_streams_per_user: 10000
max_chunks_per_query: 2000000
max_query_parallelism: 32
max_concurrent_tail_requests: 10
max_entries_limit_per_query: 5000
# 缓存配置
max_cache_freshness_per_query: 1m
split_queries_by_interval: 30m
#存储配置
schema_config:
configs:
- from: 2025-12-31
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
#用于识别和存储日志模式
pattern_ingester:
enabled: true
metric_aggregation:
loki_address: 127.0.0.1:13100
ruler:
alertmanager_url: http://172.22.82.234:9093
frontend:
encoding: protobuf
启动脚本
bash
et -e
# 环境变量
LOKI_VERSION="3.6.3"
DATA_DIR="/xworks/monitor/loki/data"
CONFIG_DIR="/xworks/monitor/loki/config"
LOGS_DIR="/xworks/monitor/loki/logs"
CONTAINER_NAME="loki"
# 检查目录
echo "检查目录权限..."
mkdir -p ${DATA_DIR} ${CONFIG_DIR} ${LOGS_DIR}
chmod 755 ${DATA_DIR} ${CONFIG_DIR} ${LOGS_DIR}
# 停止旧容器
echo "停止旧容器..."
docker stop ${CONTAINER_NAME} 2>/dev/null || true
docker rm ${CONTAINER_NAME} 2>/dev/null || true
# 拉取镜像
echo "拉取 Loki ${LOKI_VERSION} 镜像..."
docker pull grafana/loki:${LOKI_VERSION}
# 启动容器
echo "启动 Loki 容器..."
docker run -d \
--name=${CONTAINER_NAME} \
--memory="1g" \
--cpus="0.5" \
--ulimit nofile=65536:65536 \
--restart=always \
-p 13100:13100 \
-p 19096:19096 \
--volume ${CONFIG_DIR}:/etc/loki:ro \
--volume ${DATA_DIR}:/loki/data \
--volume ${LOGS_DIR}:/var/log/loki \
--env TZ=Asia/Shanghai \
--env "LOKI_ADDR=0.0.0.0" \
--label "environment=production" \
--label "version=${LOKI_VERSION}" \
grafana/loki:${LOKI_VERSION} \
-config.file=/etc/loki/loki-config.yaml \
-log.level=debug \
-log.format=json \
-target=all
# 等待启动
echo "等待服务启动..."
sleep 10
# 验证
echo "验证服务状态..."
if curl -s http://127.0.0.1:13100/ready | grep -q "ready"; then
echo "✅ Loki 启动成功!"
echo "HTTP端口: 13100"
echo "gRPC端口: 19096"
echo "数据目录: ${DATA_DIR}"
echo "日志目录: ${LOGS_DIR}"
else
echo "❌ Loki 启动失败,查看日志:"
docker logs ${CONTAINER_NAME} --tail 20
exit 1
fi
# 监控信息
echo ""
echo "监控端点:"
echo "- 健康检查: http://localhost:13100/ready"
echo "- 指标数据: http://localhost:13100/metrics"
echo "- 运行时配置: http://localhost:13100/runtime_config"
echo "- 集群状态: http://localhost:13100/loki/api/v1/status/cl"
docker启动完成

健康检查和准备状态查看

如下指标信息内容太多,执行请求为下面的 curl http://localhost:13100/metrics

上章对2.9.3部署完成,本章对3.9.3的部署就很简单了。