0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS EC2上でOllama環境を構築し、Splunkで監視をしてみる(1)

0
Last updated at Posted at 2026-05-27

こんばんは。torippy1024です。

本日は、何番煎じかわかりませんが、オープンソースLLMであるOllmaとオープンソースWeb UIであるOpen WebUIを使ってセルフマネージドチャットツールを構築し、これらの実行状態をsplunkで監視してみます。
(どっちかというとsplunkでLLMの稼働監視を行うことが目的です)

構成図

というわけで構成図です。
ラボなのでインスタンスは一つでもいいかなあと思いつつ、まあせっかくなのでサーバーを分離して構築してみました。

スクリーンショット 2026-05-27 6.25.28.png

HTTPSでなくHTTPとなっています。
Open WebUIの手前にngixなどを入れたりいろいろやりようはあると思うのですが、今回は平文でアクセスしてしまうことにします。

前提条件

各サーバーのスペックやセキュリティグループは以下の通りです。
Ollamaサーバーは、LLMを使ってみるのだからGPU搭載のサーバーにしましたが、とりあえず動くか試すだけであればGPUなしのサーバーでも動くと思います。

サーバー名 AWSインスタンス ストレージ OS セキュリティグループ
Ollamaサーバー g4dn.xlarge 80GB gp3 Deep Learning Base AMI with Single CUDA (Ubuntu 24.04) ローカル端末からのSSH(22/tcp),open-webuiサーバーからの11434/tcpインバウンド通信を許可
Open-WebUIサーバー t3.medium 30GB gp3 Ubuntu Server 24.04 LTS (HVM) ローカル端末からのSSH(22/tcp)およびHTTPインバウンド通信を許可

設定手順

特筆すべき作業はそんなにないです。
コマンドと簡単な意味だけ記載していきます。
(まーただぶっちゃけもう手順やコマンドを調べるどころか、適当な指示を出すだけでClaude Codeが勝手に設定を完了させてくれる時代なので、わざわざこれをみて人手でやる必要があるのかとか思うところはありつつ)

Ollamaサーバーへの作業

apt更新

sudo apt update
sudo apt upgrade -y

GUIドライバ確認(Deep Learning Base AMI (Ubuntu 22.04)を選択した場合はすでにインストール済みのはず)

nvidia-smi

通常OSを選択してしまった場合など、GUIドライバがない場合は以下でドライバをインストール

sudo ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
sudo reboot

Ollamaインストール
(https://docs.ollama.com/linux に書かれているコマンド一発でインストールできます。すごいですね)

curl -fsSL https://ollama.com/install.sh | sh
ollama -v
sudo systemctl status ollama
ollama pull llama3.2
ollama list

テスト(それぞれローカル、API、プロンプトを指定してテストを実施。初回実行時にはやや時間がかかることに注意)

ollama run llama3.2 "hello"

curl http://localhost:11434/api/tags

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Hello",
  "stream": false
}'

IPアドレス制限範囲とログ出力追加変更
(デフォルトでは127.0.0.1アクセスのみであるのでこれを変更し、splunkで監視するためのログを/var/log/ollama配下に追加出力するよう指定)

sudo mkdir /var/log/ollama
sudo chown ollama:ollama /var/log/ollama
sudo chmod 755 /var/log/ollama
sudo mkdir /etc/systemd/system/ollama.service.d
sudo vi /etc/systemd/system/ollama.service.d/override.conf

以下のように変更
(AWS側のセキュリティグループでアクセス制限するため、OLLAMA_HOST=0.0.0.0を指定)

[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_DEBUG=INFO"
StandardOutput=append:/var/log/ollama/ollama.log
StandardError=append:/var/log/ollama/ollama.log

再起動と確認

sudo cat /etc/systemd/system/ollama.service.d/override.conf
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl enable ollama

ポート11434でlistenしていることを確認

ss -tlnp | grep 11434

ログの確認

sudo journalctl -u ollama
cat /var/log/ollama/ollama.log

GPUが使用されていることの確認(念のため、プロンプトを投げて処理中に利用率が変化することを確認)

nvidia-smi

OpenWebUIサーバーへの作業

apt更新

sudo apt update
sudo apt upgrade -y

docker導入
(https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository そのまんま)

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

docker実行(usermodでログインユーザーにdocker実行権限を付与してから起動していることに注意してください)

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker "$USER"
sudo systemctl status docker
sudo systemctl start docker

docker実行テストと実行確認

docker run hello-world
docker ps -a

環境変数の設定(OLLAMA_BASE_URLにOllamaサーバーの内部IPを指定することに注意)

echo "WEBUI_SECRET_KEY=$(openssl rand -hex 32)" >> ~/.open-webui.env
echo "OLLAMA_BASE_URL=http://<Ollamaサーバーの内部IP>:11434" >> ~/.open-webui.env
echo "AIOHTTP_CLIENT_SESSION_TOOL_SERVER_SSL=false" >> ~/.open-webui.env
echo "SCARF_NO_ANALYTICS=true" >> ~/.open-webui.env
echo "DO_NOT_TRACK=true" >> ~/.open-webui.env
echo "WEBUI_ADMIN_EMAIL=admin@example.com" >> ~/.open-webui.env
echo "WEBUI_ADMIN_PASSWORD=password" >> ~/.open-webui.env
cat ~/.open-webui.env
chmod 600 ~/.open-webui.env

Open Web UI起動

docker run -d \
  -p 80:8080 \
  --add-host=host.docker.internal:host-gateway \
  --env-file ~/.open-webui.env \
  --name open-webui \
  --restart unless-stopped \
  -v open-webui:/app/backend/data \
  ghcr.io/open-webui/open-webui:main

稼働確認

docker ps
docker logs open-webui --tail 30

ブラウザでアクセス(HTTP通信であることに注意してアクセス)

http://<Open WebUI EC2のIP>

admin@example.com/passwordでログインし、モデルからレスポンスが得られれば成功です。

スクリーンショット 2026-05-27 2.48.39.png

(備考)環境変数を編集する時などに使う停止コマンド

docker stop open-webui
docker rm open-webui

(備考)open-webuiを更新するときのコマンド

docker stop open-webui
docker rm open-webui
docker pull ghcr.io/open-webui/open-webui:main
docker run

Open WebUIのデータ保管先(バックアップ取得時はこちらをコピー)

docker volume inspect open-webui
sudo ls -la /var/lib/docker/volumes/open-webui/_data

上記でOpen WebUI+Ollamaによるセルフマネージド生成AIチャット環境が完成しました。
次に、この環境をsplunkで監視する設定を入れてみます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?