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 文件名的方式來展示不同微服務的日誌.
  • 提供給其他人使用.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章