Kubernetes上安裝loki

近期有需求在kubernetes安裝loki,此文檔用于記錄一下

環(huán)境說(shuō)明

kubernetes1.14.3 helm3.x loki1.6 promtail1.6

loki是什么

Loki是一個(gè)水平可擴(kuò)展,高可用性,多租戶的日志聚合系統(tǒng),受到Prometheus的啟發(fā)。它的設(shè)計(jì)非常經(jīng)濟(jì)高效且易于操作,因?yàn)樗粫?huì)為日志內(nèi)容編制索引,而是為每個(gè)日志流編制一組標(biāo)簽。官方介紹說(shuō)到:Like Prometheus, but for logs. 具體的可以參考以前寫的Grafana日志聚合工具Loki搭建使用這篇博客。

安裝lokiss

添加helm的chart庫(kù)

$ helm repo add loki https://grafana.github.io/loki/charts
"loki" has been added to your repositories
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "loki" chart repository
Update Complete. ? Happy Helming!?
$ helm repo list
NAME    URL
loki    https://grafana.github.io/loki/charts

安裝loki及promtail

安裝方式分為多種,我是下載相應(yīng)的chart包修改了些配置再安裝的

# 查找loki的相關(guān)chart 其中l(wèi)oki-stack是包含了loki和promtail
$ helm search repo loki
NAME            CHART VERSION   APP VERSION DESCRIPTION
loki/loki       0.31.0          v1.6.0      Loki: like Prometheus, but for logs.
loki/loki-stack 0.40.0          v1.6.0      Loki: like Prometheus, but for logs.
loki/fluent-bit 0.3.0           v1.6.0      Uses fluent-bit Loki go plugin for gathering lo...
loki/promtail   0.24.0          v1.6.0      Responsible for gathering logs and sending them...


# 安裝參考
## 默認(rèn)參考
$ helm upgrade --install loki loki/loki-stack
# 自定義安裝
$ helm upgrade --install loki -n loki loki/loki-stack
# 只安裝loki或者promtail
$ helm upgrade --install loki loki/loki
$ helm upgrade --install promtail loki/promtail --set "loki.serviceName=loki"
  • 修改配置及安裝

下載相應(yīng)的chart包,修改一些配置再安裝

# 需要給loki做持久化
$ kubectl create ns loki

$ helm pull loki/loki
$ tar -xvf loki-0.31.0.tgz
$ vim loki/values.yaml
......
# 由于獲取的日志都存放在loki中,所以給loki做一下持久化
persistence:
  enabled: true #由原來(lái)的false改為true
  storageClassName: loki #添加這一行 前提是你需要?jiǎng)?chuàng)建好名為loki的storageclasses
  accessModes:
  - ReadWriteOnce
  size: 50Gi
  annotations: {}
  # subPath: ""
  # existingClaim:
......
# 安裝loki
$ helm upgrade --install loki loki/ -n loki

# 給promtail做一些配置
$ helm pull loki/promtail
$ ls
promtail-0.24.0.tgz
$ tar -xvf promtail-0.24.0.tgz
$ vim promtail/values.yaml
......
# 如果你想要promtail對(duì)接外部的loki,這個(gè)地方需要修改,我這里不是對(duì)接外部的loki 所以沒有修改
loki:
  serviceName: ""  # Defaults to "${RELEASE}-loki" if not set
  servicePort: 3100
  serviceScheme: http
  
# 如果你的docker存儲(chǔ)位置修改過(guò),這里就要做對(duì)應(yīng)的修改 否則promtail拉取日志時(shí)會(huì)報(bào)錯(cuò)的
# Extra volumes to scrape logs from
volumes:
- name: docker
  hostPath:
    path: /home/docker-data/docker/containers
- name: pods
  hostPath:
    path: /var/log/pods

# Custom volumes together with the default ones
extraVolumes: []

volumeMounts:
- name: docker
  mountPath: /home/docker-data/docker/containers
  readOnly: true
- name: pods
  mountPath: /var/log/pods
  readOnly: true
......


# 安裝
$ helm upgrade --install promtail promtail/ --set "loki.serviceName=loki" -n loki
$ kubectl get pods -n loki
NAME             READY   STATUS    RESTARTS   AGE
loki-0           1/1     Running   0          5m20s
promtail-82czd   1/1     Running   0          2m10s
promtail-d5xjp   1/1     Running   0          2m10s
promtail-h9rc9   1/1     Running   0          2m10s
promtail-n99vv   1/1     Running   0          2m10s
promtail-pfs78   1/1     Running   0          2m10s
promtail-shwr9   1/1     Running   0          2m10s
promtail-wxp4t   1/1     Running   0          2m10s

grafana的安裝配置不再做過(guò)過(guò)多贅述。

需要注意的事

  • 如果你grafana是和loki安裝在同一namespaces下,配置loki源時(shí)寫入http://loki:3100。
  • 如果你的grafana是和loki安裝在不同namespaces下,配置loki源時(shí)寫入http://loki.loki.svc.cluster.local:3100(.svc前面為你namespaces名字)
  • 如果你的grafana是安裝在外部機(jī)器上的,需要你的loki暴露出來(lái)端口或解析為域名在配置loki源,ip+port和域名兩種方式都可以配置

參考鏈接

https://www.cnblogs.com/ssgeek/p/11584870.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容