沙特网站后缀上海建站
2026/4/8 3:13:42 网站建设 项目流程
沙特网站后缀,上海建站,邢台手机网站建设服务,做微商货源网站赚钱吗Grafana Loki 日志监控配置指南前言 在微服务架构中#xff0c;日志收集和分析是运维的重要环节。本文介绍如何使用 Grafana Loki 搭建轻量级日志监控系统#xff0c;并与传统的 ELK 技术栈进行对比。 Loki vs ELK 技术栈对比 架构对比 组件ELKLoki日志采集Logstash / Filebe…Grafana Loki 日志监控配置指南前言在微服务架构中日志收集和分析是运维的重要环节。本文介绍如何使用 Grafana Loki 搭建轻量级日志监控系统并与传统的 ELK 技术栈进行对比。Loki vs ELK 技术栈对比架构对比组件ELKLoki日志采集Logstash / FilebeatPromtail日志存储ElasticsearchLoki可视化KibanaGrafana核心差异对比项ELKLoki索引方式全文索引仅索引标签Label存储占用高原始日志 索引低压缩存储索引小资源消耗高ES 需要大量内存低单机 256MB 可运行查询方式Lucene 语法LogQL类 PromQL查询速度全文搜索快标签过滤快全文搜索慢部署复杂度复杂多组件协调简单3 个容器即可学习成本较高较低熟悉 Prometheus 更容易与 Prometheus 集成需额外配置原生集成选型建议选择 ELK 的场景需要复杂的全文搜索日志分析是核心业务需求有专门的运维团队服务器资源充足选择 Loki 的场景中小型项目资源有限已使用 Prometheus Grafana 监控体系主要需求是日志查看和简单过滤追求快速部署和低维护成本系统架构┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 微服务应用 │ ──▶ │ 日志文件 │ ──▶ │ Promtail │ ──▶ │ Loki │ │ (Java/Go等) │ │ (.log files)│ │ (采集器) │ │ (存储) │ └─────────────┘ └─────────────┘ └─────────────┘ └──────┬──────┘ │ ▼ ┌─────────────┐ │ Grafana │ │ (可视化) │ └─────────────┘环境准备Docker 20.10Docker Compose 2.0服务器内存 2GB目录结构/docker/ ├── docker-compose.yaml ├── loki/ │ └── loki-config.yaml └── promtail/ └── promtail-config.yaml配置文件1. Loki 配置 (loki-config.yaml)/* by 01130.hk - online tools website : 01130.hk/zh/formatcsql.html */ auth_enabled: false server: http_listen_port: 3100 grpc_listen_port: 9096 common: instance_addr: 127.0.0.1 path_prefix: /loki storage: filesystem: chunks_directory: /loki/chunks rules_directory: /loki/rules replication_factor: 1 ring: kvstore: store: inmemory query_range: results_cache: cache: embedded_cache: enabled: true max_size_mb: 100 limits_config: metric_aggregation_enabled: true retention_period: 720h # 日志保留 30 天 schema_config: configs: - from: 2020-10-24 store: tsdb object_store: filesystem schema: v13 index: prefix: index_ period: 24h pattern_ingester: enabled: true metric_aggregation: loki_address: localhost:3100 compactor: working_directory: /loki/compactor retention_enabled: true delete_request_store: filesystem frontend: encoding: protobuf配置说明配置项说明auth_enabled: false关闭认证单机部署使用http_listen_port: 3100Loki HTTP API 端口path_prefix: /loki数据存储路径前缀retention_period: 720h日志保留 30 天store: tsdb使用 TSDB 存储引擎Loki 3.x 推荐schema: v13最新的 schema 版本embedded_cache内置查询缓存提升查询性能compactor自动压缩和清理过期日志2. Promtail 配置 (promtail-config.yaml)/* by 01130.hk - online tools website : 01130.hk/zh/formatcsql.html */ server: http_listen_port: 9080 grpc_listen_port: 0 positions: filename: /tmp/positions.yaml clients: - url: http://loki:3100/loki/api/v1/push scrape_configs: - job_name: xiaohashu static_configs: - targets: - localhost labels: job: xiaohashu __path__: /var/log/xiaohashu/*.log pipeline_stages: # 从文件名提取服务名: note.2025-07-01-0.log → servicenote - regex: source: filename expression: (?Pservice[a-z-])\.\d{4}-\d{2}-\d{2}-\d\.log$ - labels: service: # 从日志内容提取级别: INFO/WARN/ERROR/DEBUG - regex: expression: ^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3} \[[^\]]\] (?Plevel\w) - labels: level:配置说明配置项说明positions.filename记录读取位置重启后继续读取clients.urlLoki 推送地址__path__日志文件匹配路径pipeline_stages日志处理管道regexlabels从文件名/内容提取标签日志格式示例2025-07-01 10:30:00.123 [main] INFO com.example.Service - 启动成功经过 pipeline 处理后会自动添加标签servicenote从文件名提取levelINFO从日志内容提取3. Docker Compose 配置services: loki: image: grafana/loki:3.5.0 container_name: loki ports: - 3100:3100 volumes: - ./loki/loki-config.yaml:/etc/loki/local-config.yaml - loki-data:/loki command: -config.file/etc/loki/local-config.yaml restart: unless-stopped promtail: image: grafana/promtail:3.5.0 container_name: promtail volumes: - ./promtail/promtail-config.yaml:/etc/promtail/config.yaml - /www/wwwroot/life_diary/logs:/var/log/xiaohashu:ro command: -config.file/etc/promtail/config.yaml restart: unless-stopped depends_on: - loki grafana: image: grafana/grafana:11.4.0 container_name: grafana ports: - 3000:3000 environment: - GF_SECURITY_ADMIN_USERadmin - GF_SECURITY_ADMIN_PASSWORDadmin123 volumes: - grafana-data:/var/lib/grafana restart: unless-stopped depends_on: - loki volumes: loki-data: grafana-data:关键配置说明配置说明loki-data:/lokiLoki 数据持久化容器重启不丢失/www/wwwroot/life_diary/logs:/var/log/xiaohashu:ro挂载宿主机日志目录:ro表示只读grafana-data:/var/lib/grafanaGrafana 配置持久化depends_on服务启动依赖顺序部署步骤1. 创建目录和配置文件mkdir -p /docker/loki /docker/promtail cd /docker # 创建配置文件内容见上文 vim loki/loki-config.yaml vim promtail/promtail-config.yaml vim docker-compose.yaml2. 启动服务cd /docker docker-compose up -d3. 查看服务状态docker-compose ps docker-compose logs -f loki # 查看 Loki 日志 docker-compose logs -f promtail # 查看 Promtail 日志4. 配置 Grafana 数据源浏览器访问http://服务器IP:3000登录默认 admin / admin123左侧菜单 →Connections→Data sources点击Add data source→ 选择LokiURL 填写http://loki:3100点击Save Test显示绿色 ✓ 表示成功LogQL 查询语法基础查询# 查看所有日志 {jobxiaohashu} # 按服务筛选 {servicenote} {servicegateway} # 按日志级别筛选 {levelERROR} {levelWARN} # 组合条件 {servicenote, levelERROR}关键字搜索# 包含关键字 {jobxiaohashu} | Exception {servicenote} | NullPointer # 不包含关键字 {servicegateway} ! health # 正则匹配 {jobxiaohashu} |~ user.*login统计分析# 最近 5 分钟各服务错误数 count_over_time({levelERROR}[5m]) by (service) # 每分钟日志量 rate({jobxiaohashu}[1m]) # 错误率 sum(rate({levelERROR}[5m])) / sum(rate({jobxiaohashu}[5m]))常用运维命令# 启动所有服务 docker-compose up -d # 停止所有服务 docker-compose down # 重启单个服务 docker-compose restart loki # 查看资源占用 docker stats loki promtail grafana # 查看日志 docker-compose logs -f --tail100 loki # 清理旧数据谨慎使用 docker volume rm docker_loki-data常见问题1. Promtail CPU 占用高刚启动时需要扫描历史日志属于正常现象。等处理完历史数据后会降下来。2. Grafana 连接 Loki 失败检查 URL 是否正确容器内部通信使用服务名http://loki:3100不是localhost。3. 看不到日志检查日志路径挂载是否正确检查 Promtail 日志docker logs promtail确认日志文件名格式与__path__匹配4. 磁盘空间不足调整retention_period缩短保留时间或手动清理docker-compose down docker volume rm docker_loki-data docker-compose up -d总结Grafana Loki 相比 ELK 更加轻量适合中小型项目和资源有限的场景。通过合理配置 Promtail 的 pipeline可以自动提取服务名和日志级别实现高效的日志查询和分析。对于已经使用 Prometheus Grafana 的团队Loki 是日志监控的最佳选择可以在同一个 Grafana 界面中同时查看指标和日志大大提升排查问题的效率。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询