監視とアラート

サービスダウン最初に知る —— ユーザー通告待つな

監視は選択肢じゃない

サービス起動が万能でなく。CPU フル稼働で知らず、メモリリークで知らず、ディスク満杯で知らず —— ユーザー「使えない」通告時初めて知るなら、本当に受け身。

監視アラートシステム構築、問題発生時ユーザー先に知らせるのが正しい運用姿勢。

😰 真夜中サービス落ちて誰も知らない

金曜夜勤務後、こっそりサーバーダウン。月曜朝「使えない」クレーム多数。サーバー確認 —— ディスク満杯。ログファイル暴走で容量爆発。監視アラートあれば金曜夜通知受け取り。5 分で対応完了。

Prometheus + Grafana + アラート通知

Prometheus で指標データ取集、Grafana で可視化ダッシュボード、アラートルール設定、CPU 過高、メモリ不足、サービスダウン全部リアルタイム推送通知可。スマートフォン・メール即時受信。全スキーム開源無料、Docker ワンクリック。

ワンクリックで監視スタックデプロイ

docker-compose で Prometheus、Grafana、Node Exporter を一度に起動:

監視スタックをデプロイ
# モニタリングディレクトリを作成
docker-compose.yml — 監視スタック
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    restart: always
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - ./alert_rules.yml:/etc/prometheus/alert_rules.yml
      - prometheus_data:/prometheus
    command:
      - "--config.file=/etc/prometheus/prometheus.yml"
      - "--storage.tsdb.retention.time=30d"

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    restart: always
    ports:
      - "3001:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=your_secure_password

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    restart: always
    ports:
      - "9100:9100"
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - "--path.procfs=/host/proc"
      - "--path.sysfs=/host/sys"
      - "--path.rootfs=/rootfs"

  alertmanager:
    image: prom/alertmanager:latest
    container_name: alertmanager
    restart: always
    ports:
      - "9093:9093"
    volumes:
      - ./alertmanager.yml:/etc/alertmanager/alertmanager.yml

volumes:
  prometheus_data:
  grafana_data:

Prometheus 設定

prometheus.yml
global:

アラートルール

alert_rules.yml — アラートルール
groups:

アラート通知設定

アラートトリガー後通知?メール送信、DingTalk/企業 WeChat/Slack プッシュ可:

alertmanager.yml — 通知設定
global:
このチュートリアルはあなたに役に立った?