はじめのこと
このチュートリアルは、DigitalOcean Kubernetes (DOKS)クラスタのログをDigitalOcean Managed OpenSearchインスタンスに集めることと、AxoSyslogという伸缩性のある安全データ処理機能を使用して、
このガイドに従って、Kubernetesアプリケーションからのログを捕捉し、分析する強力なログ管理システムを設定する方法を学びます。これにより、インフラの監視、問題解決、および保護がより簡単になります。このチュートリアルでは、
事前準備
開始する前に、以下の前提条件を整備していることを確認してください。
- デジタルオーシャンクラウドアカウントにアクセスする必要があります。これにより、KubernetesとOpenSearchのリソースを作成および管理することができます。
- デジタルオーシャンコマンドラインインターフェース(CLI)ツール
doctl
は、ローカルマシンにインストールされ、設定されている必要があります。 - 稼働中のデジタルオーシャンKubernetes(DOKS)クラスタが必要です。
- Kubernetesパッケージマネージャ
Helm
がインストールされており、Kubernetesアプリケーションの管理ができるようになっています。 - Kubernetes、Helm、およびデジタルオーシャンの管理サービスについての知識があること。
使用例
このプロジェクトは、Kubernetesクラスタ内で実行しているいくつかのアプリケーションのログを監視・分析するための集中的なログ解決策が理想的な場面に適しています。小さなアプリケーションの集合を管理しているか、大規模なインフラを管理しているかに関わらず、特定のOpenSearchクラスタにログを収集し、転送することが助ければ、以下の点で改善されます:
- セキュリティ監視: 实时にログを分析して、セキュリティ事件を侦知して対応する。
- トラブルシュooting: Kubernetesアプリケーション内の問題を迅速に特定し解決するために、詳細なログにアクセスする。
- 合规性: 産業 regulationsに基づいて、事件のログを保持する。
AxoSyslogをDigitalOcean Managed OpenSearchと統合することで、大量のログを効率よく処理・保存でき、有価値な洞察を抽出することができ、システムの健康状况とセキュリティを维持することが簡単になる。
ステップ1 – OpenSearchクラスタを作成する
このステップで、ログシステムの核心コンポーネント、OpenSearchクラスタを設定します。OpenSearchは、Kubernetesクラスタから集めたすべてのログの目的地です。以下のコマンドを実行して、DigitalOcean上の選択した地域に新しいOpenSearchインスタンスを作成します。
以下のlon1
をお望みの地域に置き換えてください。利用可能なサイズスラッグを一覧表示するには、私たちのAPIリファレンスドキュメントに移動してください。diy13>
ステップ2 – いくつかのランダムなログを生成する
OpenSearchにログを送信する前に、作業するためのログが必要です。Kubernetesクラスタ内で既にログを生成しているアプリケーションがない場合、このステップでログ生成器をデプロイします。このログ生成器は、テストとデモに使用できる、一定のストリームのサンプルログを生成します。
まず、log generator Helm chartレポジトリを追加し、log generatorをインストールします。
次に、Helmを使用してlog generatorをインストールします。
log generatorが正しく機能していることを確認するには、生成したログを表示するかもしれません。
ステップ3 – AxoSyslog Collectorをインストールする準備
このステップで、AxoSyslog Collectorを設定します。これは、Kubernetesクラスタからログを集めてOpenSearchに送信する役割を果たします。これには、OpenSearchクラスタの正しい接続詳細(ホスト名、ユーザー、パスワード)を提供する必要があります。
ここで、helm
を使用してAxoSyslog Collectorをインストールし、カスタム値を渡すでしょう。
AxoSyslogコレクターを正しいアドレス、ユーザー名、およびパスワードでOpenSearchデータベースに設定するには、以下の手順を参照してください。
自動化スクリプト
設定を簡素化するために、必要なOpenSearch接続詳細を取得し、AxoSyslog設定ファイルを更新する自動化スクリプトを使用することができます。
以下のスクリプトをupdate_axoflow_demo.sh
として保存してください。
スクリプトに実行権限をあててから実行します:
このスクリプトは、doctl
を使用してDigitalOceanアカウントから必要な情報を取得し、axoflow-demo.yaml
ファイルをそのように更新します。
手動でaxoflow-demo.yaml
を更新する手順
AxoSyslogコレクターの手動設定を好む場合は、以下の手順に従ってください。
次のコマンドを実行してopensearch-doks
のデータベースIDを抽出します。
以下のコマンドを順に実行して、ホスト名、ユーザー名、およびパスワードを取得します。
今度は、axoflow-demo.yaml
ファイルを手動で更新する必要があります。
テキストエディタを使用して、axoflow-demo.yaml
ファイルを開き、抽出した値を関連するフィールドに置き換えます。
ステップ 4 – AxoSyslog-collector をインストールする
設定が完了したら、次のステップは AxoSyslog Collector を Kubernetes クラスタにデプロイすることです。これにより、ログを OpenSearch に集めて送信することができます。
AxoSyslog Helm リポジトリを追加し、カスタマイズされた設定ファイルを使用して AxoSyslog Collector をインストールします。
正しい OpenSearch ポートにログが送信されていることを確認するため、AxoSyslog Collector の設定を更新して configmap
を更新します。
最後に、既存のポッドを削除して更新された設定を適用します。
結論
DigitalOcean KubernetesからOpenSearchにAxoSyslogを使用してログパイプラインを設定することで、あなたのログを集中的に管理し、アプリケーションの監視、分析、およびセキュリティ強化を向上させることができます。このガイドにある手順を従って、このソリューションを迅速にデプロイし、Kubernetes環境の洞察を深め、インフラストラクチャーが回復力を持ち、合规性を保ち続けることができます。
Source:
https://www.digitalocean.com/community/tutorials/collect-and-forward-kubernetes-logs-to-opensearch