ubuntu
カテゴリ
Netdata 死活監視と不具合メール
2026/03/04 21時maintenance
「自宅サーバーの健康診断」を自動化するために、Netdata をベースにした構築。Netdata は設定が簡単で、リアルタイムのグラフ表示とメール通知機能を備えている。

CPU温度 lm-sensorsThinkPad 本体の温度を計測
HDD温度・不具合 smartmontools外付けHDDの S.M.A.R.T. 情報を取得
EDCB / AdGuardNetdata (HTTP/Process check)サービスが動いているか死活監視
ネットワーク/死活 fping / Netdataネットの重さやパケットロスを監視
通知 msmtp + Gmailなどスマホへメール送信

■Netdata をインストールし監視をする

Netdata を、ホストにインストールするかDockerにするか?
項目ホストDocker
/dev/sda /dev/sdb へのアクセス自動 ✅--deviceで個別マップ必要 ⚠️
USB接続デバイスそのまま見える ✅ホットプラグに弱い ⚠️
CPU/メモリ/ネットワーク監視フルアクセス ✅制限あり ⚠️
SYS_RAWIO 権限不要 ✅明示的に付与必要 ⚠️

折角 Docker を構築したが、ホストにインストールする事とした、設定のバックアップは必要。
wget -O /tmp/netdata-kickstart.sh https://get.netdata.cloud/kickstart.sh && sh /tmp/netdata-kickstart.sh

Windows パソコンからhttp://(ThinkPadのIP):19999 にアクセスする。
Google アカウントでログインするが、無料版でも十分
Netdata 無料版(Free Tier)でできること
リアルタイム監視: 1秒単位のグラフ表示(これがNetdataの真骨頂)
メール通知: CPU温度上昇やHDD不具合時のアラート送信。
ダッシュボード: 全てのグラフを1画面で確認。
ノード数: 5台程度までのサーバーなら無料でクラウド連携も可能。
HDD/SSDの寿命監視: 無料版で制限なく行える。
AdGuard / EDCB の死活監視: 無料版で十分可能。
ネットの重さ監視: 無料版でリアルタイムに測定。

■EDCB や AdGuard Home の死活監視

Netdata の web_check 機能を使い、これら特定のサービスが落ちたときに通知を飛ばす設定
sudo /etc/netdata/edit-config go.d/httpcheck.conf
jobs:
  - name: adguard_home
    url: http://localhost:3000  # AdGuardの管理画面URL
  - name: edcb
    url: http://localhost:5510  # EDCB(EpgTimerNW)のポート

■msmtp のインストールと Gmail 連携

サーバーに不具合のあった時にメールを外に送り出すための「msmtp」ソフトをインストール。
sudo apt update
sudo apt install msmtp msmtp-mta ca-certificates -y
Gmail の「アプリパスワード」取得 Googleアカウントの [2段階認証] がオンであることを確認し、アプリ パスワード 設定画面へ行き、名前(MyServer)を付けて作成すると、16桁のコードが表示される。

設定ファイルの作成、メールアドレス2か所とパスワードを入力
defaults
auth           on
tls            on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        ~/.msmtp.log

account        gmail
host           smtp.gmail.com
port           587
from           @gmail.com
user           @gmail.com
password       16桁のパスワード空白除く

account default : gmail

「netdata」ユーザーが使えるように権限を整える。
# 所有者を Netdata ロボットに変更する
sudo chown netdata:netdata /etc/msmtprc
# 所有者(netdata)以外は、読み書きどころか「見ることも禁止」にする
sudo chmod 600 /etc/msmtprc

etdataに通知先を教える
sudo /etc/netdata/edit-config health_alarm_notify.conf
全てOKが表示されればOK

最終反映とテストメール。
sudo systemctl restart netdata
# Netdataユーザーになりきってテスト
sudo su -s /bin/bash netdata
/usr/libexec/netdata/plugins.d/alarm-notify.sh test
exit
メールが届けばOK。
記事一覧