轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)
轻量级日志分析平台Loki安装部署及使用Loki简介简介Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。Loki 是专门用于聚集日志数据,重点是高可用性和可伸缩性。与竞争对手不同的是,它确实易于安装且资源效率极高。特点优点:不对日志进行全文索引(vs ELK技)。通过存储压缩非结构化日志和仅索引元数据,Loki 操作起来会更简单,更省成
轻量级日志分析PLG平台Loki安装部署及使用(promtail+loki+Grafana)
Loki简介
简介
Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。Loki 是专门用于聚集日志数据,重点是高可用性和可伸缩性。与竞争对手不同的是,它确实易于安装且资源效率极高。
特点
优点:
- 不对日志进行全文索引(vs ELK技)。通过存储压缩非结构化日志和仅索引元数据,Loki 操作起来会更简单,更省成本。
- 通过使用与 Prometheus 相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。
- 特别适合主流的例如储存 Kubernetes Pod 日志; 诸如 Pod 标签之类的元数据会被自动删除和编入索引。
- 受 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
点击Add data source ,找到Loki,点击Select添加
打开新加的Loki sources配置,按照图中配置即可,点击Save&Test
根据之前配置文件定义,搜集的日志为/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
配置规则点击查询日志成功捕捉到error信息。
更多推荐
所有评论(0)