Promtail + Loki + Grafana 日志监控系统搭建

本文介绍了如何在CentOS 8环境下使用Promtail、Loki与Grafana构建一套完整的日志监控系统。具体步骤包括安装与配置Loki和Promtail来收集和存储日志,以及通过Grafana展示这些日志数据。

环境介绍

本次搭建环境为centos8,使用两台服务器,其中,机器一为应用服务器,另一台为功能服务器,部署java应用及Promtail ,功能服务器搭建功能为loki+Grafana

部署应用服务器

安装java,运行java应用,默认日志路径为/home/log/ 路径下
(这个路径请记住,在Promtail配置时需要配置日志路径)

loki与promtail 安装

loki下载地址 https://github.com/grafana/loki 选择logcli-linux-amd64.zip安装包下载。同步下载promtail-linux-amd64.zip。
下载好文件后,使用ftp将文件上传至对应安装目录下,使用unzip路径解压

unzip loki-linux-amd64.zip
unzip promtail-linux-amd64.zip

解压好两个安装包后,需要进行loki与promtail 的启动,这两者的安装包内都没有配置文件,需要手动生成配置文件进行启动
https://grafana.com/docs/loki/latest/installation/local/

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

第一个为loki的配置文件,第二为promtail的配置文件,下载两者的配置文件进行修改

loki配置文件

auth_enabled: false

server:
  http_listen_port: 3100
  grpc_listen_port: 9096

common:
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: inmemory

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

promtail配置文件

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml
//此处对应loki的服务地址,需要将此地址改为搭建服务的服务器地址
clients:
  - url: http://localhost:3100/loki/api/v1/push

scrape_configs:
//此处对应grafana界面中的标签名
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      //这个对应日志存储路径,
      __path__: /var/log/*log

启动

将上一步的配置文件根据自己的习惯保存为yaml文件,放在对应的安装路径下,执行以下命令

//需要先执行loki的启动命令,因为promtail 启动时,就会开始日志的推送,如果loki未启动,就会报错
./loki-linux-amd64 -config.file=loki.yaml 
./promtail-linux-amd64 --config.file=promtail-local-config.yaml

Grafana安装

本次安装采用yum 方式进行安装

yum install grafana

安装完成后,设置开机自启

[root@localhost ~]# systemctl enable grafana-server
Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.
[root@localhost ~]# systemctl start grafana-serve

设置完成后,重启服务器,输入本机ip:3000
grafana运行图
在这里插入图片描述
到此,grafana安装结束,下面进行配置

grafana配置

  1. 配置数据源

    点击addDataSource ,输入loki进行选择
    在这里插入图片描述
    配置url,此处的url为你搭建loki服务的服务器地址,端口默认3100
    在这里插入图片描述
    配置完点击save & test
    在这里插入图片描述
    出现该提示,代表配置成功。
    在这里插入图片描述
    此处的标签对应promtail中配置文件的标签
    在这里插入图片描述
    可以看到,应用服务器的日志已经刷新到loki中,至此,由Promtail + Loki + Grafana 搭建的日志监控系统搭建完毕,目前该教程对应的是单应用的服务,后续会出集群的教程,欲知后事如何,且听下回分解
    下回已经有了
    集群的日志监控系统基础配置及nginx负载均衡配置
<think>嗯,用户正在寻找关于Promtail+Loki+Grafana+Prometheus的技术搭建经验或相关专业人员。从引用材料看,用户显然在搭建云原生监控系统,特别关注多集群部署场景下的日志采集和监控方案。用户提供的引用很有价值,它们详细说明了这些组件的架构集成方式:Promtail负责日志采集,Loki处理日志聚合,Grafana统一展示,而Prometheus则专注于指标监控。 用户可能是个运维工程师或架构师,正在设计企业级监控系统。ta的需求很明确:要实用经验而非理论说明。考虑到实际搭建中的常见痛点,比如多集群配置、标签管理、存储优化等,ta应该需要具体的避坑指南和性能调优建议。 上次对话中用户提到"动态服务发现""避免人工配置"等关键词,说明自动化部署和可扩展性是ta的核心诉求。因此分享经验时要突出:如何用Promtail自动发现容器日志Loki如何利用Prometheus的标签体系实现无缝关联查询,以及Grafana如何统一展示日志和指标。 用户没有明确说环境是Kubernetes,但从组件选择看肯定是云原生场景。应该补充说明Helm部署技巧和CRD配置要点——虽然用户没直接问,但这在实操中至关重要。另外ta可能低估了存储设计的复杂度,需要强调Loki的chunk存储配置对性能的影响。 准备推荐社区资源时,考虑筛选真正有生产实践案例的教程,避开那些只讲基础配置的表面文章。特别要包括多租户权限控制的内容,这在企业部署时往往是刚需但容易被忽视。 </think>基于您对Promtail+Loki+Grafana+Prometheus(简称PLG+P)搭建经验的需求,结合引用信息和行业实践,整理以下关键经验及资源指引: --- ### **一、实战搭建经验总结** #### **1. 架构设计要点** - **分层采集**(引用[2]) 采用`Promtail`作为日志采集代理,部署在每个节点上实时抓取容器/应用日志,通过`scrape_config`动态发现Pod路径,避免手动配置。 - **中心化聚合**(引用[1][3]) `Loki`接收Promtail日志后,仅索引标签(如`job=nginx, cluster=A`),原始日志以压缩块存储于对象存储(S3/MinIO),显著降低成本(引用[3])。 - **统一可视化** `Grafana`配置Loki日志源、Prometheus为指标源,实现**单面板关联查询**(如:先查Prometheus异常指标,联动Loki定位日志)。 #### **2. 关键配置技巧** | 组件 | 配置项 | 最佳实践 | |------------|-------------------------|--------------------------------------------------------------------------| | **Promtail** | `scrape_configs` | 使用Kubernetes服务发现自动获取Pod日志路径:<br>```relabel_configs: [source_label: __meta_kubernetes_pod_label_app]``` | | **Loki** | `storage_config` | 对象存储优化:设置`chunk_target_size=1MB`提升查询效率(引用[3]) | | **Prometheus**| 日志/指标关联 | 在Loki中配置`promtail_client_external_labels`添加集群标识(如`cluster=A`) | #### **3. 多集群部署方案**(引用[1]) ```mermaid graph LR subgraph Cluster A A_Promtail --> A_Loki A_Prometheus end subgraph Cluster B B_Promtail --> B_Loki B_Prometheus end A_Loki --> Central_Grafana B_Loki --> Central_Grafana A_Prometheus --> Central_Grafana B_Prometheus --> Central_Grafana ``` > **注意**:每个集群独立部署Loki+Promtail,中心Grafana通过多数据源聚合查询,避免单点故障。 --- ### **二、经验获取渠道** #### **1. 资深社区资源** - **Grafana 官方文档** [Loki部署指南](https://grafana.com/docs/loki/latest/installation/)含Helm/Kustomize模板,涵盖多集群配置示例。 - **GitHub 实战项目** 参考开源项目如`kube-prometheus-stack`,集成Prometheus-Operator与Loki栈:[项目链接](https://github.com/prometheus-operator/kube-prometheus) - **中文技术社区** - **极客时间专栏**:《云原生监控与日志系统实践》详解PLG+P架构 - **知乎专栏**:搜索“Loki多集群日志平台建设”获取国内落地案例 #### **2. 寻找专业人员** | 平台 | 关键词建议 | 优势 | |---------------|-------------------------------|-----------------------------| | **LinkedIn** | “Observability Engineer” +Loki” | 定位外企云原生监控专家 | | **稀土掘金** | “Grafana Loki 实战” | 联系国内大厂日志平台开发者 | | **Grafana社区**| 论坛提问标签`#multi-cluster` | 官方工程师直接解答(英文) | --- ### **三、避坑指南** 1. **标签爆炸问题** **避免**:为日志添加动态标签(如`pod_id`)导致索引膨胀。 **方案**:固定标签仅保留业务维度(服务名、环境),过滤高频变量(引用[3]存储优化)。 2. **Promtail丢失日志** **根因**:节点资源不足时Promtail队列积压。 **解决**:调整`promtail_config: client: batchwait: 1s`(降低等待时间)+ 限制采集速率。 3. **跨集群权限管控** 采用`Grafana Enterprise`的[RBAC](https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/)功能,按集群分配数据源访问权限。 --- > 以上经验源于生产环境部署案例及社区最佳实践[^1][^2][^3]。建议从单集群测试开始,逐步扩展至多集群架构。 ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋分渔火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值