DevOpsにおけるFilebeatとLogstashのセットアップ
メニューを表示するにはスワイプしてください
アプリケーションがログを生成する際には、それらを収集、処理、分析することが重要です。DevOps では、この目的のために ELKスタック(Elasticsearch、Logstash、Kibana) と Filebeat がよく使用されます。Filebeat はサーバーからログを読み取り、Logstash はデータを処理・フィルタリングし、Elasticsearch がさらなる分析のために保存します。
ここでは、Filebeat と Logstash を Flask アプリケーションと連携させ、すべてのユーザーイベントが適切に収集され、ELKスタック に送信されるように設定する方法を学びます。
動作の仕組み
Filebeat はアプリケーションが稼働しているサーバー上でエージェントとして動作します。ログファイル を監視し、新しいエントリを Logstash に送信します。Logstash はログを受信し、たとえば JSON構造 のパースなどの処理を行い、その後 Elasticsearch に転送します。Elasticsearch はデータを保存・整理し、Kibana で簡単に検索、分析、可視化できるようにします。
この例では、Filebeat が Flask アプリケーションによって生成された app.log ファイルを監視します。Logstash はこれらのログを処理し、Elasticsearch に送信します。Elasticsearch は日ごとに個別のインデックス(flask-logs-YYYY.MM.DD)を作成します。これらの日次インデックスにより、日付ごとにログを整理でき、特定の日のイベント検索や傾向分析、トラブルシューティングが容易になります。
Filebeatの設定
まず、Filebeat 用の設定ファイルを作成します。事前に作成した elk-demo フォルダ内にいることを確認してください。その後、以下のコマンドを実行して Filebeat の設定ファイルを作成・開きます。
これにより、Filebeat の設定を貼り付けるためのエディタが開きます。
貼り付けた後、Ctrl + O でファイルを保存し、Enter を押してから Ctrl + X で終了します。
エディタで、次の設定を挿入します。
filebeat.yml
この設定により、Filebeat はファイル /logs/app.log を監視します。新しいログエントリはすべて Logstash に送信され、Logstash はポート 5044 で待ち受けています。これにより、アプリケーションからのすべてのイベントが自動的に処理およびインデックス化のために送信されます。
Logstash の設定
次に、Logstash 用の設定ファイルを作成します。事前に作成した elk-demo フォルダー内にいることを確認してください。その後、以下のコマンドを実行して Logstash の設定ファイルを作成・開きます。
これによりエディタが開き、Logstash の設定を貼り付けることができます。次の設定をファイルに貼り付けてください。
logstash.conf
これらの設定により、Filebeat と Logstash が連携できるようになります。Filebeat はアプリケーションログを監視し、Logstash はそれらをフィルタリングおよび処理し、Elasticsearch はデータを保存およびインデックス化して、Kibana での分析や可視化が可能になります。
1. ELKスタックにおけるFilebeatの主な役割は何か?
2. LogstashがElasticsearchで毎日別々のインデックスを作成する理由は何か?
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください