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 文件名的方式来展示不同微服务的日志.
  • 提供给其他人使用.
上一篇:Grafana镜像在阿里云镜像站首发上线


下一篇:grafana+prometheus如何查看tcp连接数量