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 文件名的方式来展示不同微服务的日志.
    • 提供给其他人使用.
  • 相关阅读:
    网络世界中的图片以及相关的处理
    Ninject 2.x细说1.基本使用
    Orchard1.4新功能自动路由(AutoRouter)并附Orchard最新1.4版汉化包
    json的一点总结
    ASP.NET MVC路由扩展:路由映射
    厚积薄发,丰富的公用类库积累,助你高效进行系统开发(12) 网络相关操作辅助类
    IIS是如何处理ASP.NET请求的
    一周最新示例代码回顾 (3/19–3/25)
    .NET插件系统(三) 插件间通信问题——设计可自组织和注入的组装程序
    缓存总结
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/15768831.html
Copyright © 2011-2022 走看看