OpenShift 4 - 可观测性之 OpenShift Logging - Loki(附视频)

news2024/10/7 18:25:06

《OpenShift / RHEL / DevSecOps 汇总目录》
说明:本文已经在支持 OpenShift 4.12 + OpenShift Logging Operator 5.7.2 + Loki Operator 5.7.2 的环境中验证

文章目录

  • OpenShift 基于 Loki 的日志架构
  • 安装配置基于 Loki 的日志环境
  • 安装 OpenShift Logging Operator 和 Loki Operator
    • 配置对象存储
    • 配置基于 Loki 的 OpenShift Logging
  • 视频
  • 参考

OpenShift 基于 Loki 的日志架构

在 OpenShift 4.10 以后开始逐步用基于 Vector+Loki 的日志架构替换原有基于 EFK 的日志架构。之所以用 Loki 替换 EFK 主要是因为 Loki 有更加轻量级的运行环境。这是因为在 EFK 架构中 Elasticsearch 会对传入的日志记录进行完全索引,而 Loki 只对一些固定的标签进行索引,并将更复杂的解析工作推迟到日志被存储之后,因此 Loki 不但占用空间更小,而且还可以更快速地收集日志。
在这里插入图片描述
OpenShift 基于 Loki 的日志架构主要使用了 2 个组件:Vector 和 Loki。其中 Vector 用来收集日志,Loki 作为存储日志,另外访问日志页面也直接集成到了 OpenShift 控制台中。需要注意的是 Loki 必须使用对象存储来保存日志。

安装配置基于 Loki 的日志环境

安装 OpenShift Logging Operator 和 Loki Operator

  1. 使用默认配置安装 OpenShift Logging Operator,该 Operator 将会安装在 openshift-logging 命名空间中。
  2. 使用默认配置安装 Loki Operator,该 Operator 将会安装在 openshift-operators-redhat 命名空间中。
    在这里插入图片描述

配置对象存储

本文使用 AWS S3 作为 Loki 使用的对象存储。

  1. 执行命令创建访问 AWS 的凭证文件,其中我们会用到 us-east-1 区的 AWS S3 服务。
$ aws configure
AWS Access Key ID [None]: AKIAVROBYTZYQBBNWLF6
AWS Secret Access Key [None]: 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
Default region name [None]: us-east-1
Default output format [None]: json
 
$ cat .aws/credentials
[default]
aws_access_key_id = AKIAVROBYTZYQBBNWLF6
aws_secret_access_key = 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
  1. 在 AWS 上创建 S3 存储的 bucket。
$ GUID=`hostname | cut -d. -f2`
$ aws --profile default s3api create-bucket --bucket $GUID --region us-east-1 --create-bucket-configuration LocationConstraint=us-east-1
{
    "Location": "/j68pw"
}
  1. 基于以下 YAML 创建访问 AWS bucket 的 Secret 对象。
apiVersion: v1
kind: Secret
metadata:
  name: lokistack-dev-s3
  namespace: openshift-logging
stringData:
  access_key_id: w3EDfSERUiLSAEXAMPLE (Replace with your aws creds)
  access_key_secret: mshdyShDTYKWEywajsqpshdNSUWJDA+1+REXAMPLE (Replace with your aws creds)
  bucketnames: j68pw (we called it j68pw in our example)
  endpoint: https://s3.us-east-1.amazonaws.com/
  region: us-east-1

配置基于 Loki 的 OpenShift Logging

  1. 在 Loki Operator 中根据以下 2 个截图创建一个 Loki Stack 对象。
    在这里插入图片描述

在这里插入图片描述

上述配置过程会生成以下 YAML:

apiVersion: loki.grafana.com/v1
kind: LokiStack
metadata:
  name: loki
  namespace: openshift-logging
spec:
  size: 1x.extra-small
  storage:
    schemas:
    - version: v12
      effectiveDate: "2022-06-01"
    secret:
      name: lokistack-dev-s3
      type: s3
  storageClassName: gp3-csi 
  tenants:
    mode: openshift-logging
  1. 基于以下 YAML,创建一个基于 lokistack 存储和 vector 收集器的 ClusterLogging 对象。
apiVersion: logging.openshift.io/v1
kind: ClusterLogging
metadata:
  name: instance
  namespace: openshift-logging
spec:
  logStore:
    type: lokistack
    lokistack:
      name: loki
  collection:
    logs:
      type: vector
  1. 在完成后可在 OpenShift 的 “开发” 视图中看到部署运行的组件。
    在这里插入图片描述
  2. 在OpenShift 的 “管理员” 视图的 “观察” 菜单中会出现 “Logs” 。点击进入 Logs 可以看到集群日志。
    在这里插入图片描述
  3. 为了能获得并访问 Auditor 日志,需根据以下 YAML 创建 ClusterLogForwarder 对象。
apiVersion: logging.openshift.io/v1
kind: ClusterLogForwarder
metadata:
  name: instance
  namespace: openshift-logging
spec:
  pipelines:
  - name: all-to-default
    inputRefs:
    - infrastructure
    - application
    - audit
    outputRefs:
    - default

视频

视频

参考

https://github.com/OpenShiftDemos/openshift-ops-workshops/blob/ocp4-prod/workshop/content/logging.adoc
https://github.com/OpenShiftDemos/openshift-ops-workshops/blob/ocp4-prod/workshop/content/logging-with-loki.adoc
https://www.redhat.com/en/topics/devops/what-is-observability
https://landscape.cncf.io/guide#observability-and-analysis
https://cloud.redhat.com/blog/whats-new-in-red-hat-openshift-monitoring-4.13-logging-5.7-and-distributed-tracing-2.8
https://docs.openshift.com/container-platform/4.13/logging/cluster-logging.html
https://github.com/OpenShiftDemos/openshift-ops-workshops/blob/ocp4-prod/workshop/content/logging-with-loki.adoc
https://videos.learning.redhat.com/media/OpenShift%20Logging%20-%20Technical%20Enablement%20-%20Log-based%20Alerts/1_fl713aj5

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

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

相关文章

工地能耗监测系统

随着全球气候变化的影响日益严重,环保意识逐渐深入人心,绿色建筑和节能减排成为了建筑行业的热门话题。而在建筑工地中,能耗监测成为了一项不可或缺的任务。为了更好地实现能耗监测,工地能耗监测系统应运而生。本文将从以下几个方…

每日一练 | 华为认证真题练习Day72

1、Eth-Trunk两端的负载分担模式可以不一致。 A. 对 B. 错 2、如下图所示的网络,交换机使用机接口和路由器的子接口对,则以下哪个配置可以实现这种需求? A. interface Vlanif10 ip address 10.0.12.1 255.255.255.0 # interface Gigabit…

在Rust中使用torch------day1环境配置Yolov8推理

现在不管什么专业,貌似多多少少都得和深度学习扯上点关系才好写文章(水文章).其中最常用的深度学习框架应该是tensorflow,pytorch这些python的三方库,既然最近在学Rust那就来借机讲讲torch的Rust绑定—tch-rs 其实tch实际上是基于libtorch的封装,而不是pytorch.因此使用起来如…

云原生——什么是云原生数据库?

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 前言 突然间,云原生数据库就火了。根据IDC《2021年下半…

WinForm中使用AnyCAD控件

一、添加DLL程序集 AnyCAD.Foundation.Net.dll AnyCAD.Presentation.Net.dll AnyCAD.Exchange.Net.dll 二、初始化控件 1.首先创建一个窗体 2.在窗体上放置一个Panel用来放置三维控件 3.初始化控件 完整代码如下: using AnyCAD.Presentation; using System; …

Generalized Category Discovery(论文翻译)

Generalized Category Discovery 摘要1.导言2.相关工作3.广义类发现3.1 我们的方法 图1.我们提出一个新的设置:“广义类别发现”及其解决方法。我们的设置可以简洁地描述为:给定一个子集具有类标签的数据集,对数据集中所有未标记的图像进行分…

【嵌入式Qt开发入门】如何使用Qt进行绘图——QPainter 绘图

绘图与图表在嵌入式里有的比较多,尤其是图表,我们常在股票里看到的“图表折线/曲线 图/饼状图等”都可以用 Qt 的图表来实现。绘图和图表的内容本章主要介绍绘图和图表的基本操作,以简单的例子呈现绘图与图表的用法,目的就是快速入…

抖音怎么私信发名片

抖音怎么私信发名片,抖音私信卡片制作教程来了,视频版教程#新媒体运营工具#软件#抖音消息卡片 hello,大家,我是百收网SEO,今天给大家说一下个人号自动回复卡片,相比企业号自动回复卡片,它的优势…

MATLAB | 终于找到了修改图例图标的方法(可以自己设计图例啦?)

讲一点扒MATLAB底裤的事情叭,就是之前写的有一些绘图函数,比如阴影柱状图,想要把图例里的图标进行修改让其也带着阴影,我采取的是直接绘制一些会检测图例框移动的阴影图标来冒充图例的图标,那么有没有办法真正的自定义…

如何轻松应对广泛存在开源“0Day”

跟不少安全人员讨论过一个很通俗的话题 作为网安从业者最讨厌的是什么? 不同的人给了很多不同的答案 有的人说: 但更多的人都在说: “零日漏洞”(zero-day)又叫零时差攻击,是指被发现后立即被恶意利用的安全漏洞。通俗地讲&…

QScintilla自制代码编辑器系列(1)编译库文件与运行测试例子

1.下载工程源码 我本人机器上的QT是6.4 可以下载最新的代码 https://www.riverbankcomputing.com/static/Downloads/QScintilla/2.14.0/QScintilla_src-2.14.0.zip 2. 编译生成文件 无需改动可以顺利生成库文件 3. 运行例子 1)拷贝头文件 将整个Qsci文件夹拷…

面试官:你的项目有什么亮点?我:解决了JS脚本加载失败的问题!

前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 面试官:你的项目有什么亮点?解决了什么问题? 你:嗯...... 面试官&#…

7.3 【Linux】磁盘的分区、格式化、检验与挂载

想在系统中新增一颗磁盘时,需要做: 1.对磁盘进行分区,以创建可用的partition; 2.对该partition进行格式化(format),以创建系统可用的filesystem; 3.可对刚刚创建好的filesystem进行检验; 4.…

Acrel-5000重点用能单位能耗在线监测系统在湖南三立集团的案例分析

安科瑞 崔丽洁 摘要:根据《重点用能节能办法》(国家发展改革委等第七部委2018年15号令)、《重点用能单位能耗在线监测系统推广建设工作方案》(发改环资[2017]1711号)和《关于加速推进重点用能单位能耗在线监测系统建设…

介绍几种OPTIONS检测的方法

概述 日常的VOIP开发中,OPTIONS检测是常用的网络状态检测工具。 OPTIONS原本是作为获取对方能力的消息,也可以检测当前服务状态。正常情况下,UAS收到OPTIONS心跳,直接回复200即可。 与ping不同的是,OPTIONS检测不仅…

前后端分离开发

目录 前后合开发(不推荐) 前后端分离开发(主流) 项目开发的基本步骤 接口文档的管理平台--YApi 前后合开发(不推荐) 沟通成本高分工不明确不便于管理不便于扩展 前后端分离开发(主流&…

让浮动元素在一行显示

&#x1f4dd;个人主页&#xff1a;爱吃炫迈 &#x1f48c;系列专栏&#xff1a;HTMLCSS &#x1f9d1;‍&#x1f4bb;座右铭&#xff1a;道阻且长&#xff0c;行则将至&#x1f497; <div class"wrap"><div class"item">1</div><di…

ubuntu实现自动挂载u盘

ubuntu实现自动挂载u盘 但是&#xff0c;有些设施可以在没有图形工具的情况下进行复制&#xff0c;并且在系统上占用的空间非常小。 例如&#xff0c;在我的设置中&#xff0c;我已经实现了USB自动挂载服务&#xff0c;而无需使用任何外部工具/服务&#xff0c;只有udev和syst…

Junit5相关技术

Selenium自动化测试框架 Junit针对Java的单元测试框架 拿一个技术写自动化测试用例&#xff08;Selenium3&#xff09; 拿一个技术管理已经编写好的测试用例(Junit5) 写代码前需要添加依赖&#xff1a;Junit5 一、注解 1.1 Test 表示当前这个方法是一个测试用例 1.2 Di…

DCN v2阅读笔记

Deformable ConvNets v2: More Deformable, Better Results 是 Deformable Convolutional Networks 研究的续作&#xff0c;发表在 CVPR 2019上。 作者对 DCNv1 的自适应行为进行研究&#xff0c;观察到虽然其神经特征的空间支持比常规的卷积神经网络更符合物体结构&#xff0…