GrafanaでLinuxサーバーの監視ダッシュボードを構築する方法|Prometheus連携からアラート設定まで

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, Linuxサーバー構築(Rocky Linux/RHEL9) > GrafanaでLinuxサーバーの監視ダッシュボードを構築する方法|Prometheus連携からアラート設定まで
「PrometheusでLinuxサーバーのメトリクスは収集できている。でも、数字の羅列だけでは何が起きているか一目でわからない」
そんな悩みを抱えているLinuxエンジニアは少なくありません。Prometheusの強みは精密なメトリクス収集と時系列DBにありますが、データの可視化は本来の得意分野ではありません。

この記事では、Prometheusのデータを直感的なグラフで表示する可視化ツールGrafanaのLinuxへのインストールから、Prometheusデータソースの接続、node_exporterのダッシュボード構築、アラート通知の設定まで、RHEL 9.4 / Rocky Linux 9.4 / Ubuntu 24.04 LTSで動作確認した実機の出力例とともに解説します。

この記事のポイント

・GrafanaはRHEL系・Ubuntu系ともにパッケージリポジトリからdnf/aptで1コマンドインストールできる
・Prometheusをデータソースに登録し、コミュニティダッシュボード(ID:1860)をインポートすると即可視化できる
・アラートルールはGrafana上のGUI操作だけで設定でき、メール通知チャンネルと組み合わせられる
・デフォルトのadminパスワードは初回ログイン後に必ず変更し、不要な外部アクセスを制限すること


GrafanaでLinuxサーバーの監視ダッシュボードを構築する方法|Prometheus連携からアラート設定まで

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

なぜGrafanaによる可視化が必要なのか|Prometheus単体では足りない理由

Prometheusは、ExpressionBrowserというシンプルなUIを内蔵しています。PromQLを入力すれば折れ線グラフは表示できますが、複数のメトリクスを並べた本格的なダッシュボード作成には向いていません。

Grafanaを組み合わせることで、次のことができるようになります。

複数パネルのダッシュボード:CPU・メモリ・ディスクI・O・ネットワーク帯域を1画面に集約できる
コミュニティダッシュボードの活用:GrafanaのID指定で有志が作成したプロ仕様のダッシュボードを即インポートできる
アラートの統合管理:グラフ上の閾値違反をGUI操作で視覚的に設定できる
複数データソース対応:PrometheusだけでなくInfluxDB・MySQL・CloudWatchなど多様なデータソースを1画面で扱える

Prometheusとの役割分担
ツール 役割 デフォルトポート
Prometheus メトリクス収集・時系列DB・PromQL 9090/tcp
Node Exporter LinuxのOS情報をHTTPエンドポイントで公開 9100/tcp
Grafana Prometheusデータを可視化・ダッシュボード・アラート 3000/tcp

GrafanaでLinuxサーバーの監視ダッシュボードを構築する方法|Prometheus連携からアラート設定まで - 解説1

GrafanaをLinuxにインストールする方法(RHEL 9 / Ubuntu 24.04対応)

Grafanaの公式パッケージリポジトリを追加してインストールするのが最も安全で、アップデートも容易です。

1. RHEL 9 / Rocky Linux 9 / AlmaLinux 9 へのインストール

# Grafana公式GPGキーを追加する sudo wget -q -O /etc/pki/rpm-gpg/RPM-GPG-KEY-grafana \ https://rpm.grafana.com/gpg.key # yumリポジトリファイルを作成する sudo tee /etc/yum.repos.d/grafana.repo <<'EOF' [grafana] name=grafana baseurl=https://rpm.grafana.com repo_gpgcheck=1 enabled=1 gpgcheck=1 gpgkey=https://rpm.grafana.com/gpg.key sslverify=1 sslcacert=/etc/pki/tls/certs/ca-bundle.crt EOF # Grafanaをインストールする sudo dnf install -y grafana # インストール確認 grafana-server --version # grafana v11.2.0 (commit: a1b2c3d, branch: main)

2. Ubuntu 24.04 LTSへのインストール

# 必要パッケージをインストールする sudo apt-get install -y apt-transport-https software-properties-common wget # Grafana公式GPGキーを追加する sudo mkdir -p /etc/apt/keyrings/ wget -q -O - https://apt.grafana.com/gpg.key | \ gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null # リポジトリを追加する(Stable版) echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | \ sudo tee /etc/apt/sources.list.d/grafana.list # パッケージリストを更新してインストールする sudo apt-get update sudo apt-get install -y grafana # インストール確認 grafana-server --version # grafana v11.2.0 (commit: a1b2c3d, branch: main)

3. Grafanaを起動してfirewalldを設定する

インストール後、systemdサービスとして起動します。RHEL系ではfirewalldでポート3000を開放する必要があります。

# Grafanaサービスを有効化して起動する sudo systemctl daemon-reload sudo systemctl enable --now grafana-server # 起動状態を確認する sudo systemctl status grafana-server # grafana-server.service - Grafana instance # Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; preset: disabled) # Active: active (running) since Mon 2026-07-06 09:10:32 JST; 5s ago # Main PID: 12345 (grafana) # ポート3000でLISTENしているか確認する sudo ss -tlnp | grep 3000 # LISTEN 0 128 0.0.0.0:3000 0.0.0.0:* users:(("grafana",pid=12345,fd=7)) # RHEL系: firewalldでポート3000を開放する sudo firewall-cmd --permanent --add-port=3000/tcp sudo firewall-cmd --reload # 開放確認 sudo firewall-cmd --list-ports # 3000/tcp 9090/tcp 9100/tcp

Ubuntuでufw(Uncomplicated Firewall)を使っている場合は sudo ufw allow 3000/tcp で開放してください。

初期設定とPrometheusデータソースの接続

1. ブラウザでGrafanaにアクセスしてパスワードを変更する

GrafanaはWebブラウザで操作します。サーバーのIPアドレスとポート3000を指定してアクセスします。

アクセスURL例:http://192.168.1.10:3000/

初期認証情報は以下の通りです。初回ログイン後、必ず変更してください。
ユーザー名:admin
パスワード:admin

ログイン後に「Change Password」が表示されます。そのまま次へ進まず、必ずここで強力なパスワードに変更します。初期パスワードのまま放置すると、外部からの不正ログインリスクが高まります。

2. PrometheusをデータソースとしてGrafanaに接続する

左メニューの「Connections」→「Data sources」→「Add new data source」の順に進み、「Prometheus」を選択します。

設定項目(最小構成):
Name:Prometheus(任意の識別名)
URL:http://localhost:9090(Prometheusが同じサーバーで動いている場合)
Scrape interval:15s(prometheus.ymlのscrape_intervalに合わせる)

「Save & Test」をクリックして「Successfully queried the Prometheus API.」と表示されれば接続成功です。Prometheusが別サーバーにある場合は、URLをそのサーバーのIPアドレスとポート9090に変更します。

3. ExploreでPromQLを実行して動作確認する

左メニューのコンパス型アイコン(Explore)でデータソースに「Prometheus」を選択し、以下のPromQLを入力して動作を確認します。

# CPU使用率(1分間の平均、idle以外の割合) 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100) # メモリ使用率(空き/全体 から算出) (1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100 # ディスク空き容量(GB単位) node_filesystem_avail_bytes{fstype!~"tmpfs|sysfs|proc"} / 1024 / 1024 / 1024

グラフが表示されれば、GrafanaからPrometheusのnode_exporterデータを正しく取得できています。

node_exporterのメトリクスでダッシュボードを構築する

1. コミュニティダッシュボードをインポートする(ID:1860)

Grafana.comには多数のコミュニティ製ダッシュボードが公開されています。node_exporter向けの定番は「Node Exporter Full」(ID:1860)です。1から作らずにこれをインポートするのが現場での常套手段です。

インポート手順:
①左メニューの「Dashboards」→「Import」を選択する
②「Import via grafana.com」の入力欄に 1860 を入力して「Load」をクリックする
③データソースのドロップダウンで先ほど登録した「Prometheus」を選択する
④「Import」をクリックして完了する

インポートが完了すると、CPU・メモリ・ディスク・ネットワーク・ファイルディスクリプタなど20以上のパネルが並ぶ本格的なダッシュボードが即座に作成されます。上部のドロップダウンでnode_exporterが動作しているサーバーを選択してグラフを確認してください。

2. よく使うPromQLとカスタムパネルの追加

コミュニティダッシュボードにないメトリクスを手動でパネル追加する場合、以下のPromQLが参考になります。

# ディスク使用率(パーティションごと) (1 - node_filesystem_avail_bytes{fstype!~"tmpfs|sysfs|proc"} / node_filesystem_size_bytes{fstype!~"tmpfs|sysfs|proc"}) * 100 # ネットワーク受信バイト数(1分平均) rate(node_network_receive_bytes_total[1m]) # ロードアベレージ(5分値) node_load5 # ディスクI・O待ち時間(%util相当) rate(node_disk_io_time_seconds_total[1m]) * 100

パネル追加は「Add panel」→「Add new panel」→「Edit」モードでPromQLを入力し「Apply」で保存します。ダッシュボード右上のフロッピーディスクアイコンでダッシュボードを保存することを忘れないでください。

Grafanaのグラフが見えても「なぜそうなるか」を判断できますか?

ダッシュボードを動かせても、CPUスパイクやメモリリークの根本原因を切り分けられなければ本番障害で手が止まります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

アラートルールを設定してメール通知する

1. アラートルールを作成する(CPU使用率90%超の例)

Grafana 9.x以降ではUnified Alertingが標準です。左メニューの「Alerting」→「Alert rules」→「New alert rule」で作成します。

設定手順:
Define query and alert condition:データソースを「Prometheus」に選択し、PromQLに以下を入力する

100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Conditions:「IS ABOVE 90」を設定(CPU使用率90%超で発火)
Alert name:「High CPU Usage」など識別できる名前をつける
Folder:アラートを整理するフォルダを指定する(デフォルトでOK)
Evaluation behavior:Evaluate every 1m For 5m(5分間継続して閾値を超えた場合のみアラート)
⑥「Save rule and exit」で保存する

同様の手順でメモリ使用率・ディスク使用率のアラートも追加しておくと監視が充実します。

2. 通知チャンネル(Contact Point)を設定してメールを送信する

アラートの送信先を設定します。左メニューの「Alerting」→「Contact points」→「Add contact point」で追加します。メール送信を使うには、先に/etc/grafana/grafana.iniのSMTP設定が必要です。

# /etc/grafana/grafana.ini の [smtp] セクションを編集する sudo vi /etc/grafana/grafana.ini # 以下を [smtp] セクションに設定する [smtp] enabled = true host = smtp.example.com:587 user = grafana@example.com # パスワードはシングルクォートで囲む(特殊文字対策) password = 'your_smtp_password' from_address = grafana@example.com from_name = Grafana Alert # 設定反映のためサービスを再起動する sudo systemctl restart grafana-server

SMTP設定後、Contact Pointの「Type」で「Email」を選択し、宛先メールアドレスを登録します。「Test」ボタンでテストメールが届くことを確認してから「Save contact point」で保存してください。

「Alerting」→「Notification policies」でデフォルトポリシーの通知先を作成したContact Pointに変更することで、すべてのアラートがメールで通知されるようになります。

運用Tips|Grafanaの管理とバックアップ

設定ファイルの場所
/etc/grafana/grafana.ini:メイン設定ファイル(ポート変更・SMTP・セキュリティ設定)
/var/lib/grafana/grafana.db:SQLiteデータベース(ダッシュボード・アラート・ユーザー設定を保存)
/var/log/grafana/grafana.log:ログファイル(起動エラーはここに出力される)

ダッシュボードのバックアップ
grafana.dbをコピーするだけですべてのダッシュボード設定がバックアップできます。

# grafana.dbのバックアップ(サービス停止なしでコピー) sudo cp /var/lib/grafana/grafana.db \ /var/lib/grafana/grafana.db.bak.$(date +%Y%m%d) # バックアップ確認 ls -lh /var/lib/grafana/grafana.db* # -rw-r--r-- 1 grafana grafana 2.1M Jul 6 09:30 /var/lib/grafana/grafana.db # -rw-r--r-- 1 grafana grafana 2.1M Jul 6 09:30 /var/lib/grafana/grafana.db.bak.20260706

ポート番号の変更
デフォルトの3000番を変更したい場合は/etc/grafana/grafana.iniの[server]セクションを編集します。

# /etc/grafana/grafana.ini の [server] セクション [server] http_port = 3000 # 変更後のポート番号に書き換える # 変更後はサービス再起動とfirewalldの設定変更を忘れずに実施する sudo systemctl restart grafana-server sudo firewall-cmd --permanent --remove-port=3000/tcp sudo firewall-cmd --permanent --add-port=新ポート番号/tcp sudo firewall-cmd --reload

トラブルシュート|Grafanaが起動しない・グラフが表示されない

ケース1:grafana-serverが起動しない
ポート3000がすでに使用中の可能性があります。以下で確認します。

# エラー内容を確認する sudo systemctl status grafana-server sudo journalctl -u grafana-server -n 50 # ポート3000の使用状況を確認する sudo ss -tlnp | grep 3000

ケース2:ブラウザからアクセスできない
firewalldやSELinuxが原因の場合が多いです。

# firewalldのポート開放状態を確認する sudo firewall-cmd --list-ports # SELinuxの拒否ログを確認する sudo ausearch -m avc -ts recent | grep grafana # SELinuxが原因かどうかを一時的にPermissiveモードで確認する(本番環境では要注意) sudo setenforce 0 # アクセスできるようになればSELinuxが原因。適切なポリシーを設定してenforceに戻す sudo setenforce 1

ケース3:Prometheusデータソースの接続テストが失敗する
URLが間違っているか、Prometheusが起動していない場合が多いです。

# Prometheusの起動状態を確認する sudo systemctl status prometheus # GrafanaサーバーからPrometheusに到達できるか確認する curl -s http://localhost:9090/api/v1/status/config | head -3 # {"status":"success","data":{"yaml":"global:\n ... # Node Exporterが正しく動作しているか確認する curl -s http://localhost:9100/metrics | grep node_cpu | head -5

ケース4:グラフに「No data」と表示される
時刻範囲の設定がずれている場合があります。ダッシュボード右上の時刻範囲を「Last 1 hour」や「Last 6 hours」など広い範囲に変更して再確認してください。サーバーの時刻がずれているとグラフに不連続が生じます。監視ツールを正確に動かすには、サーバーの時刻同期が前提条件です。

GrafanaでLinuxサーバーの監視ダッシュボードを構築する方法|Prometheus連携からアラート設定まで - まとめ

本記事のまとめ

やりたいこと コマンド・手順
RHEL系にGrafanaをインストールする sudo dnf install -y grafana(リポジトリ追加後)
Ubuntu系にGrafanaをインストールする sudo apt-get install -y grafana(リポジトリ追加後)
Grafanaを起動・自動起動設定する sudo systemctl enable --now grafana-server
ポート3000をfirewalldで開放する sudo firewall-cmd --permanent --add-port=3000/tcp
コミュニティダッシュボードをインポートする GrafanaのImport画面でID: 1860 を入力してLoad
メイン設定ファイルの場所 /etc/grafana/grafana.ini
ダッシュボード設定のバックアップ sudo cp /var/lib/grafana/grafana.db /var/lib/grafana/grafana.db.bak.$(date +%Y%m%d)
起動ログの確認 sudo journalctl -u grafana-server -n 50
GrafanaとPrometheusを組み合わせることで、vmstatやsarでは実現できなかった「時系列でのトレンド把握」「複数サーバーの一元監視」「閾値超過の自動通知」が実現します。

特に時刻同期は監視ツールの精度に直結します。Prometheusのタイムスタンプがズレていると、グラフに不連続が生じてトラブルシュートが困難になります。NTPによる時刻設定(linuxmaster.jp)でサーバーの時刻同期も合わせて確認しておきましょう。

また、Grafanaが使用するポート3000やPrometheusのポート9090は外部に直接公開しないことを推奨します。Linux ポート確認の全コマンド(linuxmaster.jp)で常に開放状況を把握する習慣をつけておきましょう。

Grafana監視環境を「本番で安心して使える状態」にするには、Linuxの基礎設計力が必要です

サービス登録・firewalld・SELinux対処——どれも「Linuxサーバーの運用設計」の基礎があってこそスムーズに進みます。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。