你们公司用什么查看日志?

简介: 你们公司用什么查看日志?

目录


前言


说起查看日志排查 bug 的方式,早些年的时候我都是直接登陆 linux 服务器直接查看,或者下载下来查看


随着微服务的兴起,服务被越拆越小,服务部署也是集群部署,可能涉及到的服务器数量就有好几十台了,这样的话一台台服务器去登陆查看就感觉非常麻烦了。

后面我尝试着去寻找别的解决办法,发现了一个叫 finderweb 的程序员查看日记神器,用了一段时间,感觉也还可以,感兴趣的可以访问如下链接,自行安装尝试(http://www.finderweb.net/

再后来,就是用的 elk 了, elk 是一款功能非常强大的日志收集分析统计系统,基于 es ,但是同时也带来了不小的资源开销和高成本的维护弊病(elk日志平台安装教程在历史文章中),有点太重了。其实对于中小型的公司来说,对日志系统的要求并不多,开发人员更希望的是直接给我想要查看的服务日志就行,越简单越好。

聊到这里,阿里云上也有个叫 sls的日志服务,听说好用,但是要花钱啊。

那么接下来我就来安利一款日志系统的弄潮儿:轻量级日志系统 Loki。不用花钱,只占用很少的服务器资源,而且安装运维很简单。

1.Loki介绍

看看 Loki 的官方文档介绍:


1.png

Loki 日志系统的组成架构图:

2.png

**从上图可以发现有以下三剑客组成:

**

  • Loki:主服务器,负责存储日志和处理查询。
  • Promtail:代理,负责收集日志并将日志数据发送给 Loki。
  • Grafana:查询界面,用于查询和显示日志。


Loki 为了降低全文索引资源带来的开销,只对标签进行了索引。查询的方式是把查询分解成较小的分片,我们可以理解为多线程的 grep 查询,效率不差的。

**接下来就跟着我安装实践一把,喝两杯水的功夫即可。

**


2.Loki安装

1.下载安装包

curl -O -L "http://github.com/grafana/loki/releases/download/v2.2.0/loki-linux-amd64.zip"


2.解压

unzip loki-linux-amd64.zip


3.赋予可执行权限

chmod a+x loki-linux-amd64


4.下载配置文件

wget https://github.com/grafana/loki/blob/main/cmd/loki/loki-local-config.yaml
//文件名太长,改个名字
mv loki-local-config.yaml loki.yml


5.编辑loki配置,配置数据保留策略


5.png

保留14天


6.启动Loki

nohup ./loki-linux-amd64 -config.file=loki.yml > /data/loki/logs/loki.log 2>&1 &
//防问一下是否启动成功
curl http://localhost:3100/metrics


3.promtail安装

在需要收集日志的服务器上都要安装promtail

1.下载安装包


curl -O -L "http://github.com/grafana/loki/releases/download/v2.2.0/promtail-linux-amd64.zip"

2.解压

unzip promtail-linux-amd64.zip


3.赋予可执行权限

chmod a+x promtail-linux-amd64


4.下载并编辑配置文件

wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml
//文件名太长,改个名字
mv promtail-local-config.yaml promtail.yml

编辑并修改3.png


5.启动promtail

nohup ./promtail-linux-amd64 -config.file=promtail.yml > /data/loki/logs/promtail.lo


4.grafana配置Loki

grafana 的安装可参考历史文章中的《手把手教你搭建一个监控告警平台》**

1.在 grafana 上添加 Loki 数据源**


4.png

6.png

7.png

8.png


2.到这一步就配置完成了,可以直接查看日志了

这个 job 就是刚刚 promtail.yml 配置文件中定义的 job,直接输入:{job=“uc-prod-96”} 按时间查询即可8.png9.png

感兴趣的话可以学一下 LogQL 语法,支持各种花里胡哨的过滤查询方式。

当然我们用的最多的方式应该是以下两种,已经满足了我们的日常使用场景:


// 1.例如查询包含"不高兴就喝水"的日志
{job="job"}|= "不高兴就喝水"
// 2.支持多个条件过滤
{job="job"} |= "error" != "timeout"

多的方式应该是以下两种,已经满足了我们的日常使用场景:**

// 1.例如查询包含"不高兴就喝水"的日志
{job="job"}|= "不高兴就喝水"
// 2.支持多个条件过滤
{job="job"} |= "error" != "timeout"
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
SQL 存储 关系型数据库
异构数据库、异构数据源、分布式数据库三者的辨析区别
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。
|
自然语言处理 数据中心
Scaling LLM Test-Time Compute Optimally: 一种更有效的方法
【10月更文挑战第14天】本文探讨了大型语言模型(LLMs)在测试时通过增加计算资源来提升性能的可能性。研究发现,通过优化测试时计算的分配,特别是采用基于过程的验证器搜索和自适应更新响应分布的方法,LLM可以显著提高对复杂问题的应对能力,甚至在某些情况下超越更大规模的模型。论文提出了“计算最优”策略,旨在根据问题难度自适应调整计算资源,以最大化性能提升。未来工作将聚焦于增强测试时计算缩放、快速评估问题难度及实现自我改进循环。
677 6
|
网络协议 Ubuntu Linux
在Linux中,如何使用NFS和Samba共享文件和目录?
在Linux中,如何使用NFS和Samba共享文件和目录?
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
1232 2
|
开发者
Markdown:解放排版,简洁高效的文字创作神器!
Markdown 是一种轻量级标记语言,以易读易写著称,常用于生成 HTML 页面。其简洁的语法加速了排版,尤其在写作、博客和文档领域广泛应用。虽然不擅长复杂排版,但能轻松实现字体大小调整、插入表格、图片和超链接等。Markdown 通过键盘快捷操作,避免了 Word 等软件的繁琐设置。本文将深入讲解 Markdown 语法,助你提升效率。Markdown 适合快速学习,兼容各种文本编辑器,支持导出多种格式,广泛应用于 GitHub 和多个在线平台。
1020 0
|
关系型数据库 MySQL 数据库
两种数据库MySQL 与 PostgresSQL 的 全面比较
两种数据库MySQL 与 PostgresSQL 的 全面比较
2772 0
|
Java 容器
SpringBoot中的yml文件中读取自定义配置信息
SpringBoot中的yml文件中读取自定义配置信息
515 0
|
开发工具 git Windows
Mac - git 安装 gitk(详细流程)
Mac - git 安装 gitk(详细流程)
1411 0
|
NoSQL 网络协议 Redis
|
Java 调度
【Java面试】Runnable和Thread比较
【Java面试】Runnable和Thread比较
474 0
【Java面试】Runnable和Thread比较

热门文章

最新文章