0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TaskLink 本番環境の監視・ログ管理構成

0
Posted at

TaskLinkの本番環境では、AWS CloudWatch Agent、CloudWatch Logs、Amazon SNSを利用し、サーバー監視・ログ管理・障害通知を実装しています。

システム構成

EC2 (Rails / Puma / PostgreSQL)
            ↓
     CloudWatch Agent
            ↓
 ┌───────────────┬────────────────┐
 ↓                                ↓
CloudWatch Metrics        CloudWatch Logs
 ↓                                ↓
CloudWatch Alarm      Metric Filter
 ↓                                ↓
Amazon SNS         Custom Metric
 ↓                                ↓
Email Notification   CloudWatch Alarm
                               ↓
                         Amazon SNS
                               ↓
                       Email Notification

監視目的

  • ディスク容量不足による障害の予防
  • メモリ不足によるアプリケーション停止の予防
  • CPU高負荷によるレスポンス低下の早期検知
  • 本番環境のログ収集と障害調査の迅速化
  • 不正アクセスや異常リクエストの検知
  • アプリケーションエラーの早期発見

CloudWatch Metrics監視

監視アラーム

アラーム名 監視内容 閾値
tasklink-disk-usage-80 ディスク使用率 80%
tasklink-memory-usage-80 メモリ使用率 80%
tasklink-cpu-usage-90 CPU使用率 90%

収集メトリクス

メトリクス 用途
disk_used_percent ディスク使用率監視
mem_used_percent メモリ使用率監視
cpu_usage_idle CPU使用率監視

CloudWatch Alarm発生時はAmazon SNSを経由してメール通知を送信し、異常をリアルタイムで検知できる構成としています。


CloudWatch Logs

Rails本番環境ではSTDOUTへ出力されたログをsystemd経由でsyslogへ集約し、CloudWatch Logsへ転送しています。

ログ収集フロー

Rails / Puma
     ↓
systemd journal
     ↓
/var/log/syslog
     ↓
CloudWatch Agent
     ↓
CloudWatch Logs

ロググループ

/tasklink/syslog

収集対象

  • Railsアクセスログ
  • Railsエラーログ
  • Puma起動ログ
  • systemdログ

Rails 500エラー監視

CloudWatch LogsのMetric Filterを利用し、Railsアプリケーションで発生したHTTP 500エラーを監視しています。

監視構成

CloudWatch Logs
      ↓
Metric Filter (Completed 500)
      ↓
Custom Metric (rails_500_errors)
      ↓
CloudWatch Alarm
      ↓
Amazon SNS
      ↓
Email Notification

アラーム

アラーム名 条件
tasklink-rails-500-errors-alarm HTTP 500エラー発生時

導入目的

  • 本番障害の早期検知
  • エラー発生時の即時通知
  • MTTR(平均復旧時間)の短縮

CloudWatch Dashboard

CloudWatch Dashboardを作成し、サーバーおよびアプリケーションの監視状況を一画面で可視化しています。

可視化項目

  • Disk Usage (%)
  • Memory Usage (%)
  • CPU Idle (%)
  • Rails 500 Errors

ダッシュボード活用

障害発生時にはCloudWatch Dashboardを確認することで、以下を迅速に実施できます。

  • サーバーリソース状況の把握
  • エラー発生状況の確認
  • 異常発生箇所の切り分け

Pumaプロセス監視

CloudWatch Agentのprocstat機能を利用し、Pumaプロセスの死活監視を実施しています。

監視項目

項目 内容
メトリクス procstat_lookup_pid_count
アラーム名 tasklink-puma-down
通知条件 pid_count < 1

導入目的

  • Puma停止の即時検知
  • 502 Bad Gatewayの早期発見
  • サービス停止時間の最小化

運用上の工夫

運用中に発生したディスク容量不足の障害をきっかけに監視体制を整備しました。

CloudWatch Metricsによるリソース監視とCloudWatch Logsによるログ管理を組み合わせることで、

  • 障害の早期発見
  • 原因調査の迅速化
  • サーバー状態の可視化

を実現しています。

また、ログをCloudWatch Logsへ集約することで、EC2へSSH接続せずにAWSコンソール上からログ確認が可能な構成としています。


今後の改善予定

  • 障害対応手順(Runbook)の整備
  • アプリケーション監視の強化
  • CloudWatch Logs Insightsを利用したログ分析
  • 監視ダッシュボードの運用改善
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?