zoukankan      html  css  js  c++  java
  • Loki动态展示linux本地日志

    Loki动态展示linux本地日志


    背景

    • 产品需要拆分微服务部署,直接使用K8S部署虽然比较规范但是部署时间较长.
    • 本地文件系统部署简洁快速一些, 但是不太好直接复用一些规范的产品.
    • 本次处理方法就是基于Linux文件系统通过grafana展示微服务日志的方法
    • 本次涉及 grafana进行动态展示, loki显示日志 promtail 进行日志归集.

    统一日志存放

    • 使用微服务部署方式将应用服务器存放于 /su 路径下面进行分别存放.
    • 使用脚本进行批量启动
    for i in `ls /su` ;
    do
     cd /su/$i/apppath/ && nohup ./startup.sh > /sulog/$i.log & ;
    done
    
    • 脚本说明
    1. /su 路径下面存放具体微服务的程序路径. 并且带单独的启动脚本
    2. /sulog 用于整体存放微服务的日志, 注意使用变量方式进行.便于查看.
    

    镜像与配置文件

    • 拉取
    docker pull grafana/grafana
    docker pull grafana/loki
    docker pull grafana/promtail
    
    • 获取配置文件
    wget https://raw.githubusercontent.com/grafana/loki/v2.3.0/cmd/loki/loki-local-config.yaml -O /grafana/loki-config.yaml
    wget https://raw.githubusercontent.com/grafana/loki/v2.3.0/clients/cmd/promtail/promtail-docker-config.yaml -O /grafana/promtail-config.yaml
    wget https://raw.githubusercontent.com/grafana/loki/v2.3.0/production/docker-compose.yaml -O /grafana/docker-compose.yaml
    
    • 备注 Study From https://www.jianshu.com/p/87bc8a39fbd5

    修改配置文件

    • loki的配置文件几乎不需要修改
    • promtail 配置文件需要如下修改
    clients:
      - url: http://10.110.x.x:3100/loki/api/v1/push
    # 注意着一个地址需要与loki服务器指定, 并且建议打开防火墙
    scrape_configs:
    - job_name: system
      static_configs:
      - targets:
          - localhost
        labels:
          job: varlogs
          __path__: /sulog/*log
          # 注意这个路径 需要与启动服务的路径保持一致.
    

    修改docker-compose文件

    version: "3"
    networks:
      loki:
    services:
      loki:
        image: grafana/loki:latest
        ports:
          - "3100:3100"
        command: -config.file=/grafana/loki-config.yaml
        volumes:
          - /grafana:/grafana
        networks:
          - loki
    # 注意 loki 的配置文件需要通过 volumes 的方式进行挂载. 
    # 注意配置文件也是如此
      promtail:
        image: grafana/promtail:latest
        volumes:
          - /sulog:/sulog
          - /grafana:/grafana
        command: -config.file=/grafana/promtail-config.yaml
        networks:
          - loki
    # 注意微服务的日志和配置文件都需要进行挂载.
      grafana:
        image: grafana/grafana:latest
        ports:
          - "3000:3000"
        networks:
          - loki
    # grafana 基本上不需要修改.
    

    启动服务

    • 复制docker-compose 到 /usr/bin 目录下并且设置权限
    docker-compose up -d 
    # 启动服务
    
    • 注意可以通过如下方式进行简单配置检查
    docker ps -a 
    # 查看镜像时会否正常
    docker logs -f container_name
    # 查看日志进行分析处理.
    

    界面化验证

    • 登录grafana
    打开 ip:3000 地址, 默认密码 admin/admin
    第一次登录需要修改密码
    
    • 添加数据源
    进入grafana 打开数据源定义 添加 loki数据源
    注意建议选择 具体ip地址进行使用
    localhost 可能是不通的.
    

    界面化验证

    • 打开explore
    • 选择某一个文件,然后选择showlogs 展示日志
    • 注意可以选择 query log 并且定期刷新
    • 可以手工修改 log 文件名的方式来展示不同微服务的日志.
    • 提供给其他人使用.
  • 相关阅读:
    RecyclerView 数据刷新的几种方式 局部刷新 notify MD
    【图片】批量获取几万张图片
    RV BaseRecyclerViewAdapterHelper 总结 MD
    RecyclerView.ItemDecoration 间隔线
    Kotlin【简介】Android开发 配置 扩展
    Kotlin 特性 语法糖 优势 扩展 高阶 MD
    一个十分简洁实用的MD风格的UI主框架
    折叠伸缩工具栏 CollapsingToolbarLayout
    FloatingActionButton FAB 悬浮按钮
    Glide Picasso Fresco UIL 图片框架 缓存 MD
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15768831.html
Copyright © 2011-2022 走看看