Grafana日志聚合工具Loki

栏目: 服务器 · 发布时间: 5年前

内容简介:Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签,为 Prometheus和 Kubernetes用户做了相关优化。项目受 Prometheus 启发,类似于 Prometheus 的日志系统。Loki初体验与其他日志聚合系统相比, Loki具有下面的一些特性:

Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签,为 Prometheus和 Kubernetes用户做了相关优化。项目受 Prometheus 启发,类似于 Prometheus 的日志系统。

简介

Loki初体验

与其他日志聚合系统相比, Loki具有下面的一些特性:

  • 不对日志进行全文索引。通过存储压缩非结构化日志和仅索引元数据,Loki 操作起来会更简单,更省成本。
  • 通过使用与 Prometheus 相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。
  • 特别适合储存 Kubernetes Pod 日志; 诸如 Pod 标签之类的元数据会被自动删除和编入索引。
  • 受 Grafana 原生支持。

Loki 由以下3个部分组成:

  • loki是主服务器,负责存储日志和处理查询。
  • promtail是代理,负责收集日志并将其发送给 loki。
  • Grafana 用于 UI 展示。

环境说明

环境 版本
centos v7.4
docker v18.09.0
docker-compose v1.23.2
grafana v5.5.0
node-exporter v0.17.0
prometheus v2.5.0

部署

clone loki源码

[root@1-206 ~]# curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@1-206 ~]# yum install -y git
[root@1-206 ~]# git clone https://github.com/grafana/loki.git
[root@1-206 ~]# cd loki/production/

可以直接运行官方的docker-compose.yml文件,执行命令为: docker-compose -f docker-compose.yaml up -d
docker-compose.yml 文件如下,这里使用的 grafana 镜像为自己编译的,官方的镜像为: image: grafana/grafana:master

[root@1-206 production]# cat docker-compose.yaml
version: "3"
networks:
  loki:
services:
  loki:
    image: grafana/loki:master
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:master
    volumes:
      - /var/log:/var/log
    command: 
      -config.file=/etc/promtail/docker-config.yaml
    networks:
      - loki
      
  grafana:
    image: yfshare/grafana:5.5.0_beta1
    ports:
      - "3000:3000"
    environment:
      GF_EXPLORE_ENABLED: "true"
    networks:
      - loki
[root@1-206 production]#
[root@1-206 production]# docker-compose -f docker-compose.yaml up -d
[root@1-206 production]# docker-compose ps
        Name                       Command               State               Ports             
-----------------------------------------------------------------------------------------------
production_grafana_1    /docker-entrypoint.sh            Up      22/tcp, 0.0.0.0:3000->3000/tcp
production_loki_1       /bin/loki -config.file=/et ...   Up      0.0.0.0:3100->3100/tcp, 80/tcp
production_promtail_1   /usr/bin/promtail -config. ...   Up                                    
[root@1-206 production]#

体验

部署完成后,访问grafana: http://ip:3000,默认密码为`admin:admin`

Grafana v5.5.0+以上的版本才支持Loki

Grafana日志聚合工具Loki

添加数据源Prometheus和Loki

Grafana日志聚合工具Loki Grafana日志聚合工具Loki Grafana日志聚合工具Loki Grafana日志聚合工具Loki

根据系统标签来查看Loki日志

测试发现当promtail定义读取的日志路径为 /var/log 时,即使日志路径为 /var/log/grafana/grafana.log 也不能读取。

Grafana日志聚合工具Loki Grafana日志聚合工具Loki

这里的job varlogs是在promtail的配置文件里定义的,promtail配置文件如下:

[root@1-206 production]# docker exec -it production_promtail_1 /bin/sh
/ # cat /etc/promtail/docker-config.yaml
server:
  http_listen_port: 0
  grpc_listen_port: 0
positions:
  filename: /tmp/positions.yaml
client:
  url: http://loki:3100/api/prom/push
scrape_configs:
- job_name: system
  entry_parser: raw
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log
/ #

Loki也可以查看Prometheus的item

Grafana日志聚合工具Loki

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

精益创业方法论

精益创业方法论

龚焱 / 机械工业出版社 / 2015-3 / 69.00元

为什么无数新创企业以失败告终? 为什么天才点子、完美计划和完美的执行是导致失败的关键? 颠覆性、创造性、混乱状况是否可以加以管理? Facebook在6年间以病毒一样惊人的速度传播,微信短短两年获得了6亿用户,这些公司都遵循着一套科学、严密的创业流程和工业方法,这种方法教你认清自以为是的假象,让你在亚马逊丛林的迷雾探险时成功找到水源,一切不是未来时,而是现在时,再砰然心动的点子、......一起来看看 《精益创业方法论》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具