一般的に、コンピューターソフトウェアは、イベントが発生したときにアプリケーションログに情報を記録します。例として、データ転送をログに記録するWebサーバー、バックアップの成功をログに記録するデータベースインスタンス、接続リクエストの失敗をログに記録するファイアウォールなどがあります。
通常、ITチームはアプリケーションログのデータを使用して、機能停止の調査、バグのトラブルシューティング、セキュリティインシデントの分析を行います。ITチームはアプリケーションログを分析して、インシデントの根本原因を特定できます。
ログ管理システムが市場に増える中、企業はアプリケーションログをトラブルシューティングだけでなく、さまざまな目的で利用しています。ログに記録されたイベントを使用して、セキュリティインシデントの調査、顧客の振る舞いの追跡、システム容量の計画、規制コンプライアンスの監査を行っています。
この記事では、アプリケーションログとは何か、アプリケーションログの種類、および一元化されたログ管理ツールがログから実用的なビジネスインサイトを抽出するのにどのように役立つかを見ていきます。また、最新のログ管理ソリューションであるHumioについても紹介します。
アプリケーションログとは
ソフトウェアアプリケーションは、アプリケーション内で何かが発生したとき(または何かがアプリケーションに影響を与えたとき)にログを生成します。通常、アプリケーションは、関連するログ情報をアプリケーションのサーバー上のファイルに書き込みます。ディスク領域を節約するために、一部の組織では、Webhookを介してネットワーク共有、専用のSyslogサーバー、またはロギングアプリケーションにログを送信するようにアプリケーションを設定しています。クラウドベースのアプリケーションは、クラウドのロギングサービスにログを書き込むことができます。
一部のログイベントは、アプリケーションの内部状態に関連しています。例えば、次のようなものがあります。
- メモリリーク
- 存在しないパスエラー
- コード内の未処理の例外
- システムクラッシュ
他の種類のイベントは、アプリケーションが認識する外部要因に関連しています。例えば、次のようなものがあります。
- ディスク容量の警告
- サーバーの再起動
- ネットワークにアクセスできない
各アプリケーションは異なるため、ログに記録されるイベントは開発者がどのようにイベントを記録するよう設定したかによって異なります。通常、エラーや警告などの重大なイベントはデフォルトでログに記録されます。ただし、data transfer complete、backup successful、shutting down gracefullyなど、成功した操作に関連するイベントが表示されるようにすることもできます。
ほとんどのアプリケーションログには、いくつかの共通のフィールドが含まれています。
- タイムスタンプ:イベントの日時。サーバーの現地時間またはUTCなどの別のタイムゾーンにすることができます。
- ログレベル:イベントの重大度。ログレベルの例としては、
DEBUG、INFO、WARNING、CRITICALなどがあります。 - ユーザー名:イベントを担当したネットワーク(またはログイン)ユーザー。一部のシステム関連イベントでは、このフィールドは空白になります。
- ソースIP:クライアント(アプリケーションプロセスまたはユーザー)のIPアドレス。ローカルイベントの場合、このフィールドは空になる場合があります。
- 宛先IP:ローカルサーバーのIPアドレス。
- イベントメッセージ:イベントの説明(通常は短いテキスト形式)。
アプリケーションログの種類
ログに記録されるイベントに応じて、アプリケーションログにはさまざまな種類があります。
アクセス、認証、および承認のログ
これらのログには、次の情報が表示されます。
- ログインしたユーザー(およびログアウトしたユーザー)
- 操作が成功したかどうか
- ファイルやデータベーステーブルなどのアプリケーションリソースにアクセスしたユーザー
- データをリクエストしたユーザー
- ユーザーがネットワーク上をどのように移動したか
これらのログは、ネットワーク全体でのユーザーのアクションを再トレースするのに役立ちます。これらのログを使用して、アクセスの問題のトラブルシューティング、セキュリティインシデントの調査、さらにはユーザーの振る舞いの分析を行うことができます。
次のスニペットは、Apacheのアクセスログを示しています。
127.0.0.1 - jbloggs [12/Oct/2021:13:55:36 -0700] "GET /server-status HTTP/1.1" 404 2457
ここで、ログに記録されたイベントは、ユーザーjbloggsが2021年10月12日午後1時55分(現地サーバー時間)にローカルWebサーバーにアクセスしたことを示しています。このユーザーはWebサーバールートの下にあるserver-statusページにアクセスしましたが、Webサーバーから404(ページが見つかりませんエラー)が返されました。転送されたデータのサイズは2457バイトでした。
変更ログ
変更ログには、アプリケーション内で行われた変更が表示されます。変更には、次のようなものがあります。
- 新しいユーザーの追加
- 権限の変更
- IPアドレスのホワイトリスト登録
- 設定パラメーターの変更
- ソフトウェアバージョンのアップグレード
アプリケーション内の何かが機能しなくなった場合、考えられる根本原因の1つは、最近行われた設定変更である可能性があります。変更ログは、何が変更されたか、いつ変更されたか、誰が変更したかを特定するのに役立ちます。この情報は、問題に迅速に対処するのに役立ちます。
SecOpsチームは、変更ログを使用してセキュリティインシデントを検知することもできます。例えば、新しい特権ユーザーを作成するときや新しいソフトウェアライブラリを登録するときにアラートを設定できます。
次のイベントは、Active Directory管理者が新しいユーザーを作成したことを示しています。
A user account was created.Subject:
Security ID: DOMAIN-FRadministrator
Account Name: administrator
Account Domain: DOMAIN-FR
Logon ID: 0x20f9d
New Account:
Security ID: DOMAIN-FRJohn.Bloggs
Account Name: John.Bloggs
Account Domain: DOMAIN-FR
エラーログ
エラーログは、アプリケーションで問題が発生した操作に関する詳細を提供します。一部のエラーはパフォーマンスの低下を引き起こしませんが、放置するとシステムの停止を引き起こす可能性があります。エラーログをモニタリングすることで、問題がインシデントになる前に特定できるため、平均復旧時間 (MTTR) を短縮することができます。履歴分析により、エラー状態を引き起こすパフォーマンスやユーザーの振る舞いパターンを明らかにすることができます。
例えば、ユーザーが頻繁にタイムアウトエラーを受け取る場合、ネットワークレイテンシー、容量の問題、またはタイムアウトしきい値の設定が不十分であることを示している可能性があります。アプリケーションライブラリからのエラーは、アップグレード後の互換性の問題やサポートされていないライブラリのバージョンがある可能性があります。
エラーログでアプリケーション内の未処理の例外が明らかになった場合、この情報は開発者がパッチを適用してシステムを改善するのに役立ちます。
アプリケーションエラーはさまざまな理由で発生する可能性があるため、エラーログのイベントは大きく異なる可能性があります。一般的にログに記録されるエラーには、次のようなものがあります。
- ディスク容量の警告
- ライセンスの有効期限が迫っている
- アプリケーションがハングする
- メモリーの枯渇
- メモリーダンプ
- その他
次のコードスニペットは、ディスク容量の不足が原因で生成されたエラーイベントの1つを示しています。
"EventTime": "2022-06-22T13:48:55.445645-08:00","Hostname": "WIN-26101992",
"Message": "There is not enough disk space available to complete this operation",
"Severity": "CRITICAL"
可用性ログ
可用性ログには、アプリケーションの可用性に関する情報が表示されます。可用性ログの例を次に示します。
- フェイルオーバーまたはノードの追加/削除を示すクラスターログ
- 正常なデータバックアップを示すシステムログ
- シャットダウンと再起動を示すオペレーティングシステムログ
- レイテンシーを示すレプリケーションログ
可用性ログは、SLAレポートを作成するのに役立ちます。アプリケーションの稼働時間を計算したり、計画外のシャットダウンやフェイルオーバーを調査したり、メンテナンスウィンドウ中に予想される振る舞いを確認したりできます。次のスニペットは、可用性ログエントリの例を示しています。
"EventTime": "2022-06-22T13:48:55.445645-08:00","Hostname": "WIN-12101992",
"Uptime": "72000",
"LastReboot": "2022-06-21T17:48:55.487655-08:00"
"Severity": "INFO"
ログ管理ソリューションを使用する利点
ホストシステム上で直接アプリケーションログを分析するのは困難な場合があります。アプリケーションログは、冗長で複雑であり、相関関係を把握するのが難しいことがよくあります。また、一部のログは継続的に更新されるため、すべてのメッセージを追跡するのは煩雑になることがあります。最後に、分散アプリケーションには多くの可動部分があり、それぞれに独自のログが存在します。特定のイベントに関連するすべてのログを照合するのは、干し草の山から針を探すようなものです。
そこでログ管理ソリューションが役に立ちます。ログ管理ソリューションは、すべてのシステムからアプリケーションログを取り込み、それらのログを解析してインデックスを作成し、データ全体で検索を実行できるようにします。これにはいくつかの利点があります。
トラブルシューティングの迅速化
ログ管理ソリューションでは、ナビゲートしやすい1つのインターフェースからすべてのログにアクセスできるため、インシデントのトラブルシューティングを簡単かつ迅速に行うことができます。オペレーターは、各サーバーに個別にログオンしたり、tailやgrepなどのコマンドを使用して結果をフィルタリングしたりする必要はありません。
関連情報へのアクセス
カスタムログ解析設定を使用して、アプリケーションログから関連データのみを抽出できます。これにより、クエリで返されるデータを絞り込み、ダッシュボードとグラフを簡素化できます。
履歴の分析
ログ管理ソリューションを使用すると、単一のサーバーやネットワーク共有に保存できるよりも多くのデータを長期間保持できます。その結果、アプリケーションデータの履歴をより適切に分析できます。このような分析は、トレンドレポートに役立ちます。
ログの相関付け
ログ管理ソリューションには、一般的なログタイプを認識するパーサーが組み込まれています。これにより、さまざまなアプリケーションからログを取り込み、ユーザー名やIPアドレスなどの共通フィールドを使用して簡単に関連付けることができます。一見無関係に見えるイベントを関連付けることで、単独では明らかにならないイベントのコンテキストを把握できます。
可視化
グラフ、チャート、またはジオロケーションマップを備えたダッシュボードを使用すると、アプリケーションの傾向、異常、またはスパイクを簡単に見つけることができます。
アラート
ログ管理ソリューションを使用すると、事前定義された基準に基づいてアラートを設定できます。このような基準には、特定のフィールドの値に設定されたしきい値が含まれます。ログに記録されたイベントのフィールドの値がしきい値を超えたことが示されると、アラートがトリガーされ、関連するチームに通知されます。
例えば、致命的なエラーや重大なエラー、疑わしいログインアクティビティ、高いCPU使用率に対するアラートを設定できます。一部のロギングソリューションでは、サービスデスクチケットの作成やプレイブックからの自動修復手順の実行などのアクションを自動的にトリガーできます。
次世代SIEMおよびログ管理のための世界をリードするAIネイティブプラットフォームをお試しください
SIEMとログ管理のための最高水準のAIネイティブプラットフォーム、CrowdStrike Falcon®プラットフォームでサイバーセキュリティを強化しましょう。ペタバイト規模でのセキュリティログを体験してみてください。クラウドネイティブ型または自己ホスト型での展開が可能です。ボトルネックの生じない、強力でインデックスフリーのアーキテクチャを利用してデータをロギングすれば、1日あたり1PB以上のデータを取り込んで脅威ハンティングに役立てることができます。リアルタイムの検索機能により攻撃者をしのぐスピードで対策を実施できます。複雑なクエリを実行しても、そのレイテンシーは1秒未満です。360度の可視性によりデータを統合してサイロ化を解消し、セキュリティ、IT、DevOpsチームがシームレスに脅威のハンティング、パフォーマンスのモニタリング、コンプライアンスの確保を行うことができます。30億件ものイベントにわたる作業でも1秒未満で実施できます。