KubernetesロギングシステムがLoki-Stackを立ち上げました

KubernetesロギングシステムがLoki-Stackを立ち上げました

スコフィールド初心者の運用と保守の話

ロキ入門


Grafana Lokiは、完全に機能するログスタックを形成できるコンポーネントのセットです。
他のロギングシステムとは異なり、Lokiはログに関するメタデータのみにインデックスを付けるというアイデアに基づいて構築されています:タグ(Prometheusタグと同じように)。次に、ログデータ自体が圧縮され、オブジェクトストレージ(S3やGCSなど)のブロックに保存されるか、ファイルシステムにローカルに保存されます。小さなインデックスと高度に圧縮されたブロックにより、操作が簡素化され、Lokiのコストが大幅に削減されます。
EKLと比較して、ロキは非常に軽量です。ロキを使用した後、ELKは突然香りを失います!ハハ~~~

Loki-スタックコンポーネント


最初に2枚の写真を入れてください

KubernetesロギングシステムがLoki-Stackを立ち上げました

KubernetesロギングシステムがLoki-Stackを立ち上げました

  • Promtail
    Promtailは、コンテナログをLokiまたはGrafanaサービスに送信するために使用されるログ収集ツールです。このツールには、主にコレクションターゲットの検出と、ログストリームへのラベルタグの追加、およびそれらのLokiへの送信が含まれます。さらに、Promtailのサービス検出はPrometheusに基づいています。サービス検出メカニズムが実装されています。
  • Loki
    Lokiは、水平方向に拡張でき、可用性が高く、マルチテナンシーをサポートするログ集約システムです。Prometheusと同じサービス検出メカニズムを使用し、フルテキストインデックスを作成する代わりに、ログストリームにタグを追加します。したがって、Promtailから受信したログと適用されたメトリックには、同じラベルセットがあります。ログとインジケーター間のコンテキスト切り替えが改善されるだけでなく、ログのフルテキストインデックス作成も回避されます。
  • Grafana
    Grafanaは、監視と視覚的観察のためのオープンソースプラットフォームであり、非常に豊富なデータソースをサポートします。Lokiテクノロジースタックでは、PrometheusやLokiなどのデータソースからの時系列データを表示するために特に使用されます。また、データダッシュボードの作成、探索、共有に使用できるクエリ、視覚化、アラームなどの操作も可能です。
    次に、Lokiスタックを開始して体験しましょう。

ヘルムを使用してloki-stackをデプロイします


1.前提条件として、k8sクラスターが必要であり、ヘルムツールをインストールする必要があります
。2。ヘルムソースを追加します


helm repo add loki https://grafana.github.io/loki/charts

下载到本地,也可以直接安装,因为需要修改存储类及其他一些配置,我习惯下载到本地,方便修改调试
helm fetch loki/loki-stack
tar -zxf loki-stack-0.38.1.tgz
cd loki-stack/
[root@ loki-stack]# ls -al
drwxr-xr-x.  7 root root   85 Jul  2 07:25 charts
-rwxr-xr-x.  1 root root  369 Jul  1 01:46 Chart.yaml
-rwxr-xr-x.  1 root root  342 Jul  1 01:46 .helmignore
-rwxr-xr-x.  1 root root 1662 Jul  1 01:46 README.md
-rwxr-xr-x.  1 root root  533 Jul  1 01:46 requirements.lock
-rwxr-xr-x.  1 root root  595 Jul  1 01:46 requirements.yaml
drwxr-xr-x.  3 root root   80 Jul  2 08:46 templates
-rwxr-xr-x.  1 root root  206 Jul 16 00:53 values.yaml

3. loki-stackのvalues.yamlファイルを変更します。ここでは、lokiとpromtailのみをインストールし、クラスターがgrafanaとprometheus用にデプロイしたprometheus-operatorを使用します。


[root@ ]# cat values.yaml
loki:
  enabled: true
promtail:
  enabled: true

4. lokiのvalues.yaml
を変更し主にstorageClassと永続性のサイズを変更し、serviceMonitorを開いてlokiを監視します


[root@  loki-stack]# cd charts/loki/
[root@  loki]# ll
total 20
-rw-r--r-- 1 root root  367 Nov 28 00:31 Chart.yaml
-rw-r--r-- 1 root root 1846 Nov 28 00:31 README.md
drwxr-xr-x 2 root root 4096 Dec  1 09:14 templates
-rw-r--r-- 1 root root 6695 Dec  1 09:15 values.yaml

persistence:
  enabled: true
  storageClass: "rbd"
  accessModes:
  - ReadWriteOnce
  size: 100Gi
  annotations: {}

serviceMonitor:
  enabled: true
  interval: ""
  additionalLabels: {}
  annotations: {}
  # scrapeTimeout: 10s

5. promtailのvalues.yamlを変更し
ますログディレクトリをさらに追加する場合は、ここに追加できます。


# Extra volumes to scrape logs from
volumes:
- name: docker
  hostPath:
    path: /var/lib/docker/containers
- name: pods
  hostPath:
    path: /var/log/pods

6.展開を実行します


cd loki-stack
kubectl create ns loki
helm install loki -n loki -f values.yaml .

[root@ loki-stack]# helm ls -n loki
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
loki    loki            1               2020-12-01 09:15:22.971437761 +0800 CST deployed        loki-stack-2.1.0        v2.0.0

7.既存のgrafanaインターフェースにログインし、lokiソースを追加し、
最初にlokiのサービスアドレスを取得します


[root@ loki-stack]# kubectl get svc -n loki
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
loki            NodePort    10.101.129.255   <none>        3100:30439/TCP   92m
loki-headless   ClusterIP   None             <none>        3100/TCP         92m

KubernetesロギングシステムがLoki-Stackを立ち上げました

情報を入力したら、[保存してテスト]をクリックして、grafanaがloki
8に接続できることを確認します。[探索]をクリックすると、以下に示すように、LogQLを使用してログをクエリできます。

KubernetesロギングシステムがLoki-Stackを立ち上げました

もちろん、他の人が作成したテンプレートをインポートすることもできます。より多くの
KubernetesロギングシステムがLoki-Stackを立ち上げました
ダッシュボードは、公式Webサイトhttps://grafana.com/grafana/dashboardsで表示できます。PS:記事はdev.kubeops.netに同期されます。

おすすめ

転載: blog.51cto.com/15060545/2657215