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 文件名的方式来展示不同微服务的日志.
    • 提供给其他人使用.
  • 相关阅读:
    IDEA永久激活方法
    idea在本地调试,spark创建hiveContext的时候报错
    MVC里面调用webservice
    log4net配置
    Linq 使用skip和take分页
    ASP.NET页面之间传递值的几种方式
    C#操作redis
    C#知识点:I/O
    C#知识点:ref和Out关键字浅谈
    C#知识点:反射
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15768831.html
Copyright © 2011-2022 走看看