轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)

轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)

Loki简介

简介

​ Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。Loki 是专门用于聚集日志数据,重点是高可用性和可伸缩性。与竞争对手不同的是,它确实易于安装且资源效率极高。

特点

优点:

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

缺点:

​ 功能单一,只针对日志的查看,筛选有好的表现,对于数据的处理以及清洗没有ELK强大,同时与ELK相比,对于后期,ELK可以连用各种技术进行日志的大数据处理,但是loki不行。

组件介绍

Loki 由以下3个部分组成:

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

安装部署

# 创建loki目录
[root@wangting ~]# mkdir loki
[root@wangting ~]# cd loki/
[root@wangting loki]# ll
total 0
# 下载docker-compose
[root@wangting loki]# curl -L "https://github.com/docker/compose/releases/download/1.28.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   633  100   633    0     0   1025      0 --:--:-- --:--:-- --:--:--  1024
100 11.6M  100 11.6M    0     0  2425k      0  0:00:04  0:00:04 --:--:-- 3405k
[root@wangting loki]# ll /usr/local/bin/docker-compose
-rw-r--r-- 1 root root 12206944 May 20 14:22 /usr/local/bin/docker-compose
# 增加docker-compose执行权限
[root@wangting loki]# chmod +x /usr/local/bin/docker-compose
# 下载loki项目部署yaml
[root@wangting loki]# wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/production/docker-compose.yaml -O docker-compose.yaml
--2021-05-20 14:22:49--  https://raw.githubusercontent.com/grafana/loki/v2.2.0/production/docker-compose.yaml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.110.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 461 [text/plain]
Saving to: ‘docker-compose.yaml’
2021-05-20 14:22:49 (41.9 MB/s) - ‘docker-compose.yaml’ saved [461/461]

# 下载不了也可以直接将下面内容复制
[root@wangting loki]# cat docker-compose.yaml 
version: "3"

networks:
  loki:

services:
  loki:
    image: grafana/loki:2.0.0
    ports:
      - "3100:3100"
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:2.0.0
    volumes:
      - /var/log:/var/log
    command: -config.file=/etc/promtail/config.yml
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    networks:
      - loki
      
# 查看3000和3100端口是否被占用
[root@wangting loki]# netstat -tnlpu | grep -E "3000|3100"
[root@wangting loki]# 

# 运行服务 -f为指定yaml文件 up为启动服务  -d为后台运行
[root@wangting loki]# docker-compose -f docker-compose.yaml up -d
Building with native build. Learn about native build in Compose here: https://docs.docker.com/go/compose-native-build/
Starting loki_loki_1     ... done
Starting loki_grafana_1  ... done
Starting loki_promtail_1 ... done
[root@wangting loki]# 

# 查看运行情况
[root@wangting loki]# netstat -tnlpu | grep -E "3000|3100"
tcp6       0      0 :::3000                 :::*                    LISTEN      1005970/docker-prox 
tcp6       0      0 :::3100                 :::*                    LISTEN      1005959/docker-prox 
[root@wangting loki]# docker ps
CONTAINER ID        IMAGE                        COMMAND                  CREATED             STATUS                  PORTS                               NAMES
371166e5d10a        grafana/grafana:latest       "/run.sh"                4 minutes ago       Up About a minute       0.0.0.0:3000->3000/tcp              loki_grafana_1
ac8fc3a8df19        grafana/promtail:2.0.0       "/usr/bin/promtail -…"   4 minutes ago       Up About a minute                                           loki_promtail_1
fbdfa0a2ee12        grafana/loki:2.0.0           "/usr/bin/loki -conf…"   4 minutes ago       Up About a minute       0.0.0.0:3100->3100/tcp              loki_loki_1
[root@wangting loki]# 
# 3000	grafana页面展示端口
# 3100	loki存储查询端口

访问界面

http://192.168.158.124:3000/ # 换成自己部署的ip + 3000 端口

初次登陆 默认用户名密码: admin / admin 首次会提示更改安全的密码,按照提示更改

配置dashboard界面的数据源 data - data sources
轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)_第1张图片

点击Add data source ,找到Loki,点击Select添加
轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)_第2张图片

打开新加的Loki sources配置,按照图中配置即可,点击Save&Test
轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)_第3张图片

根据之前配置文件定义,搜集的日志为/var/log目录,我这里是新机器,近期可能没有error日志内容,人工生产一个error信息,这一步非必须,如果是常用的机器,error输出应该会有

[root@wangting log]# pwd
/var/log
[root@wangting log]# echo "error May-20 15:21:14 === Started libdnf-0.39.1 ===" >> hawkey.log

轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)_第4张图片
配置规则点击查询日志
轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)_第5张图片成功捕捉到error信息。

你可能感兴趣的:(运维,大数据,loki,grafana,日志分析,elk,运维)