実践: Loki をベースにした K8s ログの収集

実践: Loki をベースにした K8s ログの収集

1. ロキの紹介

1. Loki は、水平方向にスケーラブルで、可用性が高く、軽量で使いやすい、マルチテナント ログ集約システムです。ログ コンテンツをインデックス化するのではなく、各ログ ストリームのラベル セットをコンパイルするため、コスト効率が非常に高く、操作が簡単になるように設計されています。このプロジェクトは Prometheus に触発されており、特に Prometheus および k8s ユーザー向けに最適化されています。

2. Loki のアーキテクチャは非常にシンプルで、次の 3 つの部分で構成されています。①、Loki: メイン サーバー。ログの保存とクエリの処理を担当し、es に似ており、Prometheus と同じサービス検出メカニズムを使用して、フルテキスト インデックスを構築する代わりにログ ストリームにタグを追加します。したがって、Promtail から受信したログとアプリケーションのメトリックには、同じラベル セットが含まれます。ログとメトリック間のコンテキスト切り替えが改善されるだけでなく、ログの全文インデックス作成も回避されます。

②、promtail:ログを収集してLokiに送信する役割を担う収集側。 Filebeat と同様に、このツールの主な機能は、収集ターゲットの検出、ログ ストリームへのラベルの追加、そしてそれらを Loki に送信することです。 Promtail のサービス検出は、Prometheus のサービス検出メカニズムに基づいています。

③、Grafana(皆さんもすでにご存知でしょう):収集されたログの表示を担当し、非常に豊富なデータソースをサポートします。 Loki テクノロジー スタックでは、Grafana は主に Prometheus や Loki などのデータ ソースからの時系列データを表示するために使用されます。クエリ、視覚化、アラームなどの操作も可能になります。ページで指定されたラベルを持つポッドのログを照会できます。

次に、helmをインストールします

注: Loki は helm インストール方法を提供しており、インストール用のパッケージを直接ダウンロードできるので、まず helm をインストールします (マスターノードのインストール)

1. helmインストールパッケージをダウンロードする

[root@master ~]# wget https://get.helm.sh/helm-v3.9.0-linux-amd64.tar.gz

写真

2. インストール パッケージを解凍し、helm 実行コマンドを /usr/bin/ ディレクトリに移動します (簡易インストール)

 [root@master ~]# tar -xf helm-v3.9.0-linux-amd64.tar.gz #解压[root@master ~]# cd linux-amd64/ [root@master linux-amd64]# ls helm LICENSE README.md [root@master linux-amd64]# mv helm /usr/bin/

写真

3. Helmの自動補完を設定する

[root@master linux-amd64]# vim /etc/profile #编辑该文件source <(helm completion bash) #文档最后写入该命令[root@master linux-amd64]# source /etc/profile #使其生效

写真

4. インストールが成功したことを確認する

[root@master ~]# helm version #查看版本version.BuildInfo{Version:"v3.9.0", GitCommit:"7ceeda6c585217a19a1131663d8cd1f7d641b2a7", GitTreeState:"clean", GoVersion:"go1.17.5"} [root@master ~]# helm repo list #查看仓库Error: no repositories to show #还没有添加仓库[root@master ~]# helm env #查看helm的配置信息HELM_BIN="helm" HELM_CACHE_HOME="/root/.cache/helm" HELM_CONFIG_HOME="/root/.config/helm" HELM_DATA_HOME="/root/.local/share/helm" HELM_DEBUG="false" HELM_KUBEAPISERVER="" HELM_KUBEASGROUPS="" HELM_KUBEASUSER="" HELM_KUBECAFILE="" HELM_KUBECONTEXT="" HELM_KUBETOKEN="" HELM_MAX_HISTORY="10" HELM_NAMESPACE="default" HELM_PLUGINS="/root/.local/share/helm/plugins" HELM_REGISTRY_CONFIG="/root/.config/helm/registry/config.json" HELM_REPOSITORY_CACHE="/root/.cache/helm/repository" HELM_REPOSITORY_CONFIG="/root/.config/helm/repositories.yaml"

3. Lokiをデプロイする

1. Helm ソース (ウェアハウス) を追加する

[root@master ~]# helm repo add grafana https://grafana.github.io/helm-charts #添加仓库"grafana" has been added to your repositories [root@master ~]# [root@master ~]# [root@master ~]# helm repo list #查看仓库NAME URL grafana https://grafana.github.io/helm-charts [root@master ~]# helm search repo | grep loki #在仓库中搜索可用的helm的charts grafana/loki 5.36.3 2.9.2 Helm chart for Grafana Loki in simple, scalable... grafana/loki-canary 0.14.0 2.9.1 Helm chart for Grafana Loki Canary grafana/loki-distributed 0.76.1 2.9.2 Helm chart for Grafana Loki in microservices mode grafana/loki-simple-scalable 1.8.11 2.6.1 Helm chart for Grafana Loki in simple, scalable... grafana/loki-stack 2.9.11 v2.6.1 Loki: like Prometheus, but for logs. #下载最后一个堆栈类型,包含了各日志工具

2. helm チャートをダウンロードします。注: 直接インストールすることもできます。いくつかの設定を変更する必要があるため、最初にローカルにダウンロードすることを選択できます。

 [root@master ~]# helm pull grafana/loki-stack #下载[root@master ~]# ls anaconda-ks.cfg calico.yaml helm-v3.9.0-linux-amd64.tar.gz linux-amd64 loki-stack-2.9.11.tgz

2. 減圧

[root@master ~]# tar -xf loki-stack-2.9.11.tgz #解压[root@master ~]# cd loki-stack [root@master loki-stack]# ls #可以看到,解压后目录下会有多个资源文件charts Chart.yaml README.md requirements.lock requirements.yaml templates values.yaml

4. メイン設定ファイル(リソースファイル)を変更し、Grafanaを有効にする

[root@master loki-stack]# vim values.yaml 36 grafana: 37 enabled: true #由false修改为true,启用grafana 38 sidecar: 39 datasources: 40 label: "" 41 labelValue: "" 42 enabled: true 43 maxLines: 1000 44 image: 45 tag: 8.3.5

写真

5. アプリケーションをインストールして展開し、リソースを表示する

まずlokiという名前空間を作成します

[root@master loki-stack]# kubectl create ns loki namespace/loki created [root@master loki-stack]# helm install loki -n loki . #安装,这里最后有个点,为引用当前目录下的资源NAME: loki LAST DEPLOYED: Sat Nov 18 14:43:20 2023 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. [root@master loki-stack]# kubectl -n loki get pods #查看pod资源NAME READY STATUS RESTARTS AGE loki-0 1/1 Running 0 8m43s loki-grafana-6b5f7dc79-rjcwm 2/2 Running 0 8m43s loki-promtail-t69rd 1/1 Running 0 8m43s loki-promtail-tckwm 1/1 Running 0 8m43s [root@master loki-stack]# [root@master loki-stack]# [root@master loki-stack]# [root@master loki-stack]# kubectl -n loki get deploy #查看控制器NAME READY UP-TO-DATE AVAILABLE AGE loki-grafana 1/1 1 1 8m49s

写真

現時点では、Grafana のサービス タイプは clusterip であり、外部ネットワーク アクセスのためにタイプを nodeport に変更する必要があります。

写真

6. 編集を通じてGrafanaのサービスタイプを変更する

[root@master loki-stack]# kubectl -n loki edit svc loki-grafana service/loki-grafana edited #修改类型为nodeport [root@master loki-stack]# kubectl -n loki get svc #查看暴露的端口NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE loki ClusterIP 10.96.209.225 <none> 3100/TCP 14m loki-grafana NodePort 10.96.164.26 <none> 80:31276/TCP 14m loki-headless ClusterIP None <none> 3100/TCP 14m loki-memberlist ClusterIP None <none> 7946/TCP 14m

IV.訪問

1.まずログインパスワードを取得する

[root@master loki-stack]# kubectl get secret -n loki loki-grafana -o jsnotallow="{.data.admin-password}" | base64 --decode ; echo hdHI2C0vBAWdE6dw8Mbx7j846JZSsCUXbmUXLx4g #获取到的密码

2. ログインします。ノードのIP+ポートのユーザーはadminで、パスワードはコマンドラインから取得したパスワードです。

写真

Lokiデータソースがデフォルトで追加されました

写真

3. テンプレートをインポートする

公式サイトからダウンロードできます

Grafana テンプレートの公式サイト: https://grafana.com/grafana/dashboards/?search=linux

ダウンロードしたテンプレートをインポートし、Lokiデータソースを選択します

写真

ログ表示

写真

写真


<<:  Kubernetes の怠け者開発者ガイド

>>:  2024 年に無視できない 6 つのクラウド セキュリティの脅威

推薦する

10ページ落ちしたウェブサイトを復旧させる3つの方法と対策

多くのウェブマスターは、自分のウェブサイトのランキングが再び下がったと不満を言っており、Baiduの...

Kubernetes での Spark デプロイメントの完全ガイド

[編集者注] この記事は、Kubernetes 上で Spark クラスターを構築するためのガイドで...

トラフィックもカテゴリーに分かれています。FBはトピックコンテンツが最も多いですが、収益化が最も難しいです。

【捜狐ITニュース】北京時間9月27日、米国のテクノロジーブログ「ビジネスインサイダー」は水曜日、デ...

Nヘッドボスはヒーローに招待状を広く送り、SEOヒーローはニュースを聞いてミンユエを助けに招待する

6月は企業が採用情報で忙しくなる時期ですが、SEO業界も例外ではありません。最大のSEO企業であるN...

Oracle Database 12c R1でハイブリッドクラウドが簡単に

7月20日、毎年恒例の業界イベント「Oracle Database Cloud Technology...

justhostはどうですか?アトランタ VPS シンプルレビュー

justhostはどうですか? justhost は米国東海岸のアトランタに米国で 3 番目のデータ...

#台湾サーバー# serverfield-$169/E5-2407/16g メモリ/250g SSD/無制限トラフィック

serverfield は 2009 年に設立された台湾の会社 (登録番号: 66607099) で...

すぐにウェブサイトが開くようにしたいですか?ウェブサイトを構築するときは、次の4つのポイントに注意してください

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています百度は広告...

クラウドサービス利用の課題: 間違ったアーキテクチャは硬直性と失敗を意味する

クラウドサービスの移行作業は膨大です。残念ながら、私たちはオンプレミス展開でのこれまでの経験という狭...

ウェブサイトデータを分析してSEOをより効果的に行う

周知のとおり、SEO はウェブサイトの運用と保守の手段であり、その費用対効果の高さから多くの運用保守...

今すぐToutiaoにゲーム広告を掲載するための操作ガイドを入手してください!

広告は選択のプロセスである広告は実際には選択のプロセスです。オプティマイザーは経験とデータ分析を活用...

Baidu のアルゴリズムは絶えず更新されています。「トップページにランクインするには何日かかりますか?」というスローガンをどう思いますか?

最近、Baiduはさまざまなレベルで継続的にアップデートされており、多くの規則や規制が追加されていま...

百度の画面支配と排水の詳細と操作方法を解説した記事

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスでは、早速、Baidu ...

ispserver: ロシアの VPS、ロシアのサーバー、無制限のトラフィック、PayPal 支払い

ispserver、設立年は不明ですが、ドメイン名は1998年に登録され、公式発表情報は2001年か...