docker 搭建grafana+loki+promtail日志监控、prometheus主机监控、skaywalking链路追踪

本文档详细介绍了如何使用Docker部署日志监控系统(PLG:Promtail, Loki, Grafana)、主机监控系统(Prometheus, Node_exporter, Grafana)以及链路追踪系统(Skywalking)。包括了各个组件的配置、启动和检查步骤,以及各组件的镜像拉取、配置文件下载、端口映射等关键操作。同时,还提供了容器常用命令的参考,帮助读者了解和排查可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、日志监控

PLG日志系统组成

  • promtail:负责收集日志并将其发送给Loki
  • loki:主服务器,服务存储日志和处理查询
  • Grafana:用于查询和现实日志

1.前期准备

  1. 创建目录

    mkdir -p /usr/dz/monitor/
    cd /usr/dz/monitor/
    
  2. 拉取镜像

    docker pull grafana/grafana
    
    docker pull grafana/promtail
    
    docker pull grafana/loki:2.0.1
    
  3. 拉取promtail和loki配置文件

    wget  --no-check-certificate https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
    
    wget  --no-check-certificate https://raw.githubusercontent.com/grafana/loki/master/clients/cmd/promtail/promtail-local-config.yaml
    

2.启动Loki

1.配置loki-local-config.yaml文件

vim /usr/dz/monitor/loki-local-config.yaml

address: 该地址设置为本机服务器地址

在这里插入图片描述

注意:这几行要去掉否则会报错
    wal:
        enabled: true
        dir: /tmp/wal
        recover: true

2.启动loki

docker run -d \
--name loki \
--privileged=true \
-v /usr/dz/monitor:/mnt/config \
-p 3100:3100 \
-p 9096:9096 \
grafana/loki:2.0.1 -config.file=/mnt/config/loki-local-config.yaml

3.启动promtail

1.配置promtail-local-config.yaml文件

vim /usr/dz/monitor/promtail-local-config.yaml

在这里插入图片描述

url地址设置为Loki所在服务器地址

clients:
  - url: http://192.168.15.144:3100/loki/api/v1/push

2.启动promtail

docker run -d \
--name promtail \
--privileged=true \
-v /usr/dz/monitor:/mnt/config \
-v /usr/dz/logs:/usr/dz/logs \
grafana/promtail:latest -config.file=/mnt/config/promtail-local-config.yaml
启动出错一般都是这几个地方(踩过的坑)

doker -v 目录挂载 宿主机目录:容器目录---->(目录挂载出错)

docker -p 端口映射 宿主机端口:容器端口---->(端口映射出错)

-

<think>首先,用户要求使用中文回答问题。所以我的整个响应必须用中文。 问题主题是:"Grafana + Loki 详细说一下优势有哪些,怎么使用"。我需要详细解释GrafanaLoki的优势,以及如何使用它们。 关键点: - Grafana:一个开源的可视化和监控平台。 - Loki:一个日志聚合系统,由Grafana Labs开发,专门用于日志管理。 优势: 1. **高效日志存储**:Loki使用索引和标签来存储日志,而不是全文索引,这使得存储更高效。 2. **与Grafana无缝集成**:由于两者都来自Grafana Labs,它们集成得很好,用户可以在Grafana中直接查询Loki日志。 3. **成本效益**:Loki的设计减少了存储需求,因为它只索引元数据,而不是日志内容本身。 4. **易于扩展**:Loki可以水平扩展,适合大规模部署。 5. **强大的查询能力**:使用LogQL查询语言,类似于Prometheus的PromQL,便于查询日志。 6. **实时监控和告警**:结合Grafana,可以设置告警基于日志事件。 怎么使用: 1. **安装和配置**: - 安装Loki:可以通过Docker、Helm或其他方式部署。 - 安装Grafana:同样可以通过多种方式部署。 2. **配置数据源**: - 在Grafana中添加Loki作为数据源。 - 提供Loki的URL和认证信息。 3. **发送日志Loki**: - 使用PromtailLoki日志收集代理)来收集日志并发送到Loki。 - Promtail可以配置为监控特定目录或文件。 4. **查询日志**: - 在Grafana的Explore界面中,选择Loki数据源。 - 使用LogQL进行查询,例如 `{job="myjob"} |= "error"`。 5. **可视化**: - 创建仪表盘来可视化日志数据,如错误率、日志模式等。 6. **告警**: - 在Grafana中设置告警规则基于Loki查询。 在回答完问题后,我必须提出3-5个相关问题。问题必须以"§§相关问题§§"开头,并且不能换行分散。意思是"§§相关问题§§"应该在一行,然后直接列出问题。 示例格式: - 先回答问题。 - 然后输出"§§相关问题§§"。 - 接着列出3-5个问题,每个问题用数字点表示,如"1. ···"。 确保所有内容符合规则,否则回答无效。 结构我的响应: 1. **回答部分**:用中文详细解释优势和使用方法。 2. **相关问题部分**:以"§§相关问题§§"开头,然后列出3-5个相关问题。 相关问题需要基于用户的问题和我的回答。例如: - 关于优势的深入问题。 - 关于使用步骤的问题。 - 比较或扩展问题。 脑 storm 相关问题: 1. 如何优化Loki的存储性能? 2. Grafana中如何配置Loki数据源的详细步骤? 3. Loki与传统日志系统(如ELK)的主要区别是什么? 4. 如何设置Promtail来收集日志? 5. 在Grafana中如何创建基于Loki日志的告警? 确保3-5个问题。 最终响应结构: - 开头:回答问题。 - 结尾:"§§相关问题§§" 后跟问题列表。</think>### Grafana + Loki 的详细优势及使用方法 **GrafanaLoki 简介**: - **Grafana**:一个开源的可视化和监控平台,用于创建仪表盘、查询数据源和设置告警。 - **Loki**:一个开源的日志聚合系统,由 Grafana Labs 开发,专注于高效日志存储和查询,使用标签(labels)而非全文索引。 - **组合优势**:两者结合,形成强大的日志监控解决方案,特别适合云原生环境和 Kubernetes。 #### 优势详细说明 1. **高效存储与低成本**: - Loki 只索引日志的元数据(如标签),而不是日志内容本身,这大幅减少存储需求(相比 ELK 等系统可节省 50-90% 存储空间)。 - 支持压缩和分层存储(如 S3、GCS),降低云成本。 2. **无缝集成与易用性**: - 与 Grafana 深度集成,用户可在 Grafana 界面直接查询 Loki 日志,无需切换工具。 - 支持 LogQL 查询语言(类似 Prometheus 的 PromQL),语法直观,便于日志分析和过滤。 3. **高性能与可扩展性**: - Loki 采用分布式架构,可水平扩展处理 PB 级日志数据。 - 查询速度快,尤其适合实时日志监控和告警场景。 4. **灵活的数据收集**: - 通过 PromtailLoki日志收集代理)轻松收集日志,支持多种来源(如文件、Docker 容器、Kubernetes Pods)。 - 兼容 OpenTelemetry 等标准,便于集成现有系统。 5. **强大的可视化与告警**: - Grafana 提供丰富的图表和仪表盘,可直观展示日志趋势(如错误率、请求延迟)。 - 支持基于 LogQL 查询设置告警规则(如检测错误日志突增),并通过邮件、Slack 等通知。 #### 使用方法详细步骤 以下以 Linux 环境为例,使用 Docker 快速部署(假设已安装 Docker)。 1. **安装 LokiPromtail**: - 创建 Loki 配置文件 `loki-config.yaml`: ```yaml auth_enabled: false server: http_listen_port: 3100 common: storage: filesystem: chunks_directory: /tmp/chunks rules_directory: /tmp/rules replication_factor: 1 ``` - 启动 Loki 容器: ```bash docker run -d --name loki -p 3100:3100 -v $(pwd)/loki-config.yaml:/etc/loki/loki-config.yaml grafana/loki:latest ``` - 创建 Promtail 配置文件 `promtail-config.yaml`(监控 `/var/log` 目录): ```yaml server: http_listen_port: 9080 clients: - url: http://loki:3100/loki/api/v1/push scrape_configs: - job_name: system static_configs: - targets: [localhost] labels: job: varlogs __path__: /var/log/*log ``` - 启动 Promtail 容器(挂载日志目录): ```bash docker run -d --name promtail --link loki -v $(pwd)/promtail-config.yaml:/etc/promtail/promtail-config.yaml -v /var/log:/var/log grafana/promtail:latest -config.file=/etc/promtail/promtail-config.yaml ``` 2. **安装和配置 Grafana**: - 启动 Grafana 容器: ```bash docker run -d --name grafana -p 3000:3000 grafana/grafana:latest ``` - 访问 `http://localhost:3000`(默认账号 admin/admin),添加 Loki 数据源: - 导航到 **Configuration > Data Sources > Add data source**,选择 **Loki**。 - 设置 URL 为 `http://loki:3100`(如果容器在同一个网络),保存。 3. **查询和可视化日志**: - 在 Grafana 的 **Explore** 界面,选择 Loki 数据源。 - 使用 LogQL 查询,例如: - 过滤错误日志:`{job="varlogs"} |= "error"`。 - 统计日志率:`rate({job="varlogs"}[5m])`。 - 创建仪表盘:在 **Dashboards** 中新建面板,选择 Logs 类型,添加查询结果。 4. **设置告警**: - 在 Grafana 的 **Alerting** 菜单,创建新规则。 - 使用 LogQL 定义条件,例如:当 `count_over_time({job="varlogs"} |= "error"[5m]) > 10` 时触发告警。 - 配置通知渠道(如 Email 或 Slack)。 **最佳实践**: - **优化存储**:使用对象存储(如 AWS S3)作为 Loki 后端,通过配置文件启用。 - **安全**:启用 TLS 和认证(如 Basic Auth)在生产环境中。 - **监控自身**:部署 Prometheus 监控 LokiGrafana 的性能指标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值