# 監視・ログ運用基盤の抜本的改善プロジェクト
## 1. 概要
監視・アラートが未設定だった30台超のEC2および6台のRDSに対し、一括導入スクリプトを用いた監視基盤を構築。
あわせて、ディスク逼迫の根本解決(Logrotate/S3退避)と、アプリケーションログの構造化(Lograge)によるパフォーマンス分析環境を実現。
## 2. 背景と課題
- **可視性の欠如:** アラート設定がなく、サービス停止まで異常に気付けない受動的な運用。
- **ディスク容量の脆弱性:** ログローテートの仕組みがなく、ログ蓄積によるディスクフルが常態化。
- **分析困難なログ:** 生のテキストログが非構造化データとして出力されており、DB処理やレスポンス時間のボトルネック特定が困難だった。
## 3. 実施内容
### ① 監視自動化スクリプトの作成と一括配備
- **自動導入スクリプトの開発:** CloudWatch Agentのインストール、設定(CPU/Memory/Disk/Network等)、起動を完遂するスクリプトを作成。
- **大規模展開:** 30台以上の本番EC2に対し、スクリプトを用いて一括で監視環境を構築し、作業工数の削減と設定の標準化を実現。
### ② ログ管理戦略の刷新(ストレージ最適化)
- **Logrotateの導入:** 全サーバーにLogrotateを配備し、ディスク容量90%超過などのアラート発生を未然に防ぐ仕組みを構築。
- **ライフサイクル設計:** 古いログは順次S3へアップロード・退避させる構成とし、ストレージコストの最適化と長期保存を両立。
### ③ Lograge導入による可観測性の向上
- **ログの構造化:** Ruby on Railsの `lograge` gemを導入。肥大化しがちな生のログを、必要な情報(Duration, View, DB, Status等)に絞ったJSON形式等の構造化ログに変換。
- **パフォーマンス分析:** CloudWatch Logs Insightsを活用し、DB処理時間や全体のレスポンスタイムをクエリで即座に分析・可視化できる環境を整備。
## 4. 成果
| 項目 | 成果内容 |
| :--- | :--- |
| **予防保守の実現** | サービス停止前にアラート(Slack通知)で検知し、未然に対処可能な体制へ移行。 |
| **ストレージ安定化** | ログローテートとS3退避により、ログ起因のディスクフル障害をゼロに。 |
| **ボトルネック特定** | Logrageにより、APIレスポンスの遅延原因(DBクエリ等)を数値ベースで特定可能に。 |
| **運用効率化** | スクリプトによる一括管理で、新規サーバー追加時の監視設定コストを大幅削減。 |