DUICUO

初めて Loki を見た後、ELK を置き換えることに決めました。

[[405303]]

みなさんこんにちは。Loki を初めて試した後、ELK をアンインストールすることにしました。

オープンソースのログソリューションであるLokiは、以前から利用可能です。EFK/ELKと同様に、軽量設計で人気があります。

EFK/ELKと比較すると、Lokiは生のログをインデックス化せず、ログタグのみをインデックス化します。ログは圧縮され、通常はファイルシステムを介して保存されます。そのため、運用コストが低く、効率性が大幅に向上します。

Lokiのストレージはファイルシステムに基づいているため、ログ検索はコンテンツ、具体的にはログ行内のテキストに基づいて行われます。そのため、クエリはLogQLをサポートしており、検索ウィンドウでタグをフィルタリングすることで検索とクエリを実行できます。

Loki は 2 つの部分で構成されています。Loki はログ エンジンであり、Promtail はログ収集プラットフォームで、Grafana を使用してログを表示します。

Loki の公式ドキュメントは非常に包括的です。

https://grafana.com/docs/loki/latest/インストール

Lokiのインストール

公式ドキュメントによると、Loki はソース コードのインストール、Docker、Helm、Local、Tanka をサポートしています。

事前にコンパイルされたバイナリ実行可能ファイルであるローカルを選択しました。

インストール手順:

ダウンロード: https://github.com/grafana/loki/releases/

カール -O -L

「https://github.com/grafana/loki/releases/download/v2.2.1/loki-linux-amd64.zip」

unzip を使用して実行可能ファイルを抽出します。

設定ファイルをダウンロード

https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml を wget します。

ロキの設定

Loki の設定ファイルは loki-local-config.yaml で、YAML 構文をサポートしています。

LokiはHTTPとgRPCの両方のインターフェースを提供します。対応するポート(3100と9096)は設定ファイルに記載されています。Lokiを起動すると、HTTPインターフェース経由でデータを表示できます。

設定が完了したら、Lokiを起動できます。Lokiはバイナリ実行ファイルなので、`--config.file`を使って設定ファイルを指定するだけで起動できます。

Promtailのインストール

Promtail もインストールが簡単です。

実行ファイルをダウンロード

  1. curl -O -L https://github.com/grafana/loki/releases/download/v2.2.1/promtail-linux-amd64.zip

実行ファイルは解凍することで抽出できます。

設定ファイルもダウンロードしてください。

  1. https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml​ を実行します

その後は設定ファイルを指定して実行ファイルを直接起動できるようになります。

Promtailの設定

Promtail も YAML 構文を使用しており、その設定は非常にシンプルです。

最初の3つの部分は非常にシンプルです。server 部分はリスニングポートを定義し、positions 部分は読み取り対象のファイルオフセットストレージの位置を定義し、clients 部分はLokiインターフェースアドレスを定義します。最後の scrape_configs 部分が重要な部分です。

  • Promtailは、scrape_configsセクションを通じてログ収集に関連する情報を設定します。テスト設定ファイルを例に挙げます。
  • job_name はログ グループを区別するために使用されます。
  • static_configs: ログを収集するための静的構成。
  • `targets` はログを収集するノードを指します。このパラメータは実際には自動検出中に使用されます。
  • ラベルは、収集するログ ファイルとオプションの追加ラベルのセットを定義します。
  • ジョブ タグ名。Grafana でインデックスを作成するときに使用されるタグ名。
  • __path__ はログ収集のファイルまたはパスを定義し、正規表現をサポートします。

設定ファイルを変更したら、`--config.file` を使用して設定ファイルを指定して、Loki を起動するのと同じように Promtail を起動できます。

PromtailはTailと同様に、新しく追加されたログエントリのみをリッスンします。Filebeatとは異なり、ログファイル全体を読み込むことはありません。これがPromtailとFilebeatの重要な違いです。

Grafana·ショーケース

さて、promisetailとLokiの設定は完了です。さて、実際に使ってみましょう。Grafanaバージョン6.0以降はLokiによる可視化をサポートしています。Dockerを使ってGrafanaを起動します。

Grafanaの設定は簡単です。ログイン後、「設定」>「データソース」に移動し、「データソースの追加」を選択して、ドロップダウンリストからLokiを選択します。

次に、データソースを設定します。URLを変更するだけで、その他の設定はニーズに合わせてカスタマイズできます。

私のLokiアカウントはまだ認証されていないため、ここで認証設定は必要ありません。Lokiアドレスを入力して保存するだけです。

保存後、Explore でログを表示します。

ここではLogQL構文がサポートされています。デフォルトでは、ルールが追加されていない場合はログは表示されません。promisetailで定義されたラベルに基づいて、ログブラウザにクエリを追加します。例えば、promisetailのジョブがnginxの場合、{job="nginx"}と入力してクエリを実行します。

その後、nginx ログを確認できます。

ログインターフェースはシンプルで、ログ本来の外観を維持しています。ログレベルは色で区別されており、ここでは「情報」が緑、「エラー」が赤で表示されているため、ログのカテゴリを非常に直感的に把握できます。ログレベルをクリックすると、そのレベルのログのみを表示することもできます。

要約:

EFK/ELK と比較すると、ロギング専用に設計され、Grafana エコシステムと統合された Loki は、中小企業やロギング システムに最適です。

この記事は、下記のQRコードからフォローできるWeChat公式アカウント「オペレーションズ・アンド・メンテナンス・リサーチ・インスティテュート」から転載したものです。転載の許可については、オペレーションズ・アンド・メンテナンス・リサーチ・インスティテュートWeChat公式アカウントまでお問い合わせください。