日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

promtail 配置详解_基于loki+promtail+grafana技术的日志集合

發(fā)布時(shí)間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 promtail 配置详解_基于loki+promtail+grafana技术的日志集合 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、背景和動(dòng)機(jī)

近期運(yùn)維工作中,隨著項(xiàng)目的不停優(yōu)化以及上線。在與后端、測試協(xié)同工作的交流中發(fā)現(xiàn),為了測試以及解決項(xiàng)目在上線過程中或者試運(yùn)行中出現(xiàn)的bug報(bào)錯(cuò)問題,開發(fā)同事對(duì)于日志的分析有著很大的需求。但是現(xiàn)在公司的日志查看主要是給予極少數(shù)的人員較大的權(quán)限,以及大量的需要運(yùn)維人員幫忙登陸服務(wù)器查看服務(wù)日志進(jìn)行下拉,復(fù)制黏貼給開發(fā)同事進(jìn)行自主排錯(cuò)。

所以為了提高工作效率,同時(shí)也減輕運(yùn)維同事的工作壓力。需要引入日志系統(tǒng),統(tǒng)一收集日志,又同時(shí)可以在頁面中使得開發(fā)進(jìn)行查看,極大的提高排錯(cuò)效率。

二、技術(shù)對(duì)比

這里主要對(duì)比兩項(xiàng)技術(shù)ELK與loki

2.1:技術(shù)特點(diǎn)

ELK:

優(yōu)點(diǎn):

1、功能豐富,允許復(fù)雜的操作

2、對(duì)數(shù)據(jù)的處理,清洗有著巨大的優(yōu)勢(shì),同時(shí)技術(shù)框架應(yīng)用成熟,論壇等技術(shù)交流方法成熟。

劣勢(shì):

1、方案往往規(guī)模復(fù)雜,資源占用高,操作難。很多功能往往用不上,大多數(shù)查詢只關(guān)注一定時(shí)間范圍和一些簡單的參數(shù)(如host、service等),使用這些解決方案有點(diǎn)大材小用。

2、主流的ELK(全文檢索)或者EFK比較重

3、Kibana和Grafana之間切換,影響用戶體驗(yàn)

4、倒排索引的切分和共享的成本較高

Loki:

優(yōu)點(diǎn):

1、Loki的架構(gòu)非常簡單,使用了和prometheus一樣的標(biāo)簽來作為索引,通過這些標(biāo)簽既可以查詢?nèi)罩镜膬?nèi)容也可以查詢到監(jiān)控的數(shù)據(jù),不但減少了兩種查詢之間的切換成本,也極大地降低了日志索引的存儲(chǔ)。

2、與ELK相比,消耗的成本更低,具有成本效益。

3、在日志的收集以及可視化上可以連用grafana,實(shí)現(xiàn)在日志上的篩選以及查看上下行的功能。

缺點(diǎn):

1、技術(shù)比較新穎,相對(duì)應(yīng)的論壇不是非常活躍。

2、功能單一,只針對(duì)日志的查看,篩選有好的表現(xiàn),對(duì)于數(shù)據(jù)的處理以及清洗沒有ELK強(qiáng)大,同時(shí)與ELK相比,對(duì)于后期,ELK可以連用各種技術(shù)進(jìn)行日志的大數(shù)據(jù)處理,但是loki不行。

三、框架說明

Loki架構(gòu):

Loki使用了和prometheus一樣的標(biāo)簽來作為索引,通過標(biāo)簽既可以查詢?nèi)罩镜膬?nèi)容也可以查詢到監(jiān)控的數(shù)據(jù)。Loki將使用與prometheus相同的服務(wù)發(fā)現(xiàn)和標(biāo)簽重新標(biāo)記庫編寫了的pormtail,在節(jié)點(diǎn)中promtail以daemonset方式運(yùn)行在每個(gè)節(jié)點(diǎn)中通過api等,將它們發(fā)送到Loki,然loki與grafana連用,實(shí)現(xiàn)日志的可視化顯示。

日志的存儲(chǔ)框架:

1、Distributor:第一個(gè)接收日志的組件,Loki通過構(gòu)建壓縮數(shù)據(jù)塊來實(shí)現(xiàn)批處理和壓縮數(shù)據(jù)

2、Ingester:組件ingester是一個(gè)有狀態(tài)的組件,負(fù)責(zé)構(gòu)建和刷新chunck,當(dāng)chunk達(dá)到一定的數(shù)量或者時(shí)間后,刷新到存儲(chǔ)中去。

3、Querier:由Querier負(fù)責(zé)給定一個(gè)時(shí)間范圍和標(biāo)簽選擇器,Querier查看索引以確定哪些塊匹配,并通過greps將結(jié)果顯示出來。

四、部署

下載docker鏡像

Docker pull grafana/loki:1.5.0

Docker pull grafana/promtail:latest

Docker pull grafana/grafana:latest

編寫docker-compose文件

grafana:

image: grafana/grafana:latest //指定啟動(dòng)鏡像

user: root

volumes:- ./grafana/provisioning/:/etc/grafana/provisioning/ //文件映射以及文件夾映射

- ./grafana/grafana.ini:/etc/grafana/grafana.ini- /data/grafana:/var/lib/grafana

ports:- 3000:3000 //端口映射

network_mode: 'host' //所屬網(wǎng)絡(luò)

loki:

image: grafana/loki:1.5.0 //啟動(dòng)鏡像定義

container_name: loki

restart: always

ports:- "3100:3100"volumes:- /root/elk/loki-local-config.yaml:/etc/loki/loki-local-config.yaml

network_mode:'host'promtail:

image: grafana/promtail:latest

container_name: promtail

restart: always

volumes:- /root/elk/promtail-docker-config.yaml:/etc/promtail/config.yml- /opt:/opt //該映射地址可以我定義為日志存放地址1

- /var/log:/var/log //該映射地址可以我定義為日志存放地址2

network_mode: 'host'

編寫promtail與loki的啟動(dòng)配置文件

Promtail的配置文件 vim /root/elk/promtail-docker-config.yaml

server:

http_listen_port: 9080

grpc_listen_port: 0

positions:

filename: /tmp/positions.yaml # 游標(biāo)記錄上一次同步位置

sync_period: 5s #10秒鐘同步一次

clients:

- url: http://192.168.18.21:3100/loki/api/v1/push

scrape_configs:

- job_name: php-log

static_configs:

- targets:

- localhost

labels:

job: php_logs

__path__: /opt/loki/php/*log # docker運(yùn)行時(shí)已經(jīng)把宿主機(jī)的目錄 /opt/

映射給了promtail 容器的/opt/,所以這個(gè)地方可以直接訪問log文件

- job_name: tomcat-log

static_configs:-targets:-localhost

labels:

job: tomcat_logs

__path__:/opt/loki/tomcat/*log # docker運(yùn)行時(shí)已經(jīng)把宿主機(jī)的目錄 /opt/ 映射給了promtail 容器的 /opt/,所以這個(gè)地方可以直接訪問log文件

Loki配置文件 vim /root/elk/loki-local-config.yaml

參考官方

具體實(shí)例如下:

auth_enabled: falseserver:

http_listen_port:3100ingester:

lifecycler:

address:192.168.18.21ring:

kvstore:

store: inmemory

replication_factor:1final_sleep: 0s

chunk_idle_period: 5m

chunk_retain_period: 30s

schema_config:

configs:- from: 2020-09-02store: boltdb

object_store: filesystem

schema: v11

index:

prefix: index_

period: 168h

storage_config:

boltdb:

directory:/tmp/loki/index

filesystem:

directory:/tmp/loki/chunks

limits_config:

enforce_metric_name:falsereject_old_samples:truereject_old_samples_max_age: 168h

chunk_store_config:

max_look_back_period:0table_manager:

chunk_tables_provisioning:

inactive_read_throughput:0inactive_write_throughput:0provisioned_read_throughput:0provisioned_write_throughput:0index_tables_provisioning:

inactive_read_throughput:0inactive_write_throughput:0provisioned_read_throughput:0provisioned_write_throughput:0retention_deletes_enabled:falseretention_period:0

啟動(dòng)容器

Docker-compose up -d

總結(jié)

以上是生活随笔為你收集整理的promtail 配置详解_基于loki+promtail+grafana技术的日志集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。