zoukankan      html  css  js  c++  java
  • Kubernetes轻量级日志收集系统LokiStack

    一、Loki简介

    Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。项目受 Prometheus 启发,官方的介绍就是:Like Prometheus, but for logs.,类似于 Prometheus 的日志系统。然后,日志数据本身被压缩并存储在对象存储(例如S3或GCS)中的块中,甚至存储在文件系统本地。 小索引和高度压缩的块简化了操作,并大大降低了Loki的成本。

    相较于EKL,Loki就显得很轻量级了;用了Loki以后,ELK突然不香了!哈哈~~~

    二、Loki-stack组件

    2021-12-03_171553
    2021-12-03_171639

    • Promtail

    Promtail 是用来将容器日志发送到 Loki 或者 Grafana 服务上的日志收集工具,该工具主要包括发现采集目标以及给日志流添加上 Label 标签,然后发送给 Loki,另外 Promtail 的服务发现是基于 Prometheus 的服务发现机制实现的。

    • Loki

    Loki 是可以水平扩展、高可用以及支持多租户的日志聚合系统,使用了和 Prometheus 相同的服务发现机制,将标签添加到日志流中而不是构建全文索引。因此,从 Promtail 接收到的日志和应用的 metrics 指标就具有相同的标签集。它不仅提供了更好的日志和指标之间的上下文切换,还避免了对日志进行全文索引。

    • Grafana

    Grafana 是一个用于监控和可视化观测的开源平台,支持非常丰富的数据源,在 Loki 技术栈中它专门用来展示来自 Prometheus 和 Loki 等数据源的时间序列数据。还允许进行查询、可视化、报警等操作,可以用于创建、探索和共享数据 Dashboard

    三、安装Loki-stack

    3.1 配置loki helm仓库

    $ helm repo add grafana https://grafana.github.io/helm-charts
    $ helm repo update
    $ helm pull grafana/loki-stack --untar --version 2.3.1
    

    3.2 修改values.yaml文件

    为了保险起见,不修改原本的文件,复制一份values.yamlvalues-prod.yaml文件:

    values-prod.yaml

    loki:
      enabled: true
      persistence:
        enabled: true
        storageClassName: hostpath
        accessModes:
        - ReadWriteOnce
        size: 10Gi
    
    promtail:
      enabled: true
    
    grafana:
      enabled: true
      service:
        type: NodePort
      persistence:
        enabled: true
        storageClassName: hostpath
        accessModes:
          - ReadWriteOnce
        size: 10Gi
    

    3.3 安装loki-stack

    $ cd ~/loki-stack
    ~/loki-stack $ helm install loki . -f values-prod.yaml  -n logging
    

    稍等片刻,等pod运行成功后,查看访问地址:

    $ kubectl -n logging get pod
    NAME                           READY   STATUS    RESTARTS   AGE
    loki-0                         1/1     Running   0          94m
    loki-grafana-9694db697-v7bgj   1/1     Running   0          44m
    loki-promtail-hz9st            1/1     Running   0          94m
    loki-promtail-p9nf8            1/1     Running   0          94m
    loki-promtail-xwgxz            1/1     Running   0          94m
    $ kubectl -n logging get svc | grep loki-grafana
    NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
    loki-grafana    NodePort    10.96.19.223    <none>        80:30099/TCP   94m
    

    3.4 访问测试

    2021-12-03_173343

    获取密码指令:

    $ kubectl -n logging get secret loki-grafana  -o jsonpath='{.data.admin-password}' | base64 --decode ; echo
    

    2021-12-03_173454
    2021-12-03_173613

    也可导入相应的模板13713自行进行调整!

    *************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
  • 相关阅读:
    MAC之基本命令(持续更新)
    Mac下android_sdk配置环境变量
    Eclipse最常用10大快捷键
    Android之使用Jsoup抓取网络数据
    MAC之curl命令
    MAC之cat命令
    Android之FileOutputStream与openFileOutput()的区别
    C# 数字语音wav 提示。。。。。。。。。。。
    HttpWebRequest 获取验证码的图片 并针对有验证码的网页进行Winform登陆。
    经常开车,坐车的朋友请进(看后对你绝对有好处)
  • 原文地址:https://www.cnblogs.com/lvzhenjiang/p/15639174.html
Copyright © 2011-2022 走看看