注意
本記事のパッケージバージョン・ベンチマーク・各サービスの画面は、Ubuntu 24.04 公式 Docker イメージとホスト稼働の Ollama / Open WebUI / Grafana を実際に動かして取得した一次データです(2026-06-15 計測)。検証ホストは Apple Silicon(CPU + Metal GPU)のため、NVIDIA GPU を使う STEP 2 のコマンドは GPU 搭載環境向けの参考手順として掲載しています(この環境では未実行)。
「Ubuntu に Ollama を入れてローカル LLM を動かしたい。さらに RAG(検索拡張生成)でドキュメントに答えさせ、Prometheus と Grafana で稼働監視まで整えたい」——そんな欲張りな AI サーバーを Ubuntu 24.04 LTS 1台でゼロから構築する手順を、実際に動かした実データつきでまとめました。
結論から言うと、この4層構成(推論エンジン・UI・RAG・監視)はすべて Docker と apt で組み上がります。本記事では実際に Ubuntu 24.04.4 LTS(Docker公式イメージ)でコマンドを実行し、パッケージバージョン・推論スループット・CPUベンチを実測し、Open WebUI と Grafana は実際にコンテナを起動してブラウザ画面を撮影しています。
この記事のポイント
- Ubuntu 24.04 LTS では
docker.io 29.1.3とdocker-compose-v2 2.40.3が apt で直接インストールできる(実測確認済み) - Ollama のインストールはワンライナー。GPU を自動検出するため CPU / NVIDIA GPU / Apple Metal どれでも動く
- RAG は
langchain-community 0.4.2+chromadb 1.5.9、埋め込みはnomic-embed-text(実測で768次元)で構築できる - Open WebUI 0.9.6 はブラウザから LLM にチャットできる GUI。Docker 1コマンドで起動でき、起動中の Ollama を自動検出する(実画面で確認)
- Prometheus + Grafana(v13.0.2)でモデルの稼働や GPU 温度をダッシュボード監視できる
目次
- 動作確認済み環境
- AIサーバー全体設計の考え方
- STEP 1:Docker を Ubuntu 24.04 にインストールする
- STEP 2:NVIDIA ドライバと CUDA を整える(GPU環境)
- STEP 3:Ollama でローカル LLM を起動する
- STEP 4:Open WebUI でブラウザ GUI を立てる
- STEP 5:ChromaDB + LangChain で RAG を実装する
- STEP 6:Prometheus + Grafana で AI サーバーを監視する
- よくあるエラーと対処法
- まとめ
動作確認済み環境
本記事のコマンドは、以下の環境で実際に実行して出力を確認しています。OS とパッケージは Ubuntu 24.04 公式 Docker イメージ、LLM の推論はホストで稼働中の Ollama を使いました。
| 項目 | バージョン / 詳細 | 取得方法 |
|---|---|---|
| OS | Ubuntu 24.04.4 LTS(Noble Numbat) | cat /etc/os-release(実測) |
| Docker | 29.1.3-0ubuntu3~24.04.2 | docker --version(実測) |
| Docker Compose | 2.40.3 | docker compose version(実測) |
| Python 3 | 3.12.3 | python3 --version(実測) |
| Ollama | 0.30.8 | curl /api/version(実測) |
| langchain-community / chromadb | 0.4.2 / 1.5.9 | PyPI JSON API(実取得) |
| Open WebUI / Grafana | 0.9.6 / v13.0.2 | 実起動 + API(実測) |
| GPU(推奨) | NVIDIA RTX 4080 以上 / A10G など | GPU VPS 参照(本検証は Apple Metal/CPU) |

パッケージのバージョンは Ubuntu のリリースによって変わります。AIサーバーで使う主要パッケージを 22.04 LTS と 24.04 LTS の両方で apt-cache policy にかけ、差を実測しました。

AIサーバー全体設計の考え方
「AIサーバー」と一口に言っても、構成要素はいくつかあります。この記事では役割ごとに次の4層に分けて考えます。
- 推論エンジン層:Ollama(ローカル LLM の実行)
- UI 層:Open WebUI(ブラウザで操作できるチャット GUI)
- RAG 層:ChromaDB(ベクトルDB)+ LangChain(Pythonから連携)
- 監視層:Prometheus + Grafana(稼働状況をダッシュボードで可視化)
各コンポーネントの最新版は、PyPI の JSON API と GitHub の Releases API を実際に叩いて取得しました。2026年6月時点の最新は Ollama v0.30.8、Open WebUI 0.9.6、Grafana v13.0.2 などです。


これらをすべて Docker(または Docker Compose)で管理すると、ホスト OS の汚染を最小限に抑えられます。Ubuntu 24.04 LTS はサポート期限が2029年4月まであり、長期運用にも向いています。
STEP 1:Docker を Ubuntu 24.04 にインストールする
まず Ubuntu 24.04 LTS に Docker をインストールします。Ubuntu 24.04(Noble Numbat)では docker.io パッケージ(バージョン 29.1.3)と docker-compose-v2(2.40.3)が Ubuntu 公式リポジトリから直接取得できます。これは 2026年6月時点で実際に apt-cache policy と apt-get install で確認した値です。
手順1:パッケージリストを更新してDockerをインストール
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Reading package lists… Done
$ sudo apt-get install -y docker.io docker-compose-v2
The following NEW packages will be installed:
containerd docker-compose-v2 docker.io …
Setting up docker.io (29.1.3-0ubuntu3~24.04.2) …
Setting up docker-compose-v2 (2.40.3+ds1-0ubuntu1~24.04.1) …
手順2:Docker サービスを有効化してユーザーを docker グループに追加
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service
$ sudo usermod -aG docker $USER
(ターミナルを再起動してグループを反映させます)
$ docker –version
Docker version 29.1.3, build 29.1.3-0ubuntu3~24.04.2
$ docker compose version
Docker Compose version 2.40.3+ds1-0ubuntu1~24.04.1
apt update を忘れがちですが、これをやらないと古いパッケージリストのままになります。インストール後は docker --version でバージョンを確認しておきましょう。実測では 29.1.3 が入りました。

STEP 2:NVIDIA ドライバと CUDA を整える(GPU環境)
この STEP の前提
以下のコマンドは NVIDIA GPU を搭載した Ubuntu 環境向けの参考手順です。本記事の検証ホストは Apple Silicon(NVIDIA GPU なし)のため、この STEP は実行していません。CPU のみで動かす場合はスキップして STEP 3 に進んで構いません(推論速度は落ちます)。
手順1:NVIDIA ドライバをインストール
driver : nvidia-driver-570 – distro non-free recommended
$ sudo ubuntu-drivers autoinstall
Installing nvidia-driver-570 …
$ sudo reboot
手順2:NVIDIA Container Toolkit をインストール(Docker × GPU連携)
$ curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed ‘s#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g’ | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
$ sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
$ sudo nvidia-ctk runtime configure –runtime=docker
$ sudo systemctl restart docker
$ docker run –rm –gpus all nvidia/cuda:12.4-base-ubuntu24.04 nvidia-smi
(GPU環境では nvidia-smi のドライバ/CUDAバージョン表が表示されます)
注意
GPU VPS(Vultr GPU、Lambda Labs、RunPod など)の場合、プロバイダ側でドライバが事前にインストールされていることがあります。まず nvidia-smi を実行して確認してから上記手順を行ってください。
STEP 3:Ollama でローカル LLM を起動する
Ollama は GPU / CPU を自動検出してローカル LLM を動かせるオープンソースのランタイムです。インストールはワンライナーで完了します。2026年6月時点の最新は GitHub の Releases API で確認したところ v0.30.8(2026-06-12 リリース)でした。
手順1:Ollama をインストール
>>> Installing ollama to /usr/local/bin…
>>> Creating ollama systemd service…
>>> Enabling and starting ollama service…
$ curl -s http://localhost:11434/api/version
{“version”:”0.30.8″}
手順2:モデルをダウンロードして動かす
まずは軽量モデルから試すのをおすすめします。CPU でも動き、日本語の質問にも一応答えられます。今回の検証では llama3.2:1b(軽量1Bモデル)を使いました。実用では精度を上げたい場合に llama3.2:3b や qwen2.5:7b などへ上げていきます。
pulling manifest
pulling baf6a787fdff… 100% ▕████████████████▏ 1.3 GB
verifying sha256 digest
success
$ ollama list
NAME ID SIZE MODIFIED
llama3.2:1b baf6a787fdff 1.3 GB just now
手順3:REST API として使う(推論スループットを実測)
Ollama は http://localhost:11434 に API エンドポイントを公開します。curl や Python から直接呼び出せます。/api/generate を3回呼び出してトークン生成速度を実測したところ、平均 189.3 tokens/sec(最小 188.6〜最大 190.3、モデルロード済み)でした。これは Apple Silicon の Metal GPU での値で、NVIDIA GPU 環境ではさらに高速になります。
“model”: “llama3.2:1b”,
“prompt”: “Linuxのsystemdとは何か、1文で。”,
“stream”: false }’
{“response”:”Systemdは、Linux上での起動・停止・状態を管理する…”,
“eval_count”:94, “eval_duration”:499000000}
# 94 tokens / 0.499s = 188.6 tokens/sec(実測)


参考に、検証環境の CPU 性能を sysbench cpu --threads=2 --time=10 で3回計測したところ、平均 12,087.7 events/sec(最小 10,582〜最大 13,097)でした。CPU 性能は推論速度の目安になります。
STEP 4:Open WebUI でブラウザ GUI を立てる
Open WebUI は ChatGPT 風のブラウザ UI を Ollama の前段に置けるオープンソースのフロントエンドです。Docker 1コマンドで起動できます。2026年6月時点では 0.9.6(2026-06-01 リリース)が最新で、これは実際にコンテナを起動して /api/version が {"version":"0.9.6"} を返すことを確認した値です。
手順1:Docker で Open WebUI を起動
–name open-webui \
-p 8080:8080 \
–add-host host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
–restart always \
ghcr.io/open-webui/open-webui:main
(初回はイメージをプル。約4.3GBあり数分かかります)
$ curl -s http://localhost:8080/api/version
{“version”:”0.9.6″,”deployment_id”:””}
起動後、ブラウザで http://<サーバーIP>:8080 にアクセスすると Open WebUI のスタート画面が表示されます。「Get started」を押すと管理者アカウント作成フォームが出ます(最初に作ったアカウントが管理者になります)。

アカウントを作成してログインすると、メインのチャット画面に入れます。実際に起動した画面では、左上のモデル選択に ホストで動いている Ollama のモデルが自動で表示されました。Open WebUI が OLLAMA_BASE_URL 経由で Ollama を正しく検出できている証拠です。

起動時のチェックポイント
- チャット画面の左上モデル選択に Ollama のモデルが出れば、Ollama 連携は成功
- モデルが出ない場合は
OLLAMA_BASE_URLの指定(host.docker.internalかlocalhostか)を見直す - 会話履歴やナレッジは
-v open-webui:/app/backend/dataのボリュームに保存される
STEP 5:ChromaDB + LangChain で RAG を実装する
RAG(Retrieval-Augmented Generation)は「検索拡張生成」とも呼ばれ、LLM が学習していない社内文書や最新情報に基づいて回答させる仕組みです。ChromaDB でドキュメントをベクトル化して保存し、LangChain からクエリを送る構成が定番です。
埋め込みモデルを用意する
RAG では文章を数値ベクトルに変換する「埋め込みモデル」が必要です。生成用の llama3.2:1b は埋め込みに非対応で、API を叩くと 501 Not Implemented が返ります(実測)。専用の nomic-embed-text を入れてください。実測ではこのモデルの埋め込みは 768次元でした。
手順1:埋め込みモデルを取得して動作確認
success
$ curl -s http://localhost:11434/api/embed -d ‘{
“model”:”nomic-embed-text”,”input”:”Ubuntu 24.04 は Noble Numbat” }’
{“embeddings”:[[0.0586,0.0330,-0.1536, … ]]} # 768次元(実測)
手順2:Python 仮想環境と必要パッケージをインストール
$ source ~/aienv/bin/activate
(aienv) $ pip install langchain-community chromadb ollama
Successfully installed langchain-community-0.4.2 chromadb-1.5.9 ollama-0.6.2
バージョンは 2026年6月15日時点で PyPI から実取得した最新安定版です(langchain-community 0.4.2 / chromadb 1.5.9 / ollama 0.6.2)。
手順3:RAG スクリプトを書く
以下は ChromaDB にドキュメントを登録し、質問への回答を Ollama から得るサンプルです。埋め込みには nomic-embed-text、生成には軽量モデルを使います。
from langchain_community.vectorstores import Chroma
from langchain_community.llms import Ollama
from langchain.chains import RetrievalQA
docs = [
“Ubuntu 24.04 LTS は Noble Numbat というコード名を持ちます。”,
“systemd は Linux のデフォルト init システムです。”,
]
embeddings = OllamaEmbeddings(model=”nomic-embed-text”)
vectordb = Chroma.from_texts(docs, embeddings)
llm = Ollama(model=”llama3.2:1b”)
qa = RetrievalQA.from_chain_type(llm=llm, retriever=vectordb.as_retriever())
print(qa.invoke(“Ubuntu 24.04 のコード名は?”))
ドキュメントを nomic-embed-text で768次元のベクトルに変換して ChromaDB に格納し、質問も同じ次元に変換して近いものを検索する——という流れです。LLM 単体では知らない情報でも、ChromaDB 経由で正確に引けるのが RAG の肝です。
STEP 6:Prometheus + Grafana で AI サーバーを監視する
AI サーバーを本番運用するなら監視は必須です。Grafana と Prometheus を Docker Compose で立ち上げる構成が最もシンプルです。Grafana は GitHub の最新リリースが v13.0.2(2026-06-09)で、実際に起動して画面まで確認しました。
手順1:docker-compose.yml を作成
$ cat > docker-compose.yml << ‘EOF’
services:
prometheus:
image: prom/prometheus:latest
ports: [“9090:9090”]
volumes:
– ./prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
image: grafana/grafana:latest
ports: [“3000:3000”]
depends_on: [prometheus]
EOF
$ docker compose up -d
✔ Container monitoring-prometheus-1 Started
✔ Container monitoring-grafana-1 Started
apt版 Prometheus との違い
Ubuntu 24.04 の apt 版 Prometheus は 2.45.3 と保守的です(実測)。最新の v3 系(GitHub で v3.12.0)を使いたい場合は、上記のように Docker イメージ prom/prometheus:latest を使うのが手軽です。
手順2:Grafana にログインする
http://<サーバーIP>:3000 にアクセスし、初期ユーザー名 admin / パスワード admin でログインします(初回ログイン時にパスワード変更を求められます)。実際の起動画面はこちらです。画面下部に Grafana のバージョン(v13.0.2)が表示されています。

手順3:ダッシュボードを開く
ログインすると Grafana のホーム画面に入れます。ここから Prometheus をデータソースとして追加し、Ollama や node_exporter のメトリクス(推論レイテンシ、GPU 温度、CPU 使用率など)をパネルにしていきます。

よくあるエラーと対処法
①「docker: permission denied while trying to connect to the Docker daemon socket」
socket at unix:///var/run/docker.sock
$ sudo usermod -aG docker $USER
$ newgrp docker # または再ログイン
$ docker ps # 確認
②「Open WebUI にモデルが表示されない」
Open WebUI のチャット画面でモデルが選べない場合、Ollama への接続設定が原因です。Docker から見たホストは localhost ではなく host.docker.internal になることが多いです。起動時に --add-host host.docker.internal:host-gateway と -e OLLAMA_BASE_URL=http://host.docker.internal:11434 を付けてください。Linux ホストでは --network=host を使う方法もあります。
③「埋め込みで 501 Not Implemented が返る」
生成用モデル(llama3.2 など)を埋め込みに使うと 501 Not Implemented が返ります(実測)。RAG では nomic-embed-text などの埋め込み専用モデルを ollama pull して使ってください。
④「OOM Killer が Ollama のプロセスを終了させる」
RAM が不足するとカーネルが OOM Killer でプロセスを強制終了します。journalctl -k | grep -i oom で確認できます。1〜3B の軽量モデルなら数GBで動きますが、7B モデルなら最低 8GB RAM、13B なら 16GB を目安にしてください。
⑤「pip install が externally-managed-environment エラーで失敗する」
Ubuntu 24.04 の Python は PEP 668 の影響でシステム Python に直接 pip install できません。必ず python3 -m venv で仮想環境を作ってから使ってください。
$ python3 -m venv ~/aienv
$ source ~/aienv/bin/activate
(aienv) $ pip install langchain-community chromadb ollama
Successfully installed langchain-community-0.4.2 …
まとめ
Ubuntu 24.04 LTS に GPU・Ollama・RAG・Grafana 監視を統合した AI サーバーを構築する手順を、実データつきでまとめました。
- Ubuntu 24.04 LTS では apt で Docker 29.1.3 / docker-compose-v2 2.40.3 がすぐに入る
- Ollama のインストールはワンライナー。実測の最新は v0.30.8 で、llama3.2:1b は約189 tokens/secで動いた
- Open WebUI 0.9.6 は Docker 1コマンドで起動でき、起動中の Ollama を自動検出してブラウザから使える
- RAG には chromadb 1.5.9 + langchain-community 0.4.2、埋め込みは nomic-embed-text(768次元)を使う
- Grafana v13.0.2 は admin/admin でログインし、Prometheus データソースを追加して監視ダッシュボードを作れる
- 軽量モデルなら数GB、7B モデルなら RAM 8GB 以上、13B なら 16GB 以上が目安。OOM が出たらプランを上げる
本格的に GPU で動かすなら、CPU 推論との速度差は大きくなります。各VPSの実測ベンチや選び方はVPS比較の記事も参考にしてください。GPU 付き VPS でゼロから始めたい方は、Vultr の GPU プランが東京リージョンで利用でき、Ubuntu 24.04 イメージも選べるのでおすすめです。



コメント