本篇內(nèi)容主要講解“Loki怎么配置使用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Loki怎么配置使用”吧!
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比沾化網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式沾化網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋沾化地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
Kubernetes
已經(jīng)成為編排領(lǐng)域事實(shí)上的標(biāo)準(zhǔn),同時(shí)Prometheus
也成為基于Kubernetes
平臺(tái)之上、監(jiān)控領(lǐng)域的標(biāo)配。Prometheus
能夠收集業(yè)務(wù)metrics
數(shù)據(jù),Grafana
界面展示,AlertManager
告警,一站式的監(jiān)控框架就此誕生。通過這一套框架可以在線監(jiān)控服務(wù)運(yùn)行狀態(tài),如果不正常,能夠通過各種途徑通知給相關(guān)人員;相關(guān)人員通過查看告警信息,通過日志分析出現(xiàn)問題具體原因。
如何查看日志?
我們可以進(jìn)入Pod
中查詢,如果Pod
進(jìn)程已經(jīng)崩潰,那么將無法進(jìn)入容器內(nèi)部,沒關(guān)系,Pod
所在宿主機(jī)掛載的日志文件,你不得不查詢已經(jīng)崩潰Pod
所在宿主機(jī),然后通過命令行進(jìn)入宿主機(jī)中查詢?nèi)罩?,這樣的話如果碰到一個(gè)服務(wù)多個(gè)副本運(yùn)行在同一個(gè)節(jié)點(diǎn)上,那么可能會(huì)出現(xiàn)日志交叉打印的情況,服務(wù)崩潰還沒有解決,你已經(jīng)崩潰了,其實(shí)出現(xiàn)這種問題的真正原因是Kubernetes
超強(qiáng)的自動(dòng)橫向擴(kuò)容能力,你可能無法準(zhǔn)確預(yù)測(cè)到服務(wù)副本數(shù)量和所在節(jié)點(diǎn),大多數(shù)公司是基于ELK
(日志收集解決方案)搭建一套日志收集和查看平臺(tái),就這一套平臺(tái)不僅耗費(fèi)資源,而且需要Kibina
和Grafana
兩套平臺(tái)之間頻繁切換,影響工作效率,為了解決此問題Loki
問世。
從此,一站式的監(jiān)控、告警、日志分析平臺(tái)解決了我們不用頻繁切換系統(tǒng)的麻煩。
基于Loki
的完整的日志收集框架需要三部分完成
Promtail
:日志收集客戶端,以DaemonSet
方式運(yùn)行在各個(gè)計(jì)算節(jié)點(diǎn)上、當(dāng)然也可以通過sidercar
方式運(yùn)行在Pod
內(nèi)部。Promtail
本身可以替換為fluent-bit
或者fluentd
Loki
:日志收集服務(wù)端,接收來自Promtail
發(fā)送的日志
Grafana
:日志展示
Loki
是一個(gè)高可用、可擴(kuò)展、多租戶的日志收集系統(tǒng),受Prometheus
啟發(fā)而出現(xiàn),但Loki
側(cè)重點(diǎn)在于日志并且通過客戶端推送獲取日志信息,Prometheus
更多在于監(jiān)控指標(biāo)并且通過拉取獲取指標(biāo)信息,相比于其它日志系統(tǒng)具有以下優(yōu)勢(shì):
非常節(jié)省資源,提供日志壓縮功能。
沒有把全文添加到索引中,而是把標(biāo)簽加入到索引中,對(duì)于用過Prometheus
的人來說,使用起來非常順手。
非常適合存儲(chǔ)和搜索Kubernetes Pod
的日志,因?yàn)樗軌虬?code>Pod所在的節(jié)點(diǎn)信息、容器信息、命名空間、標(biāo)簽添加到索引中。
原生支持Grafana 6.0
以上版本。
它的主要功能是接收來自客戶端的日志,Distributor
接收到日志之后,首先會(huì)校驗(yàn)正確性,校驗(yàn)通過之后會(huì)把它劃分為多個(gè)批次,并發(fā)送給Ingester
。每個(gè)發(fā)送過來的流都對(duì)應(yīng)一個(gè)Ingester
,當(dāng)日志發(fā)送到Distributor
之后,Distributor
會(huì)根據(jù)hash
和元數(shù)據(jù)算法計(jì)算應(yīng)該路由到那個(gè)Ingester
上。
其中Distributor
和Ingester
之間是通過gRPC
通信,都是無狀態(tài)應(yīng)用,支持橫向擴(kuò)展。
它的主要功能是接收來自Distributor
發(fā)送的日志并寫入到后端存儲(chǔ)中,其中后端存儲(chǔ)可以是DynamoDB、 S3、 Cassandra、FS
等等。其中需要注意,ingester
會(huì)嚴(yán)格驗(yàn)證接收到的日志行是以時(shí)間戳升序接收的(即,每個(gè)日志的時(shí)間戳都比之前的日志晚一些)。
當(dāng)ingester
收到不遵循此順序的日志時(shí),日志行將被拒絕,并返回錯(cuò)誤(Entry out of order
)。
總結(jié)起來說,首先distributor
會(huì)接受來自外部數(shù)據(jù)流請(qǐng)求發(fā)送,每個(gè)數(shù)據(jù)流都有自己的一致性hash
,然后distributor
通過計(jì)算hash
,把數(shù)據(jù)流發(fā)送到正確的ingester
上面;ingester
會(huì)創(chuàng)建chunk
或者或者追加數(shù)據(jù)到已存在chunk
上面(必須保證租戶和標(biāo)簽唯一),最后完成數(shù)據(jù)存儲(chǔ)。
Chunks
是Loki
長期數(shù)據(jù)存儲(chǔ),旨在提供查詢和寫入操作,支持DynamoDB、Bigtable、 Cassandra、S3、FS
(單機(jī))。index
是根據(jù)chunks
中元數(shù)據(jù)生成的索引,支持DynamoDB、Bigtable、 Apache Cassandra、BoltDB
(單機(jī))。默認(rèn)情況下Chunks
使用FS
本地文件系統(tǒng)存儲(chǔ),文件系統(tǒng)存儲(chǔ)存在一定的限制,大約可以存儲(chǔ)550W
個(gè)chunk
,超過這個(gè)限制可能會(huì)有問題。
Index
使用BoltDB
存儲(chǔ),BoltDB
是相當(dāng)出名的Go
實(shí)現(xiàn)的KV
讀寫引擎, 用戶有etcd
等。如果需要支持高可用部署,則需要引入大數(shù)據(jù)組件
Ingesters
內(nèi)存中查詢數(shù)據(jù),然后再回退到后端存儲(chǔ)中查詢數(shù)據(jù),支持并行化查詢和數(shù)據(jù)緩存。Loki
的配置比較多,配置在/etc/loki/loki.yaml
中,如果需要優(yōu)化存儲(chǔ)或者日志接收出現(xiàn)異常問題時(shí)可能需要修改配置。比如Loki
在接收客戶端發(fā)送日志可能會(huì)出現(xiàn)發(fā)送速率超過限制,這個(gè)時(shí)候可能需要修改ingestion_rate_mb
。
使用Loki
的過程中,可能會(huì)疑惑,為了提升查詢速度,是不是應(yīng)該使用盡可能多的標(biāo)簽,因?yàn)?code>Loki本身的索引是由標(biāo)簽生成的,使用其它日志系統(tǒng)的情況下,可以通過添加盡可能多的索引解決查詢速度慢的問題,這是常見的思維方式。然而Loki
數(shù)據(jù)存儲(chǔ)設(shè)計(jì)思想是使用盡可能少的索引,因?yàn)?code>Loki本身會(huì)把數(shù)據(jù)存儲(chǔ)為多個(gè)數(shù)據(jù)塊,并通過標(biāo)簽中的索引匹配數(shù)據(jù)塊。如果你覺得查詢速度慢,可以重新配置分片大小和間隔,也可以通過配置的方式使用盡可能多的查詢器并行查詢。較小的索引和并行蠻力查詢與較大/較快的全文本索引之間的這種權(quán)衡使Loki
與其他系統(tǒng)相比可以節(jié)省成本。操作大索引的成本和復(fù)雜性很高,而且索引一旦建立,通常是固定的,如果您要查詢或不查詢,則全天24
小時(shí)付費(fèi),這種設(shè)計(jì)的優(yōu)點(diǎn)意味著您可以決定要擁有查詢要求是什么,可以根據(jù)需要進(jìn)行更改,同時(shí)數(shù)據(jù)被大量壓縮并存儲(chǔ)在低成本對(duì)象存儲(chǔ)中,以將固定的運(yùn)營成本降至最低,同時(shí)仍然具有令人難以置信的快速查詢功能,Loki
跟云原生思想也是契合的。
Loki
的安裝方式大致有四種,TK
(官方推薦)、helm、docker
、二進(jìn)制部署,我是通過k8s statefulset
方式編排運(yùn)行的。具體請(qǐng)參考:
https://github.com/grafana/loki/blob/v1.5.0/docs/installation/README.md
看到這個(gè)名字就會(huì)想到Prometheus
,其實(shí)它們?cè)O(shè)計(jì)思想也是相通的,它作為一個(gè)客戶端端代理運(yùn)行在計(jì)算節(jié)點(diǎn)上,當(dāng)然也可以通過邊車模式運(yùn)行在Pod
中,主要功能是收集日志、為日志流添加標(biāo)簽、推送日志。
clients
:用于配置Loki
服務(wù)端地址
positions
:收集日志文件位置,在Kubernetes
中服務(wù)以Pod
形式運(yùn)行,Pod
生命周期有可能隨時(shí)結(jié)束,所以需要記錄日志收集位置并掛載到宿主機(jī),通過位置記錄方便下次繼續(xù)收集。
scrape_configs
:日志文件收集配置,支持收集syslog、jouanl、docker、Kubernetes
、以及日志文件。根據(jù)收集需求,自行配置。
推薦使用DaemonSet
方式運(yùn)行,具體參考官方yaml
編排示例:
https://github.com/grafana/loki/blob/v1.5.0/docs/clients/promtail/installation.md
不在贅述。
Grafana
版本應(yīng)該使用6.0
以上版本。
admin
賬號(hào)登錄
Grafana
實(shí)例Configuration > Data Sources
+ Add data source
按鈕Loki
服務(wù)地址,如果在本地輸入
http://localhost:3100
或者
Loki svc
地址:
https://loki:3100
Explore
,會(huì)提示
Log labels
搜索按鈕,點(diǎn)擊即可搜索。到此,相信大家對(duì)“Loki怎么配置使用”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
網(wǎng)頁標(biāo)題:Loki怎么配置使用
轉(zhuǎn)載來源:http://jinyejixie.com/article16/jjpsdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)公司、建站公司、網(wǎng)站收錄、網(wǎng)站營銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)