LOKIとPLGスタックによるKubernetesのログ記録


ロキは何ですか。


Loki は、オープンソースのマルチテナントログ集約システムです.これはGrafanaとPromtrailと収集し、ログにアクセスするために使用することができますsimilar to the ELK/EFK stack . 一方、高度なデータ解析と可視化を行うためにKibanaとFlasticSearchを使用することができますが、LOKIベースのログスタックは、軽量で操作するのが簡単に焦点を当てています.
LOKIクエリ言語を提供しますLogQL , これによりユーザはログを問い合わせることができます.これはPrometheus ';promqlに触発され、分散された“grep”は、集計ログのソースと見なされることができます.
従来のログ記録システムの主な違いの一つは、ログの内容全体ではなく、LOKIインデックスがメタデータであることである.したがって、インデックスが小さくなり、メモリ消費が減少し、最終的にコストが低下する.この設計の1つの欠点は、クエリがメモリにロードされてロードされたすべてのものを持つよりもパフォーマンスが低いかもしれないということです.
ログは、ディスク上のファイルを格納する必要がなく、アマゾンのS 3やGCSのようなクラウドストレージに直接格納されます.これは操作を簡素化し、ディスク領域の不足などの問題を回避する.
この記事はもともと1967年に出版されましたCoder Society .

LOKIを使用する8つの利点


ここでは、スタックにLOKIを使用することの主な利点をいくつか示します.
  • 簡単に使用する:それは簡単にセットアップと操作するのは簡単です.
  • 軽量:それだけではなく、EFKのような完全なログメッセージの代わりにメタデータをインデックスしています.これにより、LOKI展開に必要なRAMインスタンスが安価になる.
  • クラウドネイティブ:うん、それは他のcloud-native tools Kubernetesのようなものは、ポッド・ラベルのようなメタデータが自動的に削られて、インデックス付けされました.
  • オブジェクトストレージを使用します.
  • 水平スケール:1つのバイナリローカルまたは小規模操作のために実行することができます.
  • クオラの一貫性:ダイナモスタイルquorum consistency 通常のクエリ結果を保証するためのreadおよびwrite操作の場合.
  • マルチテナントのサポートmulti-tenancy テナントのデータを格納するテナントIDを介して.
  • ネイティブGrafanaのサポート:それはGrafanaのネイティブサポートしています.
  • Lokiのユースケース


    私たちがロキの利点について話した今、いくつかのpopular use cases :
    デバッグとトラブルシューティング:カウロキは、チームが問題の下部に手に問題に関連する有用な情報を提供することによって取得するのに役立ちます.たとえば、問題が発生したときに、それが簡単に、何が正確に起こったのか、どのように問題が起こったかを見るのは簡単です.
    モニタリング:シュープロメテウスは、監視のために業界で広く使用されています.しかし、LOKIでログを監視することによって多くの問題を識別できます.たとえば、あなたのウェブサイトのエラーレートに目を維持し、特定のしきい値を超えているたびに警告を受け取るためにそれを使用することができます.
    サイバーセキュリティ:あなたの会社のシステムでの脅威、問題、悪意のある活動を識別することができます.さらに、システムが既に妥協したあと、攻撃の詳細を理解するのを助けます.
    コンプライアンス:監査会社の監査ログを維持する必要があります.
    ビジネスインテリジェンス:Rockロキは、非技術的なチームがログデータを理解し、ビジネスの成長のための新しい戦略とアイデアを開発するのに役立ちます.例えば、マーケティング担当者は変換率最適化のためにデータを使用することができます:彼らは顧客がどこから来ているかについて見ることができます.

    PLGスタック( Promtail , Loki and Grafana )


  • Promtail は、アプリケーションまたはサービスを実行している各ノードにインストールする必要があるエージェントです.これは、ローカルのログファイルなどのターゲットを検出し、ログからログをログに添付し、ロキに発送します.
  • Loki は、PLGスタックの中心です.ログデータを保存する責任があります.
  • Grafana は、LOKIから時系列データを処理し、ログをWeb UIでアクセスできるオープンソース可視化プラットフォームです.
  • KubernetesのPLGスタックから始める


    いくつかの手のアクションでロキを始めましょう.この例では、GlofanaのKubernetes APIサーバのログを視覚化するために、LOKIスタックを使用します.
    開始する前に、Kubernetesクラスタをアップロードして実行してください.Helm インストール.すべてを設定すると、LOKIをインストールできます.

    ヘルムでPLGスタックをインストールします


    次のようにPLGスタックを展開するKubernetes名前空間を作成します.
    $ kubectl create namespace loki
    
    ロキのヘルムチャートrepository :
    $ helm repo add loki https://grafana.github.io/loki/charts
    
    次のコマンドを実行してリポジトリを更新します.
    $ helm repo update
    
    LOKIスタックを展開します
    $ helm upgrade --install loki loki/loki-stack --namespace=loki --set grafana.enabled=true
    
    これはあなたのKubernetesクラスタにloki、grafanaとpromtailをインストールします.
    Grafanaにログインするパスワードを取得します
    $ kubectl get secret loki-grafana --namespace=loki -o jsonpath="{.data.admin-password}"  | base64 --decode ;  echo
    
    生成された管理パスワードは次のようになりますjvjqUy2nhsHplVwrX8V05UgSDYEDz6pSiBZOCPHf最後に、Grafana UIにアクセスするコマンドを実行します.
    $ kubectl port-forward --namespace loki service/loki-grafana 3000:80
    
    さあ、ブラウザを開けてhttp://localhost:3000 .
    ユーザ名「admin」と以前に検索したパスワードでログインしてください.

    グラファナのロキ


    インストールされているGrafanaは、ROKIデータソースがあらかじめ設定されています.それで、我々はすぐに我々のKubernetesログを調査し始めることができます:
    次に、左側の探検タブをクリックします.データソースドロップダウンから「LOKI」を選択します.
    ログラベルのドロップダウン

    これで、ログウィンドウでデータを取得する必要があります!

    スクロールダウンして、Kube ApiServerのログの詳細を見つけるでしょう.

    Logql


    Logqlは、演算子を通してログをフィルタリングする機能を提供します.以下にサポートされている演算子の一覧を示します.
  • =: ちょっと正確に.
  • !=: えぇ.
  • =~: .
  • !~: そして、正規表現はマッチしません.
  • 別のクエリで試してみましょう.我々は、すべてのログを検索することによって開始kube-apiserver 包コンテナ.それに加えて、フィルタ演算子を追加し、結果を単語error , しかし、timeout :
    {コンテナ="kube apiserver "}タイムアウト
    これはロキとグラファナとの設定と作業の簡単な例でした.あなたがもっと学びたいならば、頭にLoki documentation .

    ラッピング


    企業は、分散システムのアプリケーションとサービスからログファイルを収集、格納、および分析するためのシンプルで費用対効果の高いソリューションが必要です.ロキはあなたを助けることができるdramatically reduce logging and monitoring costs あなたの生産環境で.ProMailとGrafanaと組み合わせて、それはあなたが見つけて、問題を解決して、将来に起こるのを防ぐのを助けることができる完全な伐採スタックに必要なすべての特徴を提供します.
    あなたはどのようにロキがあなたのソフトウェアシステム、カットコストとstrengthen DevOps in your company ? 使用してくださいcontact form , そして、我々はすぐにあなたに戻るでしょう.
    我々の最新の洞察と最新版のために