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