promtail 配置详解_基于loki+promtail+grafana技术的日志集合

一、背景和动机

近期运维工作中,随着项目的不停优化以及上线。在与后端、测试协同工作的交流中发现,为了测试以及解决项目在上线过程中或者试运行中出现的bug报错问题,开发同事对于日志的分析有着很大的需求。但是现在公司的日志查看主要是给予极少数的人员较大的权限,以及大量的需要运维人员帮忙登陆服务器查看服务日志进行下拉,复制黏贴给开发同事进行自主排错。

所以为了提高工作效率,同时也减轻运维同事的工作压力。需要引入日志系统,统一收集日志,又同时可以在页面中使得开发进行查看,极大的提高排错效率。

二、技术对比

这里主要对比两项技术ELK与loki

2.1:技术特点

ELK:

优点:

1、功能丰富,允许复杂的操作

2、对数据的处理,清洗有着巨大的优势,同时技术框架应用成熟,论坛等技术交流方法成熟。

劣势:

1、方案往往规模复杂,资源占用高,操作难。很多功能往往用不上,大多数查询只关注一定时间范围和一些简单的参数(如host、service等),使用这些解决方案有点大材小用。

2、主流的ELK(全文检索)或者EFK比较重

3、Kibana和Grafana之间切换,影响用户体验

4、倒排索引的切分和共享的成本较高

Loki:

优点:

1、Loki的架构非常简单,使用了和prometheus一样的标签来作为索引,通过这些标签既可以查询日志的内容也可以查询到监控的数据,不但减少了两种查询之间的切换成本,也极大地降低了日志索引的存储。

2、与ELK相比,消耗的成本更低,具有成本效益。

3、在日志的收集以及可视化上可以连用grafana,实现在日志上的筛选以及查看上下行的功能。

缺点:

1、技术比较新颖,相对应的论坛不是非常活跃。

2、功能单一,只针对日志的查看,筛选有好的表现,对于数据的处理以及清洗没有ELK强大,同时与ELK相比,对于后期,ELK可以连用各种技术进行日志的大数据处理,但是loki不行。

三、框架说明

Loki架构:

Loki使用了和prometheus一样的标签来作为索引,通过标签既可以查询日志的内容也可以查询到监控的数据。Loki将使用与prometheus相同的服务发现和标签重新标记库编写了的pormtail,在节点中promtail以daemonset方式运行在每个节点中通过api等,将它们发送到Loki,然loki与grafana连用,实现日志的可视化显示。

日志的存储框架:

1、Distributor:第一个接收日志的组件,Loki通过构建压缩数据块来实现批处理和压缩数据

2、Ingester:组件ingester是一个有状态的组件,负责构建和刷新chunck,当chunk达到一定的数量或者时间后,刷新到存储中去。

3、Querier:由Querier负责给定一个时间范围和标签选择器,Querier查看索引以确定哪些块匹配,并通过greps将结果显示出来。

四、部署

下载docker镜像

Docker pull grafana/loki:1.5.0

Docker pull grafana/promtail:latest

Docker pull grafana/grafana:latest

编写docker-compose文件

grafana:

image: grafana/grafana:latest //指定启动镜像

user: root

volumes:- ./grafana/provisioning/:/etc/grafana/provisioning/ //文件映射以及文件夹映射

- ./grafana/grafana.ini:/etc/grafana/grafana.ini- /data/grafana:/var/lib/grafana

ports:- 3000:3000 //端口映射

network_mode: 'host' //所属网络

loki:

image: grafana/loki:1.5.0 //启动镜像定义

container_name: loki

restart: always

ports:- "3100:3100"volumes:- /root/elk/loki-local-config.yaml:/etc/loki/loki-local-config.yaml

network_mode:'host'promtail:

image: grafana/promtail:latest

container_name: promtail

restart: always

volumes:- /root/elk/promtail-docker-config.yaml:/etc/promtail/config.yml- /opt:/opt //该映射地址可以我定义为日志存放地址1

- /var/log:/var/log //该映射地址可以我定义为日志存放地址2

network_mode: 'host'

编写promtail与loki的启动配置文件

Promtail的配置文件 vim /root/elk/promtail-docker-config.yaml

server:

http_listen_port: 9080

grpc_listen_port: 0

positions:

filename: /tmp/positions.yaml # 游标记录上一次同步位置

sync_period: 5s #10秒钟同步一次

clients:

- url: http://192.168.18.21:3100/loki/api/v1/push

scrape_configs:

- job_name: php-log

static_configs:

- targets:

- localhost

labels:

job: php_logs

__path__: /opt/loki/php/*log # docker运行时已经把宿主机的目录 /opt/

映射给了promtail 容器的/opt/,所以这个地方可以直接访问log文件

- job_name: tomcat-log

static_configs:-targets:-localhost

labels:

job: tomcat_logs

__path__:/opt/loki/tomcat/*log # docker运行时已经把宿主机的目录 /opt/ 映射给了promtail 容器的 /opt/,所以这个地方可以直接访问log文件

Loki配置文件 vim /root/elk/loki-local-config.yaml

参考官方

具体实例如下:

auth_enabled: falseserver:

http_listen_port:3100ingester:

lifecycler:

address:192.168.18.21ring:

kvstore:

store: inmemory

replication_factor:1final_sleep: 0s

chunk_idle_period: 5m

chunk_retain_period: 30s

schema_config:

configs:- from: 2020-09-02store: boltdb

object_store: filesystem

schema: v11

index:

prefix: index_

period: 168h

storage_config:

boltdb:

directory:/tmp/loki/index

filesystem:

directory:/tmp/loki/chunks

limits_config:

enforce_metric_name:falsereject_old_samples:truereject_old_samples_max_age: 168h

chunk_store_config:

max_look_back_period:0table_manager:

chunk_tables_provisioning:

inactive_read_throughput:0inactive_write_throughput:0provisioned_read_throughput:0provisioned_write_throughput:0index_tables_provisioning:

inactive_read_throughput:0inactive_write_throughput:0provisioned_read_throughput:0provisioned_write_throughput:0retention_deletes_enabled:falseretention_period:0

启动容器

Docker-compose up -d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Redis核心技术与实战》学习总结(2)

【Redis】| 总结/Edison Zhou1上一篇的遗留问题上一篇总结了一个KV数据库的基本架构 和 Redis的底层数据结构概览,重点总结了Sorted Set的两个数据结构的切换,但没有介绍List的两个数据结构的切换,因此本文试着总结一下。这里先直接给出答案&…

【转】sqlserver游标概念与实例全面解说

引言 我们先不讲游标的什么概念,步骤及语法,先来看一个例子: 表一 OriginSalary 表二 AddSalary 现在有2张表,一张是OriginSalary表--工资表,有三个字段0_ID 员工…

洛谷2296 寻找道路

题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通。 2 .在满足…

奇迹mu选区后就一直显示连接服务器,奇迹mu双开

《奇迹mu》双开方法 EX702双开的方法,今天小编为大家带来了奇迹MU双开方法,为大家解决一些双开中的问题,下面就一起来看看EX702双开的问题吧!奇迹mu双开:接下来是这样:1、 复制2个客户端,放在不…

第十一章:【UCHome二次开发】功能修改

有些功能的修改涉及到了流程或数据需求的变动,这时候简单的修改模板文件已经无法解决问题,而是需要修改对应的流程和数据处理代码来完成。一般处理程序文件位于/source文件夹下。具体的代码修改就是根据功能逻辑来调整php代码或是sql语句,这里…

华为鸿蒙OS 2.0正式发布!明年华为手机将全面支持!

全世界只有3.14 % 的人关注了爆炸吧知识9 月 10 日,在华为开发者大会 2020 上,华为消费者业务 CEO 余承东宣布推出鸿蒙 OS 2.0 版本(HarmonyOS 2.0)。鸿蒙 OS 的代码也在今天下午HDC 2020 大会结束后的 18:18 正式开放。鸿蒙 OS 开…

echo字符集 shell_Xshell 能显示中文 但输入的中文都变成了问号

我的Xshell 本来可以输入中文,但是不知道怎么的输入中文却变成问号了解决方法:点击控制面板,然后将除自己使用的中文输入之外的其他语言、输入法等先全部删除,然后再试一下,如果可以输入中文了,可适当添加一…

微软认真聆听了开源 .NET 开发社区的炮轰: 通过CLI 支持 Hot Reload 功能

微软近日激怒了开源.NET社区,起因是它删除了开源.NET的一项旗舰功能,以提升Visual Studio 的吸引力,尤其是针对与Visual Studio颇有渊源的跨平台源代码编辑器Visual Studio Code。好消息是微软听取了社区的声音,恢复了通过CLI支持…

System.Xml名称空间下的支持DOM的类型

最主要的常用的类型 XmlNode 是DOM结构中的所有类型的基础类型,它定义了所有XML节点的通用属性和方法,是XMLDOM的基础。它具有一个ChildNodes属性,表示它所包含的子XML节点。 XmlAttribute 表示XML属性,它只保存在XmlElement的Att…

烽火服务器查询服务器型号,烽火服务器应该起的进程

烽火服务器应该起的进程 内容精选换一换IDE Daemon模块提供接口给Matrix和Framework调用,Matrix通过这些接口可以实现将DVPP预处理结果数据发送到IDE-daemon-hiai进程所在的服务器,IDE-daemon-hiai将结果数据写到文件中;Framework通过调用这些…

(译)元素浮动的那些事儿

原文:http://bitsofco.de/2015/how-floating-works/,作者 Ire Aderinokun 发表于 2015 年 8 月 11 日。 尽管我们现在用浮动布局已经很少了,但是在一些特殊的需求下,它仍然是唯一可行的解决方案。在这些少见的需求中,浮…

session机制和cookie机制

一、cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session 机制可能需要…

无法定位程序输入点dxgiget_美国ABB TZIDC 智能定位器调试方法

一、ABBTZID-C 智能定位器安装及操作气路连接使用与定位器气源端口处标识的标准接口连接气源连接定位器的输出与气动执行器的气缸电气连接根据下列接线端子图以及设计要求进行相应的配线(一般只需11,-12,31,-32)11-12控制信号输入端子(DC4---…

这个黑科技小音箱,不用连蓝牙、一触即播

▲ 点击查看以前用蓝牙音箱,都要打开蓝牙找半天,有时还找不到对应的音箱。找到了,连接又很 …… 漫长 ……一句「请等待蓝牙配对」重复好几遍还没连上,整个人都不好了。而今天介绍的这个开物灵犀感应音箱,不用连蓝牙&a…

Win11运行安卓超详细教程!芜湖起飞!

一、前提Windows 11 版本号为 Build 22000.xxx 或更高版本。您的电脑硬件 BIOS/UEFI 支持虚拟化功能。二、支持本教程适用于 Windows 11 正式版和预览版,包括 Dev 频道、Beta 频道和 Release Preview 频道。本教程适用于搭载 Intel 和 AMD 等处理器的 Windows 11 电…

精品教程--Android实战系列源码与教程

下载源码 知识技能概要: 1. 此套为零基础源码与教程 2. 包括了Android应用开发所有技术 3. 配套2011QQ效果实现项目源码 4. 堪称最详细中文源码注释 ...... 详细介绍: 1. 零基础源码与教程 本套源码与教程,由我们具有丰富开发经验的高级程师针对需要学习…

http服务器异步响应,python – 具有异步响应的Twisted http服务器,其中请求必须等待数据变为可用或超时...

我正在尝试编写一个简单的http服务器来处理在数据结构中查找响应或超时的异步请求:>请求到达>时间>如果回复,请将其退回>如果超时,则返回超时消息我是新手,我想知道做异步响应的最佳方法是什么.我看了some twisted Deferred docs和callLater,但我不清楚…

linux系统将python升级到2.7.10版本

下载地址:https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz下载文件到指定目录[rootoperations ~]# cd /usr/local/[rootoperations local]# wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz--19:12:59-- https://www.python.org/ft…

windows系统自动化设置

为减轻windows日常维护工作量,可使用以下本人115网盘工具: 1、远程唤醒工具(远程唤醒.rar,绿色程序) 该工具方便运维人员在节假日及日常开机时,无需进入机房而实现远程开机,目前根据公司情况只能实现同网段机器远程唤醒…

jmeter xml 请求_Jmeter学习笔记(十六)——HTTP请求之content-type

一、HTTP请求Content-Type常见的媒体格式类型如下:text/html : HTML格式text/plain :纯文本格式text/xml : XML格式image/gif :gif图片格式image/jpeg :jpg图片格式image/png:png图片格式以appl…