nginxとElasticSearchのためのFilebeatの設定方法

nginxとElasticSearchのためのFilebeatの設定方法

  • オーケストレーション
5分で読めます 更新日 Jul 3, 2019

ポイント: nginxログを読み取り、ElasticSearchに送信するためのFilebeatの設定に関する指示が詳細に説明されており、ログ分析を容易にするためにJSON形式の使用が強調されています。主な手順には、Elastic Cloudの設定、Filebeatのインストール、およびnginxモジュールの構成が含まれます。

  • Filebeatのnginxモジュールを使用して、ログの自動JSON変換を行います。
  • Elastic CloudとFilebeatの構成に関する特定の設定手順に従います。

ここでは、nginxウェブサーバーログをElasticSearchで読み書きする方法を説明します。これを行うためにFilebeatを使用します。Filebeatにはnginxモジュールがあり、これはnginxウェブサーバーログの各行をJSON形式に変換するように事前プログラムされています。JSONを使用することにより、ElasticSearchはこれらのログをより簡単にクエリおよび分析できるようになります。注意:この設計にElasticSearch Logstashを追加することもできますが、FilebeatとLogstashの間にそれを置くことは一般的な慣行ですが、ここでは冗長なようです。Logstashを使用する場合のユースケースについては、別の投稿で説明します。必要なもの

  • nginxウェブサーバー(または下に示すサンプルをダウンロードして、対応するフォルダーに配置してください)
  • Filebeat
  • Elastic Cloudアカウント(または独自のサーバーを設定)
  • Ubuntu(または他のLinuxディストリビューション)。ここではUbuntu 16.04を使用します。

Elastic Cloudを設定 自分のローカルにインストールされたElasticSearchのインスタンスを使用できます。しかし、ここではElastic Cloudを使用します。まだシステムを持っていない場合は、ここに書いた手順に従ってElasticSearchをクラウドで設定してください。以下のクラウドID、パスワード、Kibana URL、およびElasticsearch URLをメモしてください。nginxをインストール ウェブサーバーをまだ持っていない場合は、Linuxをインストールするか、/var/log/nginxフォルダーにいくつかのサンプルnginxファイルをダウンロードします。

    sudo apt-get install nginx

データを作成 ウェブサーバーにあまりデータがない場合は、より多くのログエントリを取得するために、nginxログに直接変更し、これらの2つのログをダウンロードします。

    sudo cd /var/log/nginx

sudo wget http://igm.univ-mlv.fr/~cherrier/download/L1/access.log

wget https://raw.githubusercontent.com/respondcreate/nginx-access-log-frequency/master/example-access.log

filebeatをインストール filebeatsをダウンロードしてからインストールします:

    wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.1-amd64.deb

sudo dpkg -i filebeat-7.0.1-amd64.deb

次に、nginx filebeatモジュールを有効にします。

    sudo filebeat modules enable nginx

有効なモジュールのリストを表示すると、nginxがリストに表示されます。

    sudo filebeat modules list

Enabled:
nginx

Disabled:
apache
auditd
elasticsearch

クラウドIDとユーザーID、パスワードをFilebeat設定ファイルに追加します。これにより、IPアドレスやポートを入力する必要がなくなり、インスタンスへの接続が簡単になります。

    sudo vi /etc/filebeat/filebeat.yml

cloud.id: 'xxxx'

cloud.auth: 'elastic:xxxxx'

このコマンドを実行して、nginxダッシュボードをKibanaにプッシュします。これにより、ログの処理も開始されます。

    sudo filebeat setup -e

Filebeatのその後の実行には、次のように実行します。-eオプションは、ログをstdoutに出力します。

    sudo filebeat -e

Filebeatは、/var/log/nginx内のすべてのログを処理します。それを確認するには、ElasticSearchに対してインデックスをクエリし、以下のURLをあなたのESインスタンスのURLに置き換えます。ユーザーID:パスワードオプションは、$pwd環境変数に保存されていることに注意してください。

    curl --user $pwd -X GET 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cat/indices?v'

インデックス名は、filebeatという単語と今日の日付のいくつかの組み合わせになります。

    green  open   filebeat-7.0.1-2019.06.12-000001 baiHMtkcSqO1SojJUW1mVg   1   1       8984            0      6.2mb          3.1mb

Kibanaを開く Kibanaを初めて使用する場合は、インデックスパターンを設定するように求められます。すでに使用している場合は、管理画面に移動して追加します。

インデックスパターンを追加するということは、クエリを実行する際に一致させたい既存のインデックスの文字数を選択することを意味します。つまり、filebeat*と入力すると、filebeatで始まるすべてのインデックスが読み込まれます。日付を追加すると、今日の解析済みログが読み込まれます。もちろん、nginx以外の種類のログを解析する場合は役に立ちません。これは別の投稿で説明します。単にf-i-l-eの文字を入力し始めると、どのESドキュメントインデックスが一致するかが表示されます:

Kibanaは、タイムスタンプとして使用できるフィールドを尋ねてきます。これは、最初にログを収集する目的である時系列分析を生成できるようにするためです。今は@timestampを選択してください。これはESによって生成されます。他のデータがない場合はそれを使用できます。

次に、発見画面(すなわち、ナビゲーションバーの左上ボタン)からレコードをブラウズできます。Kibanaは、使用するインデックスパターンを尋ねてきます。レコードをクリックして展開します。下のレコードは全体を表示するには長すぎます。そのため、上下にスクロールしてすべてを見ることができます。

次に、Visualize画面をクリックし、再度左側のナビゲーションバーから選択します。Filbeatがすでにインストールした異なるnginxダッシュボードがあります。下のものは、時間に対するウェブサイトのヒットを示しています。

この視覚化(別名ダッシュボード)は、選択した時間範囲内であなたのウェブサイトにアクセスしたユーザーの位置を示しています。

これらの投稿は私自身のものであり、必ずしもBMCの立場、戦略、または意見を代表するものではありません。

オーケストレーションの関連記事

BMCからのさらなる情報に興味がありますか?

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーションに関する月刊メールです:研究、顧客ストーリー、製品ニュース、イベント。

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ザ・ブリーフに登録しました

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーション—BMC AMIおよびControl-M—に関するアナリストの研究、顧客の展開、両者にわたるイベントを網羅しています。