Loki+Promtail+Grafana

文章目录

  • 一、loki
    • 1、什么是loki
    • 2、倒排索引(inverted index)
    • 3、loki的特点
    • 4、Loki日志系统组成
  • 二、Promtail
  • 三、loki部署
    • 1、下载promtail和loki
    • 2、安装
      • ①解压缩
      • ②移动
      • ③编写配置文件
      • ④启动服务
  • 三、Grafana配置loki数据源

一、loki

1、什么是loki

loki是Grafana Labs团队开发的一个开源项目,是一个高水平可扩展,高可用性,多租户的日志聚合系统。Grafana Loki作为整体的日志聚合系统,使用了和当前主流的倒排索引日志系统不同的设计,其为每个日志流编制一组标签,使用标签来作为日志的索引,达成了较低的成本和快速查询的使用体验。

2、倒排索引(inverted index)

倒排索引源于实际应用中根据属性的值来查找记录,也就是说不适用记录来确定属性值而实由属性值来确定记录,因而被称为倒排索引,带有倒排索引的文件被称为倒排文件。倒排索引一般表示为一个三元组:关键词、词频、id或位置(出现在哪篇文章或网页中,及有关的日期,作者等信息),它相当于为所有文档或者互联网网页做了一个索引(打标签),我们只需要根据标签就能快速匹配到对应文章或网页。

一个未经处理的数据库中,一般是以文档ID作为索引,以文档内容作为记录。而倒排索引是将单词作为索引,将文档ID作为记录,这样便可以通过单词或记录查找到所在文档。

简单来说就是正排索引是遍历所有文件名来找文件,倒排索引则是记录文档中的关键字及其所在文档,根据关键字来找到文档。

3、loki的特点

①不对日志进行全文索引。Loki中存储的是压缩后的非结构化日志,并且支队元数据建立索引,因此Loki操作简单,成本较低。

②使用与Prometheus相同的标签。Loki通过标签对日志进行索引和分组,使得日志的扩展和操作效率更高。

③适合储存Kubernetes Pod日志。比如Pod节点信息、容器信息、命名空间、标签之类的元数据会自动删除和编入索引。

④Grafana原生支持。

4、Loki日志系统组成

①Loki主服务器,负责存储日志和处理查询。

②Promtail是专为loki定制的代理,负责收集日志并将其发送给loki。

③Grafana用于UI展示。

二、Promtail

Promtail时Loki的官方日志采集器原生支持journal、syslog、file、docker类型的日志集,作用类似于Logstash。Promtail作为一个日志采集器,首先要知道的是日志在什么位置才能做到收集与打标签推送等功能。

对于普通的静态日志文件,可以直接在Promtail配置文件中写入路径信息。但是如果想要采集k8s内的日志文件则需要弄清日志的存放位置。

三、loki部署

1、下载promtail和loki

wget https://github.com/grafana/loki/releases/download/v2.2.1/loki-linux-amd64.zip
wget https://github.com/grafana/loki/releases/download/v2.2.1/promtail-linux-amd64.zip
在这里插入图片描述

2、安装

①解压缩

Loki+Promtail+Grafana_第1张图片

②移动

在这里插入图片描述

③编写配置文件

Loki+Promtail+Grafana_第2张图片
promtail
在这里插入图片描述
vim /opt/app/promtail.yaml

server:
http_listen_port: 9080
grpc_listen_port: 0

positions:
filename: /var/log/positions.yaml

client:
url: http://localhost:3100/loki/api/v1/push

scrape_configs:

  • job_name: system
    pipeline_stages:
    static_configs:
    • targets:
      • localhost
        labels:
        job: varlogs
        host: yourhost
        path: /var/log/*.log

Loki+Promtail+Grafana_第3张图片
加入到systemctl管理
在这里插入图片描述

vim /etc/systemd/system/promtail.service

[Unit]
Description=promtail server
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/opt/app/promtail/promtail -config.file=/opt/app/promtail/promtail.yaml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=promtail
[Install]
WantedBy=default.target

Loki+Promtail+Grafana_第4张图片
loki
在这里插入图片描述
vim /opt/app/loki/loki.yaml

auth_enabled: false

server:
http_listen_port: 3100
grpc_listen_port: 9096

ingester:
wal:
enabled: true
dir: /opt/app/loki/wal
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h
max_chunk_age: 1h
chunk_target_size: 1048576
chunk_retain_period: 30s
max_transfer_retries: 0

schema_config:
configs:
- from: 2022-10-12
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h

storage_config:
boltdb_shipper:
active_index_directory: /opt/app/loki/boltdb-shipper-active
cache_location: /opt/app/loki/boltdb-shipper-cache
cache_ttl: 24h
shared_store: filesystem
filesystem:
directory: /opt/app/loki/chunks

compactor:
working_directory: /opt/app/loki/boltdb-shipper-compactor
shared_store: filesystem

limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h

chunk_store_config:
max_look_back_period: 0s

table_manager:
retention_deletes_enabled: false
retention_period: 0s

ruler:
storage:
type: local
local:
directory: /opt/app/loki/rules
rule_path: /opt/app/loki/rules-temp
alertmanager_url: http://localhost:9093
ring:
kvstore:
store: inmemory
enable_api: true

加入到systemctl管理
在这里插入图片描述
vim /etc/systemd/system/loki.service

[Unit]
Description=loki server
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/opt/app/loki/loki -config.file=/opt/app/loki/loki.yaml
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=loki
[Install]
WantedBy=default.target

Loki+Promtail+Grafana_第5张图片

④启动服务

Loki+Promtail+Grafana_第6张图片
Loki+Promtail+Grafana_第7张图片

三、Grafana配置loki数据源

Loki+Promtail+Grafana_第8张图片
Loki+Promtail+Grafana_第9张图片
选择左侧栏explore,然后选loki
Loki+Promtail+Grafana_第10张图片

你可能感兴趣的:(grafana,kubernetes,数据库)