轻量级日志收集比ELK好用-Loki

日志分析

微服务产生log,promtail搜集Log,Loki保存log,grafana展示log。

Promtail

负责搜集服务器的日志,部署到每台服务器上。

//promtail 启动后负责的监听端口
server:
  http_listen_port: 9080
  grpc_listen_port: 0

//position 保存收集log日志的文件目录和行数
positions:
  filename: /tmp/positions.yaml

//promtail 将收集到的日志推送给loki的路径
clients:
  - url: http://192.168.1.1:3100/loki/api/v1/push

//收集日志的配置
scrape_configs:
- job_name: jobName //配置job名字,可以搜索的时候使用
  static_configs:
  - targets:
      - localhost                                                                                 
    labels:
      job: jobName    //labels job 名字
      __path__: /data/logs/***.log //日志文件位置

部署方式采用docker-compose

docker-compose.yml

version: "3"
networks:
  loki:
services:
  promtail:
    image: grafana/promtail:2.4.1
    volumes:
      - /data/logs:/data/logs
      - /data/app/monitor:/etc/promtail
    command: -config.file=/etc/promtail/config.yml
    restart: always
    networks:
      - loki

Loki

负责保存收集上来的日志,可部署单独一台服务器。也可以部署与grafana一台服务器

//开启认证
auth_enabled: false
//loki服务监听端口配置
server:
  http_listen_port: 3100
common:
  path_prefix: /loki                     //定义loki保存路径前缀
  storage:
    filesystem:
      chunks_directory: /loki/chunks     //用于保存日志文件路径
      rules_directory: /loki/rules      // 保存日志规则    
  replication_factor: 1									//备份系数
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: inmemory
//配置文件系统
schema_config:
  configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h
//配置保存周期
talbe_manager:
  retention_deletes_enabled: true
  retention_period: 48h
//告警规则
ruler:
  alertmanager_url: http://localhost:9093

部署方式采用docker-compose

version: "3"
services:
  loki:
    image: grafana/loki:2.4.1
    command: -config.file=/etc/loki/local-config.yaml
    restart: always
    network_mode: host
    volumes:
     - "/loki:/etc/loki"

Grafana

负责数据展示

(1)先配置数据源 将loki的url配置完成

(2)查询数据

先选择explore,选择loki

在log browser:填写查询条件{job="dpc"} 按住 shift+enter 即可查询所有条件

(3)查询语法

按job查询

{job="name"} 

按条件查询: 查询job等于“name”,在name的job中含有“condition”的日志

{job="name"} |="condition"

按多条件查询: 查询job等于“name”,在name的job中含有 “condition” 和 “condition2”

{job="name"} |="condition" |= "condition2"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值