首页 > 其他分享 >十四、kubernetes日志收集之Loki收集K8s日志

十四、kubernetes日志收集之Loki收集K8s日志

时间:2023-10-18 17:00:50浏览次数:42  
标签:docker 收集 kubernetes grafana Loki 日志 loki stack

3. 使用Loki收集K8s日志

3.1 架构说明

十四、kubernetes日志收集之Loki收集K8s日志_Kubernetes

无论是ELK、EFK还是Filebeat,都需要用到Elasticsearch来存储数据,Elasticsearch本身就像“一座大山”,维护难度和资源使用都是偏高的。对于很多公司而言,特别是新创公司,可能并不想大费周章地去搭建一个ELK、EFK或者其他重量级的日志平台,刚开始的人力投入可能是大于收益的,所以就需要一个更轻量的日志收集平台。

一个基于Kubernetes平台的原生日志收集平台Loki Stack应运而生,相对于上述技术栈,Loki的安装、架构、使用都比较简单,能够满足大部分的工作需求。


可以看到主要包含如下组件:

  • Loki:主服务器,负责日志的存储和查询,参考了Prometheus的服务发现机制,将标签添加到日志流,而不是像其他平台一样进行全文索引。
  • Promtail:负责收集日志并将其发送给Loki,主要用于发现采集目标以及添加对应Label,最终发送给Loki。
  • Grafana:用来展示或查询相关日志,可以在页面查询指定标签Pod的日志。


Loki不对日志进行全文索引,仅索引相关日志的元数据,所以Loki操作起来更简单、更省成本。而且Loki是基于Kubernetes进行设计的,可以很方便地部署在Kubernetes上,并且对集群的Pod进行日志采集,采集时会将Kubernetes集群中的一些元数据自动添加到日志中,让技术人员可以根据命名空间、标签等字段进行日志的过滤,可以很快速地定位到相关日志。


3.2 部署Loki

添加helm仓库并拉取helm包

helm repo add grafana https://grafana.github.io/helm-charts
helm pull grafana/loki-stack


helm包版本是loki-stack-2.9.11,提前拉取需要部署服务的镜像到本地Harbor仓库,对以下文件中的镜像地址进行修改。

#一下镜像版本的查看
#loki-stack/values.yaml 下看grafana的配置,tag 是8.3.5
#loki-stack/charts/promtail/Chart.yaml 下看appVersion 是2.8.3

#/root/efk-7.10.2/loki-stack/values.yaml
docker pull bats/bats:1.8.2

#/root/efk-7.10.2/loki-stack/charts/grafana/values.yaml
docker pull grafana/grafana:8.3.5
docker pull bats/bats:1.4.1
docker pull curlimages/curl:7.85.0
docker pull busybox:1.13.1
docker pull quay.io/kiwigrid/k8s-sidecar:1.19.2
docker pull grafana/grafana-image-renderer

#/root/efk-7.10.2/loki-stack/charts/promtail/values.yaml
docker pull docker.io/grafana/promtail:2.8.3
docker pull docker.io/jimmidyson/configmap-reload:v0.8.0

#/root/efk-7.10.2/loki-stack/charts/loki/values.yaml
docker pull grafana/loki:2.6.1


创建 Loki Namespace、 Loki Stack

#/root/efk-7.10.2/loki-stack/下进行
kubectl create ns loki
helm --install loki . --set grafana.enabled=true --set grafana.service.type=NodePort -n loki

十四、kubernetes日志收集之Loki收集K8s日志_Kubernetes_02


查看 Pod 状态

十四、kubernetes日志收集之Loki收集K8s日志_Kubernetes_03


查看 Grafana 的 Service 暴露的端口号

十四、kubernetes日志收集之Loki收集K8s日志_Kubernetes_04


之后通过任意一个安装了 kube-proxy 的节点的 IP 加上 31053 即可访问 Grafana

#查看 Grafana 密码(账号 admin)
kubectl get secret --namespace loki loki-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo

十四、kubernetes日志收集之Loki收集K8s日志_Kubernetes_05

十四、kubernetes日志收集之Loki收集K8s日志_Kubernetes_06

Tips:Loki默认没持久化数据,可以进行修改配置文件实现持久化存储。


3.3 清理
[root@k8s-master01 loki-stack]# pwd
/root/efk-7.10.2/loki-stack
[root@k8s-master01 loki-stack]# helm delete -n loki loki
[root@k8s-master01 loki-stack]# kubectl delete ns loki

标签:docker,收集,kubernetes,grafana,Loki,日志,loki,stack
From: https://blog.51cto.com/YinJayChen/7914798

相关文章

  • php 日志 写入 文件 获取完整url 获取当前请求地址
      $file='log.txt';//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个$content=$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];if($f=file_put_contents($file,$content,FILE_APPEND)......
  • 日志显示实际电脑IP
    本地启动日志存储是电脑IP测试环境日志存储是网段IP原因:测试环境VPN部署,只能获取到VPN分配的网段IP同样的获取IP工具类,在外网环境或VPN下都只能获取网段IP内网环境一台服务器下获取实际电脑IP......
  • nacos清理日志脚本
    #!/bin/sh#############################$1nacoshome#$2logsavedays#############################logs_path=$1savedays=$2echo$(date)-----------------clean>>./nacosClean.log#清理logs文件夹下的access.log文件delList=$(find$logs_path/logs/-mtime......
  • python 封装日志logging
    #!/usr/bin/python#-*-coding:utf-8-*-importloggingimporttimeimportosclassLog(object):'''封装后的logging'''def__init__(self,logger=None,log_cate='search'):'''......
  • 在 kubernetes 环境中实现 gRPC 负载均衡
    前言前段时间写过一篇gRPC的入门文章,在最后还留了一个坑没有填:也就是gRPC的负载均衡问题,因为当时的业务请求量不算大,再加上公司没有对Istio这类服务网格比较熟悉的大牛,所以我们也就一直拖着没有解决,依然只是使用了kubernetes的service进行负载,好在也没有出什么问题......
  • MySQL慢日志(mysql_slow
    近期收到某服务器磁盘告警,登录查看后发现是mysql_slow.log文件过大导致告警。为了释放磁盘空间,需要对该文件进行清理。mysql-slow.log文件是记录sql语句的执行时间超过设置的long_query_time的语句,默认1秒钟,可以根据数据库实例进行调整设置1.查看慢日志状态,on为开启mysql>s......
  • django服务配置logging 打印接口请求sql日志
    只需要在setting文件下配置:LOGGING={'version':1,'disable_existing_loggers':False,'handlers':{'console':{'class':'logging.StreamHandler',},},......
  • log4j2同步日志引发的性能问题
    1问题回顾1.1问题描述在项目的性能测试中,相关的接口的随着并发数增加,接口的响应时间变长,接口吞吐不再增长,应用的CPU使用率较高。1.2分析思路谁导致的CPU较高,阻塞接口TPS的增长?接口的响应时间的调用链分布是什么样的,有没有慢的点?1)使用火焰图分析应用的CPU如下,其中log4j2日......
  • 实验室信息化管理系统LIMS,实现实验室数据和信息的收集、分析、陈述和处理
    实验室信息化管理系统LIMS,由计算机硬件和应用软件组成,能够实现实验室数据和信息的收集、分析、陈述和处理。实验室信息化管理系统LIMS是以查验检测作业为中心,包含一个以样品分析为主线的从样品登录、登记处理、查验检测、数据计算分析到成果输出等流程的处理,实验室信息处理系统LIMS......
  • logback-thtf.xml 日志输出控制
    <?xmlversion="1.0"encoding="UTF-8"?><configurationscan="true"scanPeriod="60seconds"debug="false"><!--日志存放路径--><propertyname="log.path"value="logs/go......