我尝试轻松地试用了Grafana Loki

undefined

首先

由于想要将k8s的日志以图形化的方式呈现出来,所以决定尝试使用Grafana Loki。
虽然EFK堆栈在日志基础设施领域很有名,但考虑到Grafana Loki具有轻量级操作、类似Prometheus并且是更新的开源解决方案,所以决定尝试使用Grafana Loki。
有关两者的比较,请参考以下链接:
https://grafana.com/docs/loki/latest/overview/comparisons/

安装

环境

    • Ubuntu 18.04

 

    • ベアメタル

 

    • proxyあり

 

    kubernetes v1.18.5

任务记录

截至2021年1月29日,以下有五种安装方法。

不同方法安装Loki和Promtail的说明。

使用Tanka进行安装(推荐)
通过Helm进行安装
通过Docker或Docker Compose进行安装
本地安装和运行
从源代码进行安装

首先,我尝试了使用推荐的Tanka方法,但并不顺利(所有的pod都没有运行成功)。

由于处理垃圾桶似乎要花费很长时间,所以我决定先尝试使用Helm的方式。
只要运行Helm安装,Loki和Promtail就很容易搞定。

按照Helm的步骤进行安装。

$ helm repo add grafana https://grafana.github.io/helm-charts
"grafana" has been added to your repositories
$ helm repo update
Hang tight while we grab the latest from your chart repositories...

--- snip ---

Grafana的存储库已经被注册了。

执行deploy-loki-stack-loki-promtail-grafana-prometheus命令,进行Loki Stack(Loki,Promtail,Grafana,Prometheus)的安装。

$ k create ns loki
namespace/loki created
$ helm upgrade --install -n loki loki grafana/loki-stack  --set grafana.ena
bled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persisten
tVolume.enabled=false
Release "loki" does not exist. Installing it now.
NAME: loki
LAST DEPLOYED: Fri Jan 29 06:34:32 2021
NAMESPACE: loki
STATUS: deployed
REVISION: 1
NOTES:
The Loki stack has been deployed to your cluster. Loki can now be added as a datasource in Grafana.

See http://docs.grafana.org/features/datasources/loki/ for more detail.
$ k -n loki get pod
NAME                                           READY   STATUS    RESTARTS   AGE
loki-0                                         1/1     Running   0          3h24m
loki-grafana-84f56465bc-6bd5n                  1/1     Running   0          3h24m
loki-kube-state-metrics-5867478d69-qgmk5       1/1     Running   0          3h24m
loki-prometheus-alertmanager-995847787-nzmnf   2/2     Running   0          3h24m
loki-prometheus-node-exporter-kvqqr            0/1     Pending   0          3h24m
loki-prometheus-pushgateway-945fb9558-mfmfv    1/1     Running   0          3h24m
loki-prometheus-server-9f7bdb9b4-4r6z9         2/2     Running   0          3h24m
loki-promtail-z6vpx                            1/1     Running   0          3h24m
$ $ k -n loki describe pod loki-prometheus-node-exporter-kvqqr

--- snip ---

Events:
  Type     Reason            Age                      From               Message
  ----     ------            ----                     ----               -------
  Warning  FailedScheduling  4m16s (x141 over 3h25m)  default-scheduler  0/1 nodes are available: 1 node(s) didn't have free ports for the requested pod ports.

node-exporter已经在另一个命名空间中运行,所以没有问题。
由于pod的hostPort重复,导致其处于挂起状态。

为了登录Grafana,使用kubectl edit将Grafana的service类型更改为NodePort。
(本应该使用Helm的变量进行指定,但由于本次只是试验,所以使用edit命令)

确认Grafana初始用户的登录信息。

$ kubectl -n loki get secret loki-grafana -o jsonpath='{.data.admin-user}' |base64 -d
admin

$ kubectl -n loki get secret loki-grafana -o jsonpath='{.data.admin-password}' |base64 -d
RUEmHKEj2jSMGmOmyAiBFnhMWugaM0GLjEzF7MjXn

我原本期望能夠在不進行Grafana設定的情況下查看日誌儀表板,但卻沒有發現任何儀表板。(雖然已經註冊了Loki和Prometheus的數據源)
因此,我使用了Grafana Labs網站上提供的以下儀表板來創建自己的儀表板。

    • https://grafana.com/grafana/dashboards/12611

 

    https://grafana.com/grafana/dashboards/12019

以下是通过Loki的日志仪表板的图像。

grafana_1.png
grafana_2.png
grafana_3.png

由于可以轻松搜索日志,我觉得可以用于运营。

由于donut使用了Pie Chart的面板,因此需要在Grafana中单独安装插件。
为了安装插件,我在Grafana的pod中执行了grafana-cli plugins install grafana-piechart-panel命令,但由于代理环境的原因失败了。
因此,最终我决定将Grafana挂载PV(NFS),在NFS上下载插件模块并安装插件。

在中文中进行陈述, 只需要一种选项:

引用

    • https://grafana.com/docs/loki/latest/overview/comparisons/

 

    • https://speakerdeck.com/polar3130/lets-begin-cloud-native-logging-with-grafana-loki

 

    • https://grafana.com/docs/loki/latest/installation/

 

    • https://grafana.com/docs/loki/latest/installation/helm/

 

    https://grafana.com/grafana/plugins/grafana-piechart-panel/
bannerAds