Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ ELKによるモニタリング&ロギング | DevOpsにおけるモニタリング&ロギング
DevOps入門

bookELKによるモニタリング&ロギング

メニューを表示するにはスワイプしてください

想像してください:ウェブアプリを構築し、サーバーにデプロイしました。最初はすべて順調に見えます——ユーザーがクリックし、リクエストを送り、アプリはスムーズに動作しているようです。しかし、数時間後、チームメイトから連絡が来ます。

「ユーザーからサイトが遅くなっていると苦情が来ています。確認できますか?」

ここからが難しいところです。モニタリングログがなければ、何が起きているのかほとんど分かりません。推測するしかありません:もしかするとサーバーのメモリが不足したのかもしれませんし、データベースが過負荷になっているのかもしれませんし、あるいはコードにバグがあるのかもしれません。

モニタリングとログ:連携の仕組み

モニタリングは、システムのリアルタイムの健康状態を確認するものです。現在何が起きているか、どれだけのメモリが使用されているか、1秒あたりのリクエスト数CPU負荷の急増などを表示します。

一方、ログは日記のようなものです。誰がログインしたか、どの関数がエラーでクラッシュしたか、どのファイルのアップロードが失敗したかなど、すべての重要な詳細を記録します。ログを使えば、時間を巻き戻して「システムがクラッシュする1分前に何が起きていたのか?」といった疑問に答えることができます。

モニタリングロギングを組み合わせることで、全体像が把握できます。モニタリングは症状(システムが遅い)を示し、ログは原因(データベースのタイムアウト、メモリリーク、コードのバグなど)を明らかにします。

実際の開発現場でのELK

これらを実現するために、多くのチームがELKスタック(ElasticsearchLogstashKibana)を利用しています。

フローの概要:サーバーがログを生成します(例:Nginxがサイトへの訪問者やアクセス時間を記録)。これらのログは、利用可能な状態にするために収集およびクリーンアップが必要です。ここでLogstashが登場します。Logstashは生のログデータを受け取り、ノイズを除去し、IPアドレスタイムスタンプなどの有用なコンテキストを追加し、データを転送します。

クリーンアップされたデータはElasticsearchに送られます。これは膨大な量のログを処理できる強力な検索および分析エンジンです。何百万ものエントリがある場合、プレーンテキストファイルから検索するのは不可能ですが、Elasticsearchならミリ秒単位で必要な情報を見つけられます。

最後にKibanaがあります。これはダッシュボードコントロールパネルの役割を果たします。KibanaはElasticsearchに接続し、すべてのデータを見やすいチャートテーブルダッシュボードに変換します。無数のログ行をスクロールする代わりに、一目で状況を把握できます。

さらに:

これらに加えて、Filebeatも使用します。Filebeatの役割はログファイルを取得し、通常はLogstashまたは直接Elasticsearchに転送することです。

ELKスタックはログの保存、処理、可視化を担いますが、アプリケーションは直接ログファイルを送信できません。そこでFilebeatが活躍します。Filebeatはサーバーからログを収集し、確実にLogstashへ届ける軽量エージェントです。

なぜこれが重要なのか

開発者にとって、モニタリングとロギングは**「あれば便利」**なものではありません。Gitやデバッガと同じくらい重要です。これらは、本番環境でアプリケーションがどのように動作しているかを把握し、問題が発生した際に迅速に対応するための手段です。

ELKスタックは、すべてを統合します。データを収集し、検索可能な形で保存し、迅速な対応を可能にする可視化を提供します。

1. モニタリングは主に何を行いますか?

2. ログはなぜ重要ですか?

3. ELKスタックにおけるLogstashの役割は何ですか?

question mark

モニタリングは主に何を行いますか?

正しい答えを選んでください

question mark

ログはなぜ重要ですか?

正しい答えを選んでください

question mark

ELKスタックにおけるLogstashの役割は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  1
some-alt