Monit 導入・設定手順まとめ(Debian系)
✅ 前提条件
- OS:Debian系(systemctlなし)
-
monitコマンドが使用可能 - 外部通知:メール、Slack Webhook
- Docker等のコンテナ内でも想定(
ENV TZ=Asia/Tokyo済) - メールの確認はMailTrapを利用
📦 0. Monit のインストール(Debian系)
apt update && apt install monit -y
🧩 1. Monit 設定ファイルのベース編集
/etc/monit/monitrc
set daemon 120
set log /var/log/monit.log
set mailserver sandbox.smtp.mailtrap.io port 587
username "【Mailtrapのユーザー名】"
password "【Mailtrapのパスワード】"
using tlsv12
with timeout 30 seconds
set alert your-alert-destination@example.com
set mail-format {
from: "monit@example.com"
subject: [Monit] $SERVICE $EVENT on $HOST
message: $DESCRIPTION\nSee: $ACTION\nDate: $DATE
}
set eventqueue
basedir /var/lib/monit/events
slots 100
set httpd port 2812 and
use address localhost
allow localhost
include /etc/monit/conf-enabled/*
✅
tlsv1→tlsv12に修正(MailtrapではTLSv1非推奨)
🧠 2. Slack通知スクリプトの作成
/usr/local/bin/monit_slack_alert.sh
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/【Slack Webhook URL】"
HOSTNAME=$(hostname)
MESSAGE="Monit Alert on ${HOSTNAME} at $(date '+%Y-%m-%d %H:%M:%S')"
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\":\"${MESSAGE}\"}" \
"$WEBHOOK_URL"
chmod +x /usr/local/bin/monit_slack_alert.sh
⚙️ 3. 個別監視ルールの設定
/etc/monit/conf-enabled/cpu_alert
check system localhost
if cpu usage > 1% for 2 cycles then alert
if cpu usage > 1% for 2 cycles then exec "/usr/local/bin/monit_slack_alert.sh"
🧪 5. Monit 再読み込み
monit reload
✅ 6. 動作確認
ステータス確認
monit status
ログ監視
tail -f /var/log/monit.log
🔔 通知結果(成功)
- Mailtrap にメール通知が届く
- Slack に Webhook 経由で通知が届く(例:
Monit Alert on xxxx)
💻 7. Monit よく使うコマンド集
| コマンド | 説明 |
|---|---|
monit status |
監視中のサービス状態を表示 |
monit summary |
簡易サマリーを表示 |
monit reload |
設定ファイルを再読み込み |
monit start <サービス名> |
指定サービスの監視開始 |
monit stop <サービス名> |
指定サービスの監視停止 |
monit restart <サービス名> |
サービスを再起動(監視対象) |
monit monitor <サービス名> |
監視を有効化 |
monit unmonitor <サービス名> |
監視を無効化 |
monit validate |
設定ファイルの構文チェック |