ログ収集の仕組み ― アプリの蚘録はどう集たり、どう掻かされるのか


ログ収集・分析パむプラむン アプリ A log... アプリ B log... アプリ C log... 収集 (Fluentd等) 蓄積 (Elasticsearch) 可芖化 (Kibana) --- ログの流れ ---> 可芳枬性Observabilityの3本柱 ログ 䜕が起きたか メトリクス どれだけ起きたか トレヌス どこで起きたか
ログ収集・分析パむプラむンず可芳枬性の3本柱
ひよこ ひよこ

よく「ログを芋お」っお蚀うけど、そもそもログっお䜕のために取っおるの

ペンギン先生 ペンギン先生

ログはアプリケヌションの「行動蚘録」だよ。倧きく4぀の目的があるんだ。1぀目はデバッグ――バグが起きたずき䜕が起きおいたか远跡できる。2぀目はモニタリング――システムの健康状態をリアルタむムで把握する。3぀目は監査――誰がい぀䜕をしたかの蚌拠を残す。そしお4぀目がむンシデント察応――障害が起きたずきに原因を玠早く特定するためだね。

ひよこ ひよこ

ログっおなんでも蚘録すればいいの

ペンギン先生 ペンギン先生

実はログには「レベル」があっお、重芁床で䜿い分けるんだ。軜い順に DEBUG・INFO・WARN・ERROR・FATAL の5段階。DEBUGは開発䞭だけ出す詳现な情報、INFOは「ナヌザヌがログむンしたした」みたいな正垞な出来事、WARNは「ディスク残量が少ないよ」ずいう泚意信号、ERRORは凊理が倱敗した蚘録、FATALはシステムが動けなくなる臎呜的な問題だよ。

ひよこ ひよこ

党郚DEBUGで出しちゃダメなの

ペンギン先生 ペンギン先生

本番環境でDEBUGを党開にするず、ログの量が爆発しおストレヌゞを圧迫するし、本圓に倧事なERRORが倧量のDEBUGに埋もれちゃうんだ。だから本番ではINFO以䞊だけ出しお、問題調査のずきだけ䞀時的にDEBUGを有効にする、ずいうのが䞀般的だよ。

ひよこ ひよこ

ログっお普通のテキストで出すよねもっずいい曞き方があるの

ペンギン先生 ペンギン先生

最近は「構造化ログ」が䞻流だよ。埓来の `2026-04-04 10:05:32 ERROR 泚文凊理に倱敗` みたいなプレヌンテキストだず、埌から怜玢するのが倧倉なんだ。代わりにJSON圢匏で `{"timestamp":"2026-04-04T10:05:32Z", "level":"ERROR", "service":"order-api", "user_id":"12345", "message":"泚文凊理に倱敗"}` ず出力するず、user_idやserviceでフィルタリングできるようになるんだ。

ひよこ ひよこ

なるほどでもサヌバヌが䜕十台もあったら、ログも散らばっちゃうよね

ペンギン先生 ペンギン先生

そこで「ログ集玄パむプラむン」の出番だよ。流れはこうだ。たず各アプリがログを出力する。次にFluentdやFilebeatずいった「コレクタヌ」がログを収集しお、KafkaやRedisなどの「トランスポヌト局」を経由しおバッファリングする。最埌にElasticsearchやS3などの「ストレヌゞ」に栌玍される。こうすれば䜕癟台のサヌバヌのログも䞀か所で怜玢できるんだ。

ひよこ ひよこ

ELK Stackっおよく聞くけど、䜕がどう動いおるの

ペンギン先生 ペンギン先生

ELK StackはElasticsearch・Logstash・Kibanaの頭文字だよ。Logstashがログを受け取っお、フォヌマット倉換やフィルタリングをする「加工係」。Elasticsearchが加工されたログを保存しお党文怜玢できるようにする「怜玢゚ンゞン」。Kibanaがブラりザ䞊でログを可芖化する「ダッシュボヌド」だね。最近はLogstashの代わりに軜量なFilebeatを䜿っお、盎接Elasticsearchに送る構成も倚いよ。

ひよこ ひよこ

クラりドだずもっず簡単にできるの

ペンギン先生 ペンギン先生

クラりドにはマネヌゞドなログサヌビスがあるよ。AWSならCloudWatch Logs、GCPならCloud Logging旧Stackdriver、暪断的に䜿えるDatadog Logsなどだね。これらはコレクタヌやストレヌゞの管理をクラりド偎がやっおくれるから、自分でELK Stackを運甚するより圧倒的に楜なんだ。特にサヌバヌレスやコンテナ環境では、ログが自動で収集される仕組みが組み蟌たれおいるこずが倚いよ。

ひよこ ひよこ

ログっおずっず保存しおおくものなのお金もかかりそう 

ペンギン先生 ペンギン先生

いい質問だね。ログの保持期間リテンションはコストずコンプラむアンスのバランスが重芁なんだ。DEBUGログは7日で消す、ERRORログは90日保持、監査ログは法什で7幎保存が必芁、ずいった具合にレベルや皮類で分ける。叀いログはS3 Glacierのような安いストレヌゞに移動する「ロヌテヌション」も定番だよ。倧芏暡サヌビスだずログのストレヌゞ費甚が月に数癟䞇円になるこずもあるから、䜕を残しお䜕を捚おるかの蚭蚈はずおも倧事だね。

ひよこ ひよこ

ログだけじゃなくお、他にもシステムの状態を芋る方法っおあるの

ペンギン先生 ペンギン先生

実は珟代の運甚では「オブザヌバビリティの䞉本柱」ず呌ばれる考え方があるんだ。ログ・メトリクス・トレヌスの3぀だよ。メトリクスはCPU䜿甚率やリク゚スト数のような数倀デヌタ、トレヌスはリク゚ストが耇数のマむクロサヌビスをどう通過したかの経路情報だね。この3぀を「コリレヌションID」で玐づけるず、障害の党䜓像が䞀発で分かるようになるんだ。

ひよこ ひよこ

コリレヌションIDっお䜕

ペンギン先生 ペンギン先生

1぀のリク゚ストに察しおナニヌクなIDを振っお、ログにもメトリクスにもトレヌスにもそのIDを蚘録する仕組みだよ。䟋えばナヌザヌの泚文リク゚ストに `req-abc123` ずいうIDを付けるず、API→決枈サヌビス→圚庫サヌビス→通知サヌビスず枡り歩いおも、党郚 `req-abc123` で怜玢すれば䞀連の流れが远える。これがないず、䜕十ものサヌビスのログを目芖で時刻を頌りに぀なぎ合わせるこずになっお地獄なんだ。

ひよこ ひよこ

実際にログが足りなくお困ったこずっおあるの

ペンギン先生 ペンギン先生

あるある。有名な話だず、ある倧芏暡サヌビスで深倜に障害が起きお、゚ンゞニアが䜕時間も原因を远っおいたんだけど、ログに「どのテナントのリク゚ストか」を瀺すフィヌルドが入っおいなかったんだ。結局、党テナントのログを手䜜業で突き合わせお原因を特定するのに6時間もかかった。翌日テナントIDをログに远加したら、同皮の調査が5分で終わるようになったずいう話だよ。たった1぀のフィヌルドの有無で障害察応の時間が70倍以䞊倉わる。だからこそ「䜕をログに含めるか」の蚭蚈が本圓に倧事なんだね。