promtail组件是采用docker方式运行的,配置文件也是在docker容器中,宿主机中没有挂载点,这就有问题了。

宿主机中没有挂载配置文件,也就没法修改,登录promtail的docker容器中后,没法使用nano,vi或vim修改这个配置文件



在进一步延伸就是监控的是promtail的docker容器中/var/log/*log的文件,没法监控容器中的其他文件或者宿主机中的文件。

不过倒是可以通过修改docker-compose.yaml文件把宿主机的存放日志的目录给挂载到容器中的/var/log/路径下,从而实现监控宿主机日志文件的办法

但是这种办法也是只能监控宿主机/var/log/目录下文件是log的文件,根据容器中配置文件来决定的:/var/log/*log

不通过挂载的方式有没有办法能监控宿主机中的其他文件?

或者有啥办法能修改容器中的/etc/promtail/config.yml配置文件?

暂时想到两种办法:

  1. docker-compose.yaml文件中设置挂载容器使用的config.yml配置文件

    延伸一下,除了挂载容器使用的配置文件外,还需要挂载宿主机中的日志路径

promtail使用的配置文件,在宿主机中:/tmp/config.yml

注意:这个文件内容,只修改scrape_configs中labels.job和__path__,其他部分跟promtail容器中原来使用的保持一致。

当然scrape_configs可以添加多个,这里就添加一个作为示例

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: system
static_configs:
- targets:
- localhost
labels:
job: message
__path__: /var/log/messages

docker-compose.yaml 文件内容:

version: "3"

networks:
loki: services:
loki:
image: grafana/loki:2.0.0
ports:
- "3100:3100"
command: -config.file=/etc/loki/local-config.yaml
networks:
- loki promtail:
image: grafana/promtail:2.0.0
volumes:
- /tmp/config.yml:/etc/promtail/config.yml # 挂载宿主机中的指定文件作为promtail容器的配置文件
- /var/log/messages:/var/log/messages # 挂载宿主机中的日志文件,这个要跟/tmp/config.yml文件中的__path__中的这个保持一致,否则无法吧宿主机日志挂载到promtail容器中,当然也就检测不到这个文件,虽然配置文件中有配置
command: -config.file=/etc/promtail/config.yml
networks:
- loki grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
networks:
- loki

启动后查看效果,正好跟/tmp/config.yml文件中配置的一样

采用这种办法可以解决上述问题

  1. 不采用docker容器方式部署了,采用二进制方式,启动的时候指定使用的配置文件

参考地址:https://www.cnblogs.com/sanduzxcvbnm/p/14234953.html

采用这种办法也能解决上述问题

关于Loki中promtail组件收集日志的几点思考的更多相关文章

  1. centos7搭建安装loki、promtail、Grafana日志系统

    loki.promtail.Grafana安装包 链接:https://pan.baidu.com/s/1vkSa_KYrXM0UEI8i42KdaA 提取码:4d4q 如果安装失败或者下载速度慢可以 ...

  2. linux中hadoop组件启动日志存放问题

    如果是nohup xxxx &的话会在当前目录下生成一个nohup文件存放当前出现所有的日志,&表示后台启动: 当然你也可以将日志存放在>/dev/null表示当前日志存放的位置 ...

  3. 搭建Loki、Promtail、Grafana轻量级日志系统(centos7)

    搭建Loki.Promtail.Grafana轻量级日志系统(centos7)--简称PLG 需求 公司项目采用微服务的架构,服务很多,每个服务都有自己的日志,分别存放在不同的服务器上.当查找日志时需 ...

  4. docker容器使用loki收集日志

    docker-compose安装loki套件(loki+promtail+grafana) loki进行日志聚合处理  类似elk中的es promtail是日志收集,类似elk中的logstash ...

  5. 在.NET Core中使用Exceptionless分布式日志收集框架

    一.Exceptionless简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF, ...

  6. filebeat收集日志到elsticsearch中并使用ingest node的pipeline处理

    filebeat收集日志到elsticsearch中 一.需求 二.实现 1.filebeat.yml 配置文件的编写 2.创建自定义的索引模板 3.加密连接到es用户的密码 1.创建keystore ...

  7. 开源组件ELK日志系统配置与管理

    ELK日志系统介绍 开源实时日志分析ELK平台能够完美的解决我们上述的问题,ELK由ElasticSearch.Logstash和Kiabana三个开源工具组成.官方网站:https://www.el ...

  8. 探索 OpenStack 之(17):计量模块 Ceilometer 中的数据收集机制

    本文将阐述 Ceilometer 中的数据收集机制.Ceilometer 使用三种机制来收集数据: Notifications:Ceilometer 接收 OpenStack 其它服务发出的 noti ...

  9. nginx日志切割并使用flume-ng收集日志

    nginx的日志文件没有rotate功能.如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件.第一步就是重命名日志文件,不用担心重命名后nginx找不到日 ...

随机推荐

  1. Qucs初步使用指南(不是multism)

    众所周知,Multism是一款强大的电路仿真软件,学习电子电路的同学都会接触到. 但是,这软件不支持Linux.(这就很魂淡了啊) 我的主力机是Linux,不能进行电路仿真成了学习的最大障碍. 使用w ...

  2. 图像文本跨模态细粒度语义对齐-置信度校正机制 AAAI2022

    论文介绍:Show Your Faith: Cross-Modal Confidence-Aware Network for Image-Text Matching (跨模态置信度感知的图像文本匹配网 ...

  3. ActiveMQ、RabbitMQ、RocketMQ、Kafka四种消息中间件分析介绍

    ActiveMQ.RabbitMQ.RocketMQ.Kafka四种消息中间件分析介绍 我们从四种消息中间件的介绍到基本使用,以及高可用,消息重复性,消息丢失,消息顺序性能方面进行分析介绍! 一.消息 ...

  4. 对象数组的foreach循环操作和集合容器

    ForEach标签可以循环数组,list,map集合 采用 foreach循环遍历 ,并每次循环允许执行一次回调函数 for (容器中元素类型 临时变量: 容器变量) { System.out.pri ...

  5. linux 判断变量是否相等方法

    echo $? 输出上一个命令执行成功与否的情况 1表示失败 0 表示成功 test检测文件类型和比较值 有空格时等号才是判断,否则为赋值

  6. PHP进阶玩法

    1. 删除不必要的模块. PHP随带内置的PHP模块.它们对许多任务来说很有用,但是不是每个项目都需要它们.只要输入下面这个命令,就可以查看可用的PHP模块: # php - m  一旦你查看了列表, ...

  7. Win10系统下基于Docker构建Appium容器连接Android模拟器Genymotion完成移动端Python自动化测试

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_196 Python自动化,大概也许或者是今年最具热度的话题之一了.七月流火,招聘市场上对于Python自动化的追捧热度仍未消减,那 ...

  8. 技术分享 | MySQL Group Replication集群对IP地址的限制导致的一些问题与解决办法

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 1. 遇到问题 测试人员小玲准备在docker环境中部署MGR集群进行一些测试,她有三个容器,容器IP分别是: 172.3 ...

  9. P1980 计数问题 - 记录

    P1980 计数问题 题目描述 试计算在区间 1 到 n的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到11中,即在 1,2,3,4,5,6,7,8,9,10,11中,数字1出 ...

  10. 论文解读(g-U-Nets)《Graph U-Nets》

    论文信息 论文标题:Graph U-Nets论文作者:Hongyang Gao, Shuiwang Ji论文来源:2019,ICML论文地址:download 论文代码:download 1 Intr ...